From 62d0fb04fddc161407382a061aa4ac804576dd26 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 11 Jul 2023 13:27:51 +0200 Subject: [PATCH 01/31] Init dep bump --- Cargo.lock | 2125 +++++++++++++++++++++++++++++++--------------------- Cargo.toml | 284 +++---- 2 files changed, 1417 insertions(+), 992 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c6832c167..cfc19b9611 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,11 +14,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.26.2", + "gimli", ] [[package]] @@ -27,7 +27,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli 0.27.3", + "gimli", ] [[package]] @@ -385,12 +385,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - [[package]] name = "assert_matches" version = "1.5.0" @@ -554,7 +548,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.4.1", + "hex-literal", "log", "moonbeam-evm-tracer", "moonbeam-rpc-primitives-debug", @@ -665,6 +659,17 @@ dependencies = [ "event-listener", ] +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.25", +] + [[package]] name = "async-trait" version = "0.1.71" @@ -752,10 +757,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" [[package]] -name = "base58" +name = "base16ct" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -787,7 +792,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "hash-db 0.16.0", "log", @@ -804,9 +809,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.64.0" +version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ "bitflags 1.3.2", "cexpr", @@ -814,12 +819,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", + "prettyplease 0.2.10", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] @@ -1113,9 +1119,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" dependencies = [ "smallvec", ] @@ -1331,6 +1337,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", + "unicode-width", "windows-sys 0.45.0", ] @@ -1413,28 +1420,27 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc42ba2e232e5b20ff7dc299a812d53337dadce9a7e39a238e6a5cb82d2e57b" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" dependencies = [ - "arrayvec 0.7.4", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", "cranelift-isle", - "gimli 0.26.2", - "hashbrown 0.12.3", + "gimli", + "hashbrown 0.13.2", "log", "regalloc2", "smallvec", @@ -1443,33 +1449,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f2154365e2bff1b1b8537a7181591fdff50d8e27fa6e40d5c69c3bad0ca7c8" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e14e3f5775248930e0d5a84195abef8b829958e9794bf8d525104993612b4" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] name = "cranelift-entity" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42ea692c7b450ad18b8c9889661505d51c09ec4380cf1c2d278dbb2da22cae1" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8483c2db6f45fe9ace984e5adc5d058102227e4c62e5aa2054e16b0275fd3a6e" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" dependencies = [ "cranelift-codegen", "log", @@ -1479,15 +1485,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9793158837678902446c411741d87b43f57dadfb944f2440db4287cda8cbd59" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] name = "cranelift-native" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72668c7755f2b880665cb422c8ad2d56db58a88b9bebfef0b73edc2277c13c49" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" dependencies = [ "cranelift-codegen", "libc", @@ -1496,9 +1502,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852ce4b088b44ac4e29459573943009a70d1b192c8d77ef949b4e814f656fc1" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1605,6 +1611,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "crypto-bigint" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -1657,7 +1675,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "clap", "parity-scale-codec", @@ -1672,7 +1690,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1695,13 +1713,20 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", + "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", "futures 0.3.28", "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-overseer", + "polkadot-primitives", "sc-client-api", "sc-consensus", "sc-consensus-aura", @@ -1717,6 +1742,8 @@ dependencies = [ "sp-inherents", "sp-keystore", "sp-runtime", + "sp-state-machine", + "sp-timestamp", "substrate-prometheus-endpoint", "tracing", ] @@ -1724,7 +1751,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1740,15 +1767,32 @@ dependencies = [ "schnellru", "sp-blockchain", "sp-consensus", + "sp-core", "sp-runtime", "sp-trie", + "substrate-prometheus-endpoint", "tracing", ] +[[package]] +name = "cumulus-client-consensus-proposer" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +dependencies = [ + "anyhow", + "async-trait", + "cumulus-primitives-parachain-inherent", + "sp-consensus", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1771,7 +1815,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1794,7 +1838,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1818,7 +1862,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1853,7 +1897,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "frame-support", "frame-system", @@ -1869,7 +1913,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1886,7 +1930,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1915,18 +1959,18 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1942,7 +1986,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1962,12 +2006,13 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", + "scale-info", "sp-api", "sp-runtime", "sp-std", @@ -1978,7 +2023,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2001,7 +2046,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "futures 0.3.28", @@ -2014,7 +2059,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2032,7 +2077,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2057,7 +2102,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2075,7 +2120,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "array-bytes 6.1.0", "async-trait", @@ -2084,19 +2129,23 @@ dependencies = [ "cumulus-relay-chain-rpc-interface", "futures 0.3.28", "lru 0.9.0", + "polkadot-availability-recovery", + "polkadot-collator-protocol", "polkadot-core-primitives", "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "polkadot-service", "sc-authority-discovery", "sc-client-api", "sc-network", "sc-network-common", "sc-service", "sc-tracing", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", @@ -2109,7 +2158,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2139,7 +2188,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2316,6 +2365,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "der-parser" version = "7.0.0" @@ -2441,6 +2500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -2548,10 +2608,24 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" +dependencies = [ + "der 0.7.7", + "digest 0.10.7", + "elliptic-curve 0.13.5", + "rfc6979 0.4.0", + "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -2560,7 +2634,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature", + "signature 1.6.4", ] [[package]] @@ -2603,18 +2677,37 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", "digest 0.10.7", - "ff", + "ff 0.12.1", "generic-array 0.14.7", - "group", + "group 0.12.1", "hkdf", "pem-rfc7468", - "pkcs8", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.2", "subtle", "zeroize", ] @@ -2791,9 +2884,29 @@ dependencies = [ "auto_impl", "environmental", "ethereum", - "evm-core", - "evm-gasometer", - "evm-runtime", + "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm" +version = "0.39.1" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-gasometer 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-runtime 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "log", "parity-scale-codec", "primitive-types", @@ -2815,6 +2928,17 @@ dependencies = [ "serde", ] +[[package]] +name = "evm-core" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + [[package]] name = "evm-gasometer" version = "0.39.0" @@ -2822,8 +2946,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d43eadc395bd1a52990787ca1495c26b0248165444912be075c28909a853b8c" dependencies = [ "environmental", - "evm-core", - "evm-runtime", + "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types", +] + +[[package]] +name = "evm-gasometer" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +dependencies = [ + "environmental", + "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-runtime 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "primitive-types", ] @@ -2835,7 +2970,19 @@ checksum = "2aa5b32f59ec582a5651978004e5c784920291263b7dcb6de418047438e37f4f" dependencies = [ "auto_impl", "environmental", - "evm-core", + "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types", + "sha3", +] + +[[package]] +name = "evm-runtime" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +dependencies = [ + "auto_impl", + "environmental", + "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "primitive-types", "sha3", ] @@ -2847,9 +2994,9 @@ dependencies = [ "environmental", "ethereum", "ethereum-types", - "evm", - "evm-gasometer", - "evm-runtime", + "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec", "sp-runtime-interface", ] @@ -2885,7 +3032,6 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 1.0.109", ] [[package]] @@ -2901,6 +3047,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "expander" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 2.0.25", +] + [[package]] name = "fake-simd" version = "0.1.2" @@ -2956,10 +3115,9 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "async-trait", - "fc-db", "fp-consensus", "fp-rpc", "sc-consensus", @@ -2973,8 +3131,9 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ + "async-trait", "fp-storage", "kvdb-rocksdb", "log", @@ -2992,7 +3151,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fc-db", "fc-storage", @@ -3013,11 +3172,11 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "ethereum-types", - "evm", + "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "fc-db", "fc-mapping-sync", "fc-rpc-core", @@ -3046,6 +3205,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "serde", "sp-api", "sp-block-builder", "sp-blockchain", @@ -3062,7 +3222,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "ethereum-types", @@ -3075,7 +3235,7 @@ dependencies = [ [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "ethereum-types", @@ -3109,6 +3269,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.1.20" @@ -3200,7 +3370,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", ] @@ -3217,7 +3387,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "hex", "impl-serde", @@ -3229,13 +3399,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-runtime-interface", "sp-std", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "parity-scale-codec", @@ -3247,13 +3418,13 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "frame-support", - "num_enum", + "num_enum 0.6.1", "parity-scale-codec", "sp-std", ] @@ -3261,11 +3432,12 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ - "evm", + "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "frame-support", "parity-scale-codec", + "scale-info", "serde", "sp-core", "sp-runtime", @@ -3275,7 +3447,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ethereum", "ethereum-types", @@ -3292,7 +3464,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "frame-support", "parity-scale-codec", @@ -3304,7 +3476,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "parity-scale-codec", "serde", @@ -3319,7 +3491,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-support-procedural", @@ -3344,7 +3516,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -3391,18 +3563,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3419,7 +3591,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -3448,23 +3620,28 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ + "async-recursion", "futures 0.3.28", + "indicatif", + "jsonrpsee", "log", "parity-scale-codec", "serde", "sp-core", "sp-io", "sp-runtime", + "spinners", "substrate-rpc-client", "tokio", + "tokio-retry", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "bitflags 1.3.2", "environmental", @@ -3483,6 +3660,7 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", + "sp-debug-derive", "sp-inherents", "sp-io", "sp-runtime", @@ -3497,45 +3675,47 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", "frame-support-procedural-tools", "itertools", + "proc-macro-warning", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ + "cfg-if", "frame-support", "log", "parity-scale-codec", @@ -3552,7 +3732,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -3567,7 +3747,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "sp-api", @@ -3576,7 +3756,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "parity-scale-codec", @@ -3772,6 +3952,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3828,21 +4009,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ "fallible-iterator", "indexmap 1.9.3", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" - [[package]] name = "glob" version = "0.3.1" @@ -3868,7 +4043,18 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] @@ -3981,12 +4167,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hex-literal" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" - [[package]] name = "hex-literal" version = "0.4.1" @@ -4136,6 +4316,7 @@ dependencies = [ "rustls-native-certs", "tokio", "tokio-rustls", + "webpki-roots", ] [[package]] @@ -4282,6 +4463,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" +[[package]] +name = "indicatif" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "inout" version = "0.1.3" @@ -4438,6 +4632,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" dependencies = [ "jsonrpsee-core", + "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", @@ -4494,6 +4689,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee-proc-macros" version = "0.16.2" @@ -4557,13 +4771,14 @@ dependencies = [ [[package]] name = "k256" -version = "0.11.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", + "once_cell", "sha2 0.10.7", ] @@ -4578,8 +4793,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -4590,7 +4805,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal", "kusama-runtime-constants", "log", "pallet-authority-discovery", @@ -4612,6 +4827,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nis", "pallet-nomination-pools", @@ -4638,7 +4854,7 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-whitelist", - "pallet-xcm 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "pallet-xcm 0.9.43", "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", @@ -4676,8 +4892,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -4709,9 +4925,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", @@ -4766,22 +4982,24 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" -version = "0.50.1" +version = "0.51.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" +checksum = "f210d259724eae82005b5c48078619b7745edb7b76de370b03f8ba59ea103097" dependencies = [ "bytes", "futures 0.3.28", "futures-timer", "getrandom 0.2.10", "instant", - "libp2p-core 0.38.0", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", "libp2p-dns", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-mdns", "libp2p-metrics", - "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-quic", @@ -4792,60 +5010,48 @@ dependencies = [ "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.16.0", - "parking_lot 0.12.1", + "multiaddr", "pin-project", - "smallvec", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", ] [[package]] name = "libp2p-core" -version = "0.38.0" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", "either", "fnv", "futures 0.3.28", "futures-timer", "instant", + "libp2p-identity", "log", - "multiaddr 0.16.0", - "multihash 0.16.3", - "multistream-select", - "once_cell", - "parking_lot 0.12.1", - "pin-project", - "prost", - "prost-build", - "rand 0.8.5", - "rw-stream-sink", - "sec1", - "sha2 0.10.7", - "smallvec", - "thiserror", - "unsigned-varint", - "void", - "zeroize", -] - -[[package]] -name = "libp2p-core" -version = "0.39.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" -dependencies = [ - "either", - "fnv", - "futures 0.3.28", - "futures-timer", - "instant", - "libp2p-identity", - "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "multistream-select", "once_cell", @@ -4862,12 +5068,12 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ "futures 0.3.28", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -4876,20 +5082,21 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" dependencies = [ "asynchronous-codec", + "either", "futures 0.3.28", "futures-timer", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "lru 0.8.1", - "prost", - "prost-build", - "prost-codec", + "lru 0.10.1", + "quick-protobuf", + "quick-protobuf-codec", "smallvec", "thiserror", "void", @@ -4904,7 +5111,7 @@ dependencies = [ "bs58", "ed25519-dalek", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", @@ -4915,9 +5122,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.42.1" +version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ "arrayvec 0.7.4", "asynchronous-codec", @@ -4927,11 +5134,11 @@ dependencies = [ "futures 0.3.28", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", "smallvec", @@ -4943,14 +5150,15 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ "data-encoding", "futures 0.3.28", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", "rand 0.8.5", @@ -4963,11 +5171,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4975,38 +5183,20 @@ dependencies = [ "prometheus-client", ] -[[package]] -name = "libp2p-mplex" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures 0.3.28", - "libp2p-core 0.38.0", - "log", - "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "unsigned-varint", -] - [[package]] name = "libp2p-noise" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures 0.3.28", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "log", "once_cell", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", "snow", @@ -5018,14 +5208,15 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ + "either", "futures 0.3.28", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -5034,15 +5225,16 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha" +version = "0.7.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ "bytes", "futures 0.3.28", "futures-timer", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -5055,49 +5247,46 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" dependencies = [ "async-trait", - "bytes", "futures 0.3.28", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", "rand 0.8.5", "smallvec", - "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" dependencies = [ "either", "fnv", "futures 0.3.28", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm-derive", "log", - "pin-project", "rand 0.8.5", "smallvec", - "thiserror", "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ "heck", "quote", @@ -5106,15 +5295,15 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ "futures 0.3.28", "futures-timer", "if-watch", "libc", - "libp2p-core 0.38.0", + "libp2p-core", "log", "socket2 0.4.9", "tokio", @@ -5128,7 +5317,7 @@ checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures 0.3.28", "futures-rustls", - "libp2p-core 0.39.2", + "libp2p-core", "libp2p-identity", "rcgen 0.10.0", "ring", @@ -5141,13 +5330,13 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" dependencies = [ "futures 0.3.28", "js-sys", - "libp2p-core 0.38.0", + "libp2p-core", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -5155,9 +5344,9 @@ dependencies = [ [[package]] name = "libp2p-webrtc" -version = "0.4.0-alpha" +version = "0.4.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" +checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8" dependencies = [ "async-trait", "asynchronous-codec", @@ -5166,13 +5355,13 @@ dependencies = [ "futures-timer", "hex", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-noise", "log", - "multihash 0.16.3", - "prost", - "prost-build", - "prost-codec", + "multihash 0.17.0", + "quick-protobuf", + "quick-protobuf-codec", "rand 0.8.5", "rcgen 0.9.3", "serde", @@ -5186,14 +5375,14 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" dependencies = [ "either", "futures 0.3.28", "futures-rustls", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", @@ -5205,23 +5394,22 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" dependencies = [ "futures 0.3.28", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "parking_lot 0.12.1", "thiserror", "yamux", ] [[package]] name = "librocksdb-sys" -version = "0.8.3+7.4.4" +version = "0.11.0+8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" dependencies = [ "bindgen", "bzip2-sys", @@ -5452,6 +5640,15 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "lru-cache" version = "0.1.2" @@ -5490,6 +5687,12 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "match_cfg" version = "0.1.0" @@ -5563,6 +5766,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -5639,7 +5851,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "log", @@ -5658,7 +5870,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "anyhow", "jsonrpsee", @@ -5717,9 +5929,9 @@ name = "moonbeam-evm-tracer" version = "0.1.0" dependencies = [ "ethereum-types", - "evm", - "evm-gasometer", - "evm-runtime", + "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "evm-tracing-events", "fp-evm", "moonbeam-primitives-ext", @@ -5803,7 +6015,7 @@ dependencies = [ "fc-storage", "fp-rpc", "futures 0.3.28", - "hex-literal 0.4.1", + "hex-literal", "jsonrpsee", "moonbeam-client-evm-tracing", "moonbeam-rpc-core-debug", @@ -5905,24 +6117,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "multiaddr" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "multibase", - "multihash 0.16.3", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - [[package]] name = "multiaddr" version = "0.17.1" @@ -5977,7 +6171,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "core2", + "digest 0.10.7", "multihash-derive", + "sha2 0.10.7", "unsigned-varint", ] @@ -6259,7 +6455,16 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", ] [[package]] @@ -6274,14 +6479,32 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.25", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" -version = "0.29.0" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ "crc32fast", - "hashbrown 0.12.3", + "hashbrown 0.13.2", "indexmap 1.9.3", "memchr", ] @@ -6339,9 +6562,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.2.1" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0766f60d83cac01c6e3f3bc36aaa9056e48bea0deddb98a8c74de6021f3061" +checksum = "227585216d05ba65c7ab0a0450a3cf2cbd81a98862a54c4df8e14d5ac6adb015" dependencies = [ "async-trait", "dyn-clonable", @@ -6356,12 +6579,11 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.2.1" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8e83dbd049009426b445424a1104c78e6172a4c13e3614e52a38262785a5d7" +checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066" dependencies = [ - "expander 1.0.0", - "indexmap 1.9.3", + "expander 0.0.6", "itertools", "petgraph", "proc-macro-crate", @@ -6382,7 +6604,7 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.40#19afb58a300faac6ceb0e6e4e341859282897c53" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -6401,7 +6623,7 @@ dependencies = [ [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.40#19afb58a300faac6ceb0e6e4e341859282897c53" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a" dependencies = [ "frame-support", "parity-scale-codec", @@ -6415,7 +6637,7 @@ dependencies = [ [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.40#19afb58a300faac6ceb0e6e4e341859282897c53" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a" dependencies = [ "frame-support", "orml-traits", @@ -6429,14 +6651,14 @@ dependencies = [ [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.40#19afb58a300faac6ceb0e6e4e341859282897c53" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.43#28a2e6f0df9540d91db4018c7ecebb8bfc217a2a" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "orml-traits", "orml-xcm-support", - "pallet-xcm 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "pallet-xcm 0.9.43", "parity-scale-codec", "scale-info", "serde", @@ -6453,8 +6675,8 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.7", ] @@ -6464,8 +6686,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.7", ] @@ -6482,7 +6704,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6497,7 +6719,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -6513,7 +6735,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -6529,7 +6751,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -6543,7 +6765,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6556,7 +6778,7 @@ dependencies = [ "scale-info", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", + "sp-core", "sp-io", "sp-runtime", "sp-session", @@ -6567,7 +6789,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6587,7 +6809,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6602,7 +6824,7 @@ dependencies = [ [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "frame-support", @@ -6616,7 +6838,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -6635,7 +6857,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -6678,7 +6900,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6753,7 +6975,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6798,7 +7020,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6815,9 +7037,10 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=polkadot-v0.9.40/pallet-contracts-custom#4069312418ef5179da7c5e0c3c7df7cbfd5e60f4" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" dependencies = [ "bitflags 1.3.2", + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -6837,7 +7060,7 @@ dependencies = [ "sp-runtime", "sp-std", "wasm-instrument 0.4.0", - "wasmi 0.20.0", + "wasmi 0.28.0", "wasmparser-nostd", ] @@ -6858,7 +7081,7 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "7.0.0" -source = "git+https://github.com/AstarNetwork/substrate?branch=polkadot-v0.9.40/pallet-contracts-custom#4069312418ef5179da7c5e0c3c7df7cbfd5e60f4" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -6871,17 +7094,17 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=polkadot-v0.9.40/pallet-contracts-custom#4069312418ef5179da7c5e0c3c7df7cbfd5e60f4" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6902,7 +7125,7 @@ dependencies = [ "assert_matches", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "libsecp256k1", "pallet-balances", "parity-scale-codec", @@ -6941,7 +7164,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -6959,7 +7182,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6982,7 +7205,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6995,7 +7218,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7013,12 +7236,11 @@ dependencies = [ [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ - "environmental", "ethereum", "ethereum-types", - "evm", + "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "fp-consensus", "fp-ethereum", "fp-evm", @@ -7061,16 +7283,17 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "environmental", - "evm", + "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", "fp-account", "fp-evm", "frame-benchmarking", "frame-support", "frame-system", "hex", + "hex-literal", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -7085,7 +7308,7 @@ dependencies = [ [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "frame-support", "frame-system", @@ -7102,7 +7325,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "num_enum", + "num_enum 0.5.11", "pallet-assets", "pallet-balances", "pallet-evm", @@ -7122,7 +7345,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", ] @@ -7130,7 +7353,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "sp-core", @@ -7146,7 +7369,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "num_enum", + "num_enum 0.5.11", "pallet-balances", "pallet-dapps-staking", "pallet-evm", @@ -7165,7 +7388,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-dispatch" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "frame-support", @@ -7175,7 +7398,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-ed25519" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "ed25519-dalek", "fp-evm", @@ -7184,7 +7407,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "num", @@ -7193,7 +7416,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "tiny-keccak", @@ -7202,7 +7425,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.40#e2f5879d243f5d9b8272a1ae640669065c8546f2" +source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "fp-evm", "ripemd", @@ -7217,9 +7440,9 @@ dependencies = [ "fp-evm", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "log", - "num_enum", + "num_enum 0.5.11", "pallet-balances", "pallet-evm", "pallet-timestamp", @@ -7241,9 +7464,9 @@ dependencies = [ "fp-evm", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "log", - "num_enum", + "num_enum 0.5.11", "pallet-balances", "pallet-evm", "pallet-timestamp", @@ -7265,9 +7488,9 @@ dependencies = [ "fp-evm", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "log", - "num_enum", + "num_enum 0.5.11", "pallet-assets", "pallet-balances", "pallet-evm", @@ -7295,9 +7518,9 @@ dependencies = [ "fp-evm", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "log", - "num_enum", + "num_enum 0.5.11", "pallet-balances", "pallet-evm", "pallet-timestamp", @@ -7315,7 +7538,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7333,7 +7556,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7356,7 +7579,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7372,7 +7595,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7392,7 +7615,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7409,7 +7632,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7423,7 +7646,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7437,10 +7660,29 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-message-queue" +version = "7.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", +] + [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7457,7 +7699,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7473,7 +7715,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7489,7 +7731,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7506,7 +7748,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7526,7 +7768,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -7537,7 +7779,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7554,7 +7796,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7578,7 +7820,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7595,7 +7837,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7610,7 +7852,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7628,7 +7870,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7643,7 +7885,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7662,7 +7904,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7679,7 +7921,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7700,7 +7942,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7716,7 +7958,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7730,7 +7972,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7753,18 +7995,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "log", "sp-arithmetic", @@ -7773,7 +8015,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "sp-api", @@ -7782,7 +8024,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7799,8 +8041,9 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -7813,7 +8056,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7831,7 +8074,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7850,7 +8093,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-support", "frame-system", @@ -7866,7 +8109,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -7882,7 +8125,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7894,7 +8137,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7911,7 +8154,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7927,7 +8170,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -7942,7 +8185,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-benchmarking", "frame-support", @@ -8000,8 +8243,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -8021,8 +8264,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-benchmarking", "frame-support", @@ -8060,7 +8303,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.40#e05c8d7f71734ed71188337c6cb0d30715f6320f" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -8182,6 +8425,12 @@ dependencies = [ "windows-targets 0.48.1", ] +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + [[package]] name = "paste" version = "1.0.13" @@ -8334,8 +8583,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.7", + "spki 0.7.2", ] [[package]] @@ -8358,10 +8617,11 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", + "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8373,8 +8633,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "polkadot-node-network-protocol", @@ -8387,8 +8647,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "derive_more", "fatality", @@ -8410,8 +8670,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "fatality", "futures 0.3.28", @@ -8431,15 +8691,15 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "clap", "frame-benchmarking-cli", "futures 0.3.28", "log", "polkadot-client", - "polkadot-node-core-pvf", + "polkadot-node-core-pvf-worker", "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", @@ -8452,6 +8712,7 @@ dependencies = [ "sp-core", "sp-io", "sp-keyring", + "sp-maybe-compressed-blob", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -8459,8 +8720,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "frame-benchmarking", @@ -8501,8 +8762,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", "bitvec", @@ -8523,8 +8784,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "scale-info", @@ -8535,8 +8796,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "derive_more", "fatality", @@ -8560,8 +8821,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -8574,8 +8835,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "futures-timer", @@ -8594,8 +8855,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", "async-trait", @@ -8617,8 +8878,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "parity-scale-codec", @@ -8635,8 +8896,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "derive_more", @@ -8664,8 +8925,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "futures 0.3.28", @@ -8685,8 +8946,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "fatality", @@ -8704,8 +8965,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "polkadot-node-subsystem", @@ -8719,8 +8980,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures 0.3.28", @@ -8739,8 +9000,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "polkadot-node-metrics", @@ -8754,8 +9015,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "futures-timer", @@ -8771,8 +9032,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "fatality", "futures 0.3.28", @@ -8790,8 +9051,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures 0.3.28", @@ -8807,8 +9068,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "fatality", @@ -8825,12 +9086,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", - "assert_matches", - "cpu-time", "futures 0.3.28", "futures-timer", "libc", @@ -8842,27 +9101,20 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "rand 0.8.5", - "rayon", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", "slotmap", "sp-core", - "sp-externalities", - "sp-io", "sp-maybe-compressed-blob", "sp-tracing", "sp-wasm-interface", - "tempfile", - "tikv-jemalloc-ctl", + "substrate-build-script-utils", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "polkadot-node-primitives", @@ -8875,10 +9127,39 @@ dependencies = [ "tracing-gum", ] +[[package]] +name = "polkadot-node-core-pvf-worker" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +dependencies = [ + "assert_matches", + "cpu-time", + "futures 0.3.28", + "libc", + "parity-scale-codec", + "polkadot-node-core-pvf", + "polkadot-parachain", + "polkadot-primitives", + "rayon", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "sp-core", + "sp-externalities", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing", + "substrate-build-script-utils", + "tempfile", + "tikv-jemalloc-ctl", + "tokio", + "tracing-gum", +] + [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures 0.3.28", "lru 0.9.0", @@ -8892,8 +9173,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "lazy_static", "log", @@ -8910,8 +9191,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bs58", "futures 0.3.28", @@ -8929,9 +9210,10 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ + "async-channel", "async-trait", "derive_more", "fatality", @@ -8951,8 +9233,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-vec", "futures 0.3.28", @@ -8963,19 +9245,18 @@ dependencies = [ "serde", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", "sp-core", "sp-keystore", "sp-maybe-compressed-blob", "sp-runtime", "thiserror", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -8984,8 +9265,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "derive_more", @@ -9007,8 +9288,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "derive_more", @@ -9040,8 +9321,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures 0.3.28", @@ -9063,8 +9344,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "derive_more", @@ -9080,27 +9361,29 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "env_logger 0.9.3", "kusama-runtime", "log", "polkadot-erasure-coding", - "polkadot-node-core-pvf", + "polkadot-node-core-pvf-worker", "polkadot-node-primitives", "polkadot-primitives", "quote", + "sc-executor-common", + "sp-maybe-compressed-blob", "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", - "hex-literal 0.3.4", + "hex-literal", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -9122,8 +9405,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9154,8 +9437,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -9166,7 +9449,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal", "log", "pallet-authority-discovery", "pallet-authorship", @@ -9176,6 +9459,7 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", @@ -9186,6 +9470,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -9194,6 +9479,7 @@ dependencies = [ "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -9207,7 +9493,8 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", - "pallet-xcm 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "pallet-whitelist", + "pallet-xcm 0.9.43", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -9219,6 +9506,7 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -9244,8 +9532,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -9290,8 +9578,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -9304,8 +9592,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bs58", "parity-scale-codec", @@ -9316,8 +9604,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9330,6 +9618,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-message-queue", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -9360,15 +9649,15 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "frame-benchmarking-cli", "frame-support", "frame-system-rpc-runtime-api", "futures 0.3.28", - "hex-literal 0.3.4", + "hex-literal", "kusama-runtime", "kvdb", "kvdb-rocksdb", @@ -9469,8 +9758,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -9490,8 +9779,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -9549,6 +9838,12 @@ dependencies = [ "universal-hash 0.5.1", ] +[[package]] +name = "portable-atomic" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -9560,14 +9855,14 @@ name = "precompile-utils" version = "0.4.3" dependencies = [ "assert_matches", - "evm", + "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", "fp-evm", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "impl-trait-for-tuples", "log", - "num_enum", + "num_enum 0.5.11", "pallet-evm", "parity-scale-codec", "precompile-utils-macro", @@ -9584,7 +9879,7 @@ dependencies = [ name = "precompile-utils-macro" version = "0.1.0" dependencies = [ - "num_enum", + "num_enum 0.5.11", "proc-macro2", "quote", "sha3", @@ -9631,6 +9926,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prettyplease" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92139198957b410250d43fad93e630d956499a625c527eda65175c8680f83387" +dependencies = [ + "proc-macro2", + "syn 2.0.25", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -9647,11 +9952,10 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.4.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3caef72a78ca8e77cbdfa87dd516ebb79d4cbe5b42e3b8435b463a8261339ff" +checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" dependencies = [ - "async-channel", "coarsetime", "crossbeam-queue", "derive_more", @@ -9696,6 +10000,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-warning" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.25", +] + [[package]] name = "proc-macro2" version = "1.0.64" @@ -9721,21 +10036,21 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", "parking_lot 0.12.1", - "prometheus-client-derive-text-encode", + "prometheus-client-derive-encode", ] [[package]] -name = "prometheus-client-derive-text-encode" -version = "0.3.0" +name = "prometheus-client-derive-encode" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" +checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" dependencies = [ "proc-macro2", "quote", @@ -9765,7 +10080,7 @@ dependencies = [ "log", "multimap", "petgraph", - "prettyplease", + "prettyplease 0.1.25", "prost", "prost-types", "regex", @@ -9774,19 +10089,6 @@ dependencies = [ "which", ] -[[package]] -name = "prost-codec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" -dependencies = [ - "asynchronous-codec", - "bytes", - "prost", - "thiserror", - "unsigned-varint", -] - [[package]] name = "prost-derive" version = "0.11.9" @@ -9833,6 +10135,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -10074,9 +10389,9 @@ dependencies = [ [[package]] name = "regalloc2" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ "fxhash", "log", @@ -10124,21 +10439,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" - -[[package]] -name = "region" -version = "3.0.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags 1.3.2", - "libc", - "mach", - "winapi", -] +checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" [[package]] name = "resolv-conf" @@ -10156,11 +10459,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" version = "0.16.20" @@ -10209,9 +10522,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9562ea1d70c0cc63a34a22d977753b50cca91cc6b6527750463bd5dd8697bc" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" dependencies = [ "libc", "librocksdb-sys", @@ -10219,8 +10532,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -10230,7 +10543,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal", "log", "pallet-authority-discovery", "pallet-authorship", @@ -10248,6 +10561,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -10268,7 +10582,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", - "pallet-xcm 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "pallet-xcm 0.9.43", "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-parachain", @@ -10305,8 +10619,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -10563,7 +10877,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "log", "sp-core", @@ -10574,7 +10888,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -10582,6 +10896,7 @@ dependencies = [ "ip_network", "libp2p", "log", + "multihash 0.17.0", "parity-scale-codec", "prost", "prost-build", @@ -10602,7 +10917,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "futures-timer", @@ -10625,7 +10940,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -10640,7 +10955,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -10659,25 +10974,25 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "chrono", "clap", "fdlimit", "futures 0.3.28", - "libp2p", + "libp2p-identity", "log", "names", "parity-scale-codec", @@ -10710,7 +11025,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "fnv", "futures 0.3.28", @@ -10729,6 +11044,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-statement-store", "sp-storage", "substrate-prometheus-endpoint", ] @@ -10736,7 +11052,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "hash-db 0.16.0", "kvdb", @@ -10762,12 +11078,12 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", "futures-timer", - "libp2p", + "libp2p-identity", "log", "mockall", "parking_lot 0.12.1", @@ -10787,7 +11103,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -10816,13 +11132,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "fork-tree", "futures 0.3.28", "log", - "merlin", "num-bigint", "num-rational", "num-traits", @@ -10835,7 +11150,6 @@ dependencies = [ "sc-keystore", "sc-telemetry", "scale-info", - "schnorrkel", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -10843,7 +11157,6 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -10855,7 +11168,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "jsonrpsee", @@ -10877,9 +11190,10 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "fnv", "futures 0.3.28", @@ -10912,7 +11226,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "jsonrpsee", @@ -10931,7 +11245,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10944,7 +11258,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ahash 0.8.3", "array-bytes 4.2.0", @@ -10984,7 +11298,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "finality-grandpa", "futures 0.3.28", @@ -11004,7 +11318,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -11027,13 +11341,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", - "sc-executor-wasmi", "sc-executor-wasmtime", "sp-api", "sp-core", @@ -11045,39 +11358,24 @@ dependencies = [ "sp-version", "sp-wasm-interface", "tracing", - "wasmi 0.13.2", ] [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", "thiserror", "wasm-instrument 0.3.0", - "wasmi 0.13.2", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" -dependencies = [ - "log", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmi 0.13.2", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "anyhow", "cfg-if", @@ -11095,7 +11393,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ansi_term", "futures 0.3.28", @@ -11111,10 +11409,9 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", - "async-trait", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -11126,7 +11423,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -11156,6 +11453,7 @@ dependencies = [ "serde", "serde_json", "smallvec", + "snow", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -11170,11 +11468,12 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ + "async-channel", "cid", "futures 0.3.28", - "libp2p", + "libp2p-identity", "log", "prost", "prost-build", @@ -11190,7 +11489,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -11198,7 +11497,7 @@ dependencies = [ "bytes", "futures 0.3.28", "futures-timer", - "libp2p", + "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", @@ -11218,7 +11517,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ahash 0.8.3", "futures 0.3.28", @@ -11237,11 +11536,12 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", + "async-channel", "futures 0.3.28", - "libp2p", + "libp2p-identity", "log", "parity-scale-codec", "prost", @@ -11259,9 +11559,10 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "fork-tree", "futures 0.3.28", @@ -11293,7 +11594,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "futures 0.3.28", @@ -11313,7 +11614,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -11344,20 +11645,23 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", - "libp2p", + "libp2p-identity", "log", + "parking_lot 0.12.1", + "partial_sort", "sc-utils", "serde_json", + "sp-arithmetic", "wasm-timer", ] [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11366,7 +11670,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "jsonrpsee", @@ -11389,6 +11693,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", + "sp-statement-store", "sp-version", "tokio", ] @@ -11396,7 +11701,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11415,7 +11720,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "http", "jsonrpsee", @@ -11430,7 +11735,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", "futures 0.3.28", @@ -11456,7 +11761,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "directories", @@ -11522,7 +11827,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "log", "parity-scale-codec", @@ -11533,7 +11838,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "clap", "fs4", @@ -11549,7 +11854,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11568,7 +11873,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "libc", @@ -11587,7 +11892,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "chrono", "futures 0.3.28", @@ -11606,7 +11911,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ansi_term", "atty", @@ -11637,18 +11942,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -11675,7 +11980,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -11689,7 +11994,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-channel", "futures 0.3.28", @@ -11815,10 +12120,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.7", "generic-array 0.14.7", - "pkcs8", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -11937,6 +12256,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -12039,7 +12367,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.4.1", + "hex-literal", "log", "moonbeam-evm-tracer", "moonbeam-rpc-primitives-debug", @@ -12147,7 +12475,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.4.1", + "hex-literal", "log", "moonbeam-evm-tracer", "moonbeam-rpc-primitives-debug", @@ -12247,6 +12575,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + [[package]] name = "simba" version = "0.8.1" @@ -12315,8 +12653,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "enumn", "parity-scale-codec", @@ -12403,13 +12741,15 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "hash-db 0.16.0", "log", "parity-scale-codec", + "scale-info", "sp-api-proc-macro", "sp-core", + "sp-metadata-ir", "sp-runtime", "sp-state-machine", "sp-std", @@ -12421,7 +12761,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "Inflector", "blake2", @@ -12429,13 +12769,13 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -12448,7 +12788,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "integer-sqrt", "num-traits", @@ -12462,7 +12802,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -12475,7 +12815,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "sp-api", @@ -12487,7 +12827,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "futures 0.3.28", "log", @@ -12505,7 +12845,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures 0.3.28", @@ -12520,7 +12860,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "parity-scale-codec", @@ -12538,10 +12878,9 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", - "merlin", "parity-scale-codec", "scale-info", "serde", @@ -12549,7 +12888,6 @@ dependencies = [ "sp-application-crypto", "sp-consensus", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -12561,7 +12899,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "lazy_static", "parity-scale-codec", @@ -12580,7 +12918,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "finality-grandpa", "log", @@ -12598,7 +12936,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -12607,29 +12945,16 @@ dependencies = [ "sp-timestamp", ] -[[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", -] - [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "array-bytes 4.2.0", - "base58", "bitflags 1.3.2", "blake2", "bounded-collections", + "bs58", "dyn-clonable", "ed25519-zebra", "futures 0.3.28", @@ -12642,6 +12967,7 @@ dependencies = [ "merlin", "parity-scale-codec", "parking_lot 0.12.1", + "paste", "primitive-types", "rand 0.8.5", "regex", @@ -12666,7 +12992,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "blake2b_simd", "byteorder", @@ -12680,18 +13006,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -12700,17 +13026,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "environmental", "parity-scale-codec", @@ -12721,7 +13047,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -12736,7 +13062,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "bytes", "ed25519", @@ -12745,6 +13071,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", + "rustversion", "secp256k1", "sp-core", "sp-externalities", @@ -12761,7 +13088,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "lazy_static", "sp-core", @@ -12772,14 +13099,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ - "async-trait", "futures 0.3.28", - "merlin", "parity-scale-codec", "parking_lot 0.12.1", - "schnorrkel", "serde", "sp-core", "sp-externalities", @@ -12789,16 +13113,27 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "thiserror", - "zstd", + "zstd 0.12.3+zstd.1.5.2", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std", ] [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -12816,7 +13151,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -12830,7 +13165,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "sp-api", "sp-core", @@ -12840,7 +13175,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "backtrace", "lazy_static", @@ -12850,7 +13185,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "rustc-hash", "serde", @@ -12860,7 +13195,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "either", "hash256-std-hasher", @@ -12882,7 +13217,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12900,19 +13235,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -12926,10 +13261,11 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", + "serde", "sp-core", "sp-runtime", "sp-std", @@ -12938,7 +13274,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "hash-db 0.16.0", "log", @@ -12955,15 +13291,33 @@ dependencies = [ "tracing", ] +[[package]] +name = "sp-statement-store" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "thiserror", +] + [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12976,7 +13330,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "futures-timer", @@ -12991,7 +13345,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "sp-std", @@ -13003,7 +13357,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "sp-api", "sp-runtime", @@ -13012,7 +13366,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "log", @@ -13028,11 +13382,11 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ahash 0.8.3", "hash-db 0.16.0", - "hashbrown 0.12.3", + "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", @@ -13051,7 +13405,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "impl-serde", "parity-scale-codec", @@ -13068,18 +13422,18 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -13093,7 +13447,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "parity-scale-codec", "scale-info", @@ -13117,6 +13471,17 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "spinners" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab" +dependencies = [ + "lazy_static", + "maplit", + "strum", +] + [[package]] name = "spki" version = "0.6.0" @@ -13124,7 +13489,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der 0.7.7", ] [[package]] @@ -13283,7 +13658,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "platforms 2.0.0", ] @@ -13291,7 +13666,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.28", @@ -13310,7 +13685,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "hyper", "log", @@ -13322,7 +13697,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "jsonrpsee", @@ -13335,7 +13710,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "jsonrpsee", "log", @@ -13354,7 +13729,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "ansi_term", "build-helper", @@ -13363,7 +13738,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml", + "toml 0.7.6", "walkdir", "wasm-opt", ] @@ -13680,6 +14055,17 @@ dependencies = [ "syn 2.0.25", ] +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.23.4" @@ -13727,11 +14113,26 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -13740,6 +14141,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78" dependencies = [ "indexmap 2.0.0", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -13757,11 +14160,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +checksum = "a8bd22a874a2d0b70452d5597b12c537331d49060824a95f49f108994f94aa4c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.3", "bytes", "futures-core", "futures-util", @@ -13831,8 +14234,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -13842,14 +14245,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ - "expander 0.0.6", + "expander 2.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] @@ -13983,7 +14386,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" dependencies = [ "async-trait", "clap", @@ -14014,7 +14417,7 @@ dependencies = [ "sp-version", "sp-weights", "substrate-rpc-client", - "zstd", + "zstd 0.12.3+zstd.1.5.2", ] [[package]] @@ -14343,9 +14746,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" +checksum = "87fef6d0d508f08334e0ab0e6877feb4c0ecb3956bcf2cb950699b22fedf3e9c" dependencies = [ "anyhow", "libc", @@ -14359,9 +14762,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" +checksum = "bc816bbc1596c8f2e8127e137a760c798023ef3d378f2ae51f0f1840e2dfa445" dependencies = [ "anyhow", "cxx", @@ -14371,15 +14774,14 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" +checksum = "40199e4f68ef1071b3c6d0bd8026a12b481865d4b9e49c156932ea9a6234dd14" dependencies = [ "anyhow", "cc", "cxx", "cxx-build", - "regex", ] [[package]] @@ -14410,13 +14812,13 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.20.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01bf50edb2ea9d922aa75a7bf3c15e26a6c9e2d18c56e862b49737a582901729" +checksum = "8e61a7006b0fdf24f6bbe8dcfdad5ca1b350de80061fb2827f31c82fbbb9565a" dependencies = [ "spin 0.9.8", "wasmi_arena", - "wasmi_core 0.5.0", + "wasmi_core 0.12.0", "wasmparser-nostd", ] @@ -14431,9 +14833,9 @@ dependencies = [ [[package]] name = "wasmi_arena" -version = "0.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ea379cbb0b41f3a9f0bf7b47036d036aae7f43383d8cc487d4deccf40dee0a" +checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" [[package]] name = "wasmi_core" @@ -14446,25 +14848,25 @@ dependencies = [ "memory_units", "num-rational", "num-traits", - "region", ] [[package]] name = "wasmi_core" -version = "0.5.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5bf998ab792be85e20e771fe14182b4295571ad1d4f89d3da521c1bef5f597a" +checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7" dependencies = [ "downcast-rs", "libm 0.2.7", "num-traits", + "paste", ] [[package]] name = "wasmparser" -version = "0.100.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ "indexmap 1.9.3", "url", @@ -14472,18 +14874,18 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.91.0" +version = "0.100.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c37f310b5a62bfd5ae7c0f1d8e6f98af16a5d6d84ba764e9c36439ec14e318b" +checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" dependencies = [ "indexmap-nostd", ] [[package]] name = "wasmtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a222f5fa1e14b2cefc286f1b68494d7a965f4bf57ec04c59bb62673d639af6" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", "bincode", @@ -14491,7 +14893,7 @@ dependencies = [ "indexmap 1.9.3", "libc", "log", - "object 0.29.0", + "object 0.30.4", "once_cell", "paste", "psm", @@ -14504,26 +14906,26 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-asm-macros" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4407a7246e7d2f3d8fb1cf0c72fda8dbafdb6dd34d555ae8bea0e5ae031089cc" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ceb3adf61d654be0be67fffdce42447b0880481348785be5fe40b5dd7663a4c" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.13.1", + "base64 0.21.2", "bincode", "directories-next", "file-per-thread-logger", @@ -14531,16 +14933,16 @@ dependencies = [ "rustix 0.36.15", "serde", "sha2 0.10.7", - "toml", - "windows-sys 0.42.0", - "zstd", + "toml 0.5.11", + "windows-sys 0.45.0", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "wasmtime-cranelift" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c366bb8647e01fd08cb5589976284b00abfded5529b33d7e7f3f086c68304a4" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", "cranelift-codegen", @@ -14548,27 +14950,43 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object 0.30.4", "target-lexicon", "thiserror", "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli", + "object 0.30.4", + "target-lexicon", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b8b50962eae38ee319f7b24900b7cf371f03eebdc17400c1dc8575fc10c9a7" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" dependencies = [ "anyhow", "cranelift-entity", - "gimli 0.26.2", + "gimli", "indexmap 1.9.3", "log", - "object 0.29.0", + "object 0.30.4", "serde", "target-lexicon", "thiserror", @@ -14578,18 +14996,18 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffaed4f9a234ba5225d8e64eac7b4a5d13b994aeb37353cde2cbeb3febda9eaa" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ - "addr2line 0.17.0", + "addr2line 0.19.0", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object 0.30.4", "rustc-demangle", "serde", "target-lexicon", @@ -14597,36 +15015,36 @@ dependencies = [ "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit-debug" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ - "object 0.29.0", + "object 0.30.4", "once_cell", "rustix 0.36.15", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a28ae1e648461bfdbb79db3efdaee1bca5b940872e4175390f465593a2e54c" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ "cfg-if", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-runtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e704b126e4252788ccfc3526d4d4511d4b23c521bf123e447ac726c14545217b" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ "anyhow", "cc", @@ -14636,21 +15054,21 @@ dependencies = [ "log", "mach", "memfd", - "memoffset 0.6.5", + "memoffset 0.8.0", "paste", "rand 0.8.5", "rustix 0.36.15", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-types" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e5572c5727c1ee7e8f28717aaa8400e4d22dcbd714ea5457d85b5005206568" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", @@ -14768,7 +15186,7 @@ dependencies = [ "ccm", "curve25519-dalek 3.2.0", "der-parser 8.2.0", - "elliptic-curve", + "elliptic-curve 0.12.3", "hkdf", "hmac 0.12.1", "log", @@ -14780,11 +15198,11 @@ dependencies = [ "rcgen 0.9.3", "ring", "rustls 0.19.1", - "sec1", + "sec1 0.3.0", "serde", "sha1", "sha2 0.10.7", - "signature", + "signature 1.6.4", "subtle", "thiserror", "tokio", @@ -14908,8 +15326,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -14920,7 +15338,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal", "log", "pallet-authority-discovery", "pallet-authorship", @@ -14938,6 +15356,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -14962,7 +15381,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", - "pallet-xcm 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "pallet-xcm 0.9.43", "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-parachain", @@ -15000,8 +15419,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -15092,21 +15511,6 @@ dependencies = [ "windows-targets 0.48.1", ] -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -15358,8 +15762,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "derivative", @@ -15374,8 +15778,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "frame-system", @@ -15389,14 +15793,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-weights", "xcm", "xcm-executor", ] [[package]] name = "xcm-executor" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "environmental", "frame-benchmarking", @@ -15415,19 +15820,19 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.25", ] [[package]] name = "xcm-simulator" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "parity-scale-codec", @@ -15438,6 +15843,7 @@ dependencies = [ "sp-io", "sp-std", "xcm", + "xcm-builder", "xcm-executor", ] @@ -15559,7 +15965,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.3+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" +dependencies = [ + "zstd-safe 6.0.5+zstd.1.5.4", ] [[package]] @@ -15572,6 +15987,16 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "6.0.5+zstd.1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b" +dependencies = [ + "libc", + "zstd-sys", +] + [[package]] name = "zstd-sys" version = "2.0.8+zstd.1.5.5" diff --git a/Cargo.toml b/Cargo.toml index a7c43c8821..c974b445f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,8 +41,8 @@ exclude = ["vendor"] panic = "unwind" [patch."https://github.com/paritytech/substrate"] -pallet-contracts = { git = "https://github.com/AstarNetwork/substrate", branch = "polkadot-v0.9.40/pallet-contracts-custom" } -pallet-contracts-primitives = { git = "https://github.com/AstarNetwork/substrate", branch = "polkadot-v0.9.40/pallet-contracts-custom" } +pallet-contracts = { git = "https://github.com/AstarNetwork/substrate", branch = "astar-polkadot-v0.9.43" } +pallet-contracts-primitives = { git = "https://github.com/AstarNetwork/substrate", branch = "astar-polkadot-v0.9.43" } [workspace.package] authors = ["Stake Technologies "] @@ -91,90 +91,90 @@ syn = { version = "1.0" } # Substrate # (wasm) -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } # (native) -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } # Substrate pallets # (wasm) -pallet-assets = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-contracts = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false, features = ["historical"] } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } -pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-contracts = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false, features = ["historical"] } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } # EVM & Ethereum # (wasm) @@ -186,85 +186,85 @@ evm-runtime = { version = "0.39.0", default-features = false } # Frontier # (wasm) -fp-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -fp-self-contained = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false, features = ["forbid-evm-reentrancy"] } -pallet-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false, features = ["forbid-evm-reentrancy"] } -pallet-evm-precompile-blake2 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-bn128 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-dispatch = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-ed25519 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-base-fee = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -pallet-evm-chain-id = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -fp-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } -fp-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", default-features = false } +fp-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +fp-self-contained = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false, features = ["forbid-evm-reentrancy"] } +pallet-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false, features = ["forbid-evm-reentrancy"] } +pallet-evm-precompile-blake2 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-dispatch = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-ed25519 = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-base-fee = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +fp-evm = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } +fp-ethereum = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } # (native) -fc-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fc-db = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fc-mapping-sync = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fc-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40", features = ["rpc-binary-search-estimate"] } -fc-rpc-core = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fp-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fp-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } -fc-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.40" } +fc-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fc-db = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fc-mapping-sync = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fc-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", features = ["rpc-binary-search-estimate"] } +fc-rpc-core = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fp-consensus = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fp-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } +fc-storage = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43" } # Cumulus # (wasm) -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } # (native) -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } # Polkadot # (wasm) -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } # Temporary, to ensure `runtime-benchmarks` features can compile -polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } +polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } # XCM # (wasm) -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.40", default-features = false } -xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } +xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } # (native) -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } # ORML # (wasm) -orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.40", default-features = false } -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.40", default-features = false } -orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.40", default-features = false } +orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43", default-features = false } +orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43", default-features = false } +orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.43", default-features = false } # Astar pallets & modules # (wasm) @@ -319,5 +319,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/substrate", branch = "polkadot-v0.9.40" } -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } From 71e2dd6463c937e50dcf0b26cf6297f37be73b25 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Wed, 12 Jul 2023 17:47:48 +0200 Subject: [PATCH 02/31] Progress --- Cargo.toml | 4 +- bin/collator/src/local/service.rs | 18 +++----- bin/collator/src/parachain/service.rs | 8 ++-- pallets/block-reward/src/mock.rs | 4 ++ pallets/contracts-migration/src/lib.rs | 4 +- pallets/custom-signatures/src/tests.rs | 4 ++ pallets/dapps-staking/src/mock.rs | 5 ++ pallets/ethereum-checked/src/mock.rs | 4 ++ pallets/pallet-xcm/src/benchmarking.rs | 2 + pallets/pallet-xcm/src/lib.rs | 46 +++++++++++++++++-- pallets/pallet-xcm/src/mock.rs | 6 +++ pallets/pallet-xvm/src/wasm.rs | 2 +- pallets/xc-asset-config/src/mock.rs | 4 ++ precompiles/assets-erc20/src/mock.rs | 4 ++ precompiles/dapps-staking/src/mock.rs | 5 ++ precompiles/sr25519/src/mock.rs | 4 ++ precompiles/substrate-ecdsa/src/mock.rs | 4 ++ precompiles/xcm/src/mock.rs | 6 +++ precompiles/xvm/src/mock.rs | 4 ++ primitives/src/xcm/mod.rs | 8 ++-- primitives/src/xcm/tests.rs | 8 ++-- runtime/astar/src/lib.rs | 10 +++- runtime/astar/src/xcm_config.rs | 1 + runtime/local/src/lib.rs | 10 +++- runtime/shibuya/src/lib.rs | 10 +++- runtime/shibuya/src/xcm_config.rs | 1 + runtime/shiden/src/lib.rs | 10 +++- runtime/shiden/src/xcm_config.rs | 1 + rust-toolchain.toml | 2 +- scripts/templates/weight-template.hbs | 2 +- tests/xcm-simulator/src/mocks/mod.rs | 2 +- tests/xcm-simulator/src/mocks/parachain.rs | 7 +-- tests/xcm-simulator/src/mocks/relay_chain.rs | 4 +- tests/xcm-simulator/src/tests/experimental.rs | 4 +- 34 files changed, 171 insertions(+), 47 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c974b445f7..300ed4bbac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ repository = "https://github.com/AstarNetwork/Astar" # General deps # (wasm) parity-scale-codec = { version = "3.4.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.3.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } log = { version = "0.4.17", default-features = false } environmental = { version = "1.1.2", default-features = false } sha3 = { version = "0.10.1", default-features = false } @@ -67,7 +67,7 @@ bounded-collections = { version = "0.1.5", default-features = false } array-bytes = "6.0.0" smallvec = "1.9.0" async-trait = "0.1.59" -clap = { version = "4.1.6", features = ["derive"] } +clap = { version = "4.2.5", features = ["derive"] } futures = { version = "0.3.26" } serde = { version = "1.0.151", features = ["derive"] } serde_json = "1.0.92" diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index 3597f6278f..77fd544881 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -84,12 +84,6 @@ pub fn new_partial( >, ServiceError, > { - if config.keystore_remote.is_some() { - return Err(ServiceError::Other( - "Remote Keystores are not supported.".to_string(), - )); - } - let telemetry = config .telemetry_endpoints .clone() @@ -368,7 +362,7 @@ pub fn start_node( let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { network: network.clone(), client: client.clone(), - keystore: keystore_container.sync_keystore(), + keystore: keystore_container.keystore(), task_manager: &mut task_manager, transaction_pool: transaction_pool.clone(), rpc_builder: rpc_extensions_builder, @@ -411,7 +405,7 @@ pub fn start_node( }, force_authoring, backoff_authoring_blocks, - keystore: keystore_container.sync_keystore(), + keystore: keystore_container.keystore(), sync_oracle: sync_service.clone(), justification_sync_link: sync_service.clone(), block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32), @@ -431,7 +425,7 @@ pub fn start_node( // if the node isn't actively participating in consensus then it doesn't // need a keystore, regardless of which protocol we use below. let keystore = if role.is_authority() { - Some(keystore_container.sync_keystore()) + Some(keystore_container.keystore()) } else { None }; @@ -630,7 +624,7 @@ pub fn start_node(config: Configuration) -> Result { let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { network: network.clone(), client: client.clone(), - keystore: keystore_container.sync_keystore(), + keystore: keystore_container.keystore(), task_manager: &mut task_manager, transaction_pool: transaction_pool.clone(), rpc_builder: rpc_extensions_builder, @@ -673,7 +667,7 @@ pub fn start_node(config: Configuration) -> Result { }, force_authoring, backoff_authoring_blocks, - keystore: keystore_container.sync_keystore(), + keystore: keystore_container.keystore(), sync_oracle: sync_service.clone(), justification_sync_link: sync_service.clone(), block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32), @@ -693,7 +687,7 @@ pub fn start_node(config: Configuration) -> Result { // if the node isn't actively participating in consensus then it doesn't // need a keystore, regardless of which protocol we use below. let keystore = if role.is_authority() { - Some(keystore_container.sync_keystore()) + Some(keystore_container.keystore()) } else { None }; diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index 0e39b44231..c569787b3c 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -527,7 +527,7 @@ where transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, - keystore: params.keystore_container.sync_keystore(), + keystore: params.keystore_container.keystore(), backend: backend.clone(), network: network.clone(), system_rpc_tx, @@ -557,7 +557,7 @@ where relay_chain_interface.clone(), transaction_pool, sync_service, - params.keystore_container.sync_keystore(), + params.keystore_container.keystore(), force_authoring, )?; @@ -874,7 +874,7 @@ where transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, - keystore: params.keystore_container.sync_keystore(), + keystore: params.keystore_container.keystore(), backend: backend.clone(), network: network.clone(), system_rpc_tx, @@ -904,7 +904,7 @@ where relay_chain_interface.clone(), transaction_pool, sync_service, - params.keystore_container.sync_keystore(), + params.keystore_container.keystore(), force_authoring, )?; diff --git a/pallets/block-reward/src/mock.rs b/pallets/block-reward/src/mock.rs index d2ded0fbdd..0bed8f682d 100644 --- a/pallets/block-reward/src/mock.rs +++ b/pallets/block-reward/src/mock.rs @@ -101,6 +101,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/pallets/contracts-migration/src/lib.rs b/pallets/contracts-migration/src/lib.rs index 5596b9a819..81825bcdd3 100644 --- a/pallets/contracts-migration/src/lib.rs +++ b/pallets/contracts-migration/src/lib.rs @@ -174,7 +174,7 @@ pub mod pallet { initial: old.initial, maximum: old.maximum, code: old.code, - determinism: Determinism::Deterministic, + determinism: pallet_contracts::Enforced, }) }); @@ -297,7 +297,7 @@ pub mod pallet { fn post_upgrade(_state: Vec) -> Result<(), &'static str> { for value in CodeStorage::::iter_values() { ensure!( - value.determinism == Determinism::Deterministic, + value.determinism == Determinism::Enforced, "All pre-existing codes need to be deterministic." ); } diff --git a/pallets/custom-signatures/src/tests.rs b/pallets/custom-signatures/src/tests.rs index 56eb68737b..7ead46bb4f 100644 --- a/pallets/custom-signatures/src/tests.rs +++ b/pallets/custom-signatures/src/tests.rs @@ -111,6 +111,10 @@ impl pallet_balances::Config for Runtime { type MaxLocks = (); type MaxReserves = (); type ReserveIdentifier = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } const MAGIC_NUMBER: u16 = 0xff50; diff --git a/pallets/dapps-staking/src/mock.rs b/pallets/dapps-staking/src/mock.rs index fbe027910a..118407ed4d 100644 --- a/pallets/dapps-staking/src/mock.rs +++ b/pallets/dapps-staking/src/mock.rs @@ -122,6 +122,11 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + // TODO: modify this properly, will need some freeze identifier + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/pallets/ethereum-checked/src/mock.rs b/pallets/ethereum-checked/src/mock.rs index 6f301ed0ef..234b92de10 100644 --- a/pallets/ethereum-checked/src/mock.rs +++ b/pallets/ethereum-checked/src/mock.rs @@ -80,6 +80,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ConstU128<2>; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } impl pallet_timestamp::Config for TestRuntime { diff --git a/pallets/pallet-xcm/src/benchmarking.rs b/pallets/pallet-xcm/src/benchmarking.rs index 2679ebb511..795a1e4058 100644 --- a/pallets/pallet-xcm/src/benchmarking.rs +++ b/pallets/pallet-xcm/src/benchmarking.rs @@ -125,6 +125,8 @@ benchmarks! { Pallet::::check_xcm_version_change(VersionMigrationStage::MigrateSupportedVersion, Weight::zero()); } + force_suspension {}: _(RawOrigin::Root, true) + migrate_version_notifiers { let old_version = XCM_VERSION - 1; let loc = VersionedMultiLocation::from(MultiLocation::from(Parent)); diff --git a/pallets/pallet-xcm/src/lib.rs b/pallets/pallet-xcm/src/lib.rs index 470f50333d..2ffb526edf 100644 --- a/pallets/pallet-xcm/src/lib.rs +++ b/pallets/pallet-xcm/src/lib.rs @@ -55,7 +55,7 @@ use frame_system::pallet_prelude::*; pub use pallet::*; use xcm_executor::{ traits::{ - ClaimAssets, DropAssets, MatchesFungible, OnResponse, VersionChangeNotifier, WeightBounds, + ClaimAssets, DropAssets, MatchesFungible, OnResponse, VersionChangeNotifier, WeightBounds, CheckSuspension, }, Assets, }; @@ -69,6 +69,7 @@ pub trait WeightInfo { fn force_default_xcm_version() -> Weight; fn force_subscribe_version_notify() -> Weight; fn force_unsubscribe_version_notify() -> Weight; + fn force_suspension() -> Weight; fn migrate_supported_version() -> Weight; fn migrate_version_notifiers() -> Weight; fn already_notified_target() -> Weight; @@ -114,6 +115,10 @@ impl WeightInfo for TestWeightInfo { Weight::from_parts(100_000_000, 0) } + fn force_suspension() -> Weight { + Weight::from_parts(100_000_000, 0) + } + fn migrate_supported_version() -> Weight { Weight::from_parts(100_000_000, 0) } @@ -257,6 +262,10 @@ pub mod pallet { /// If `None`, the benchmarks that depend on a reachable destination will be skipped. #[cfg(feature = "runtime-benchmarks")] type ReachableDest: Get>; + + /// The origin that is allowed to call privileged operations on the XCM pallet + type AdminOrigin: EnsureOrigin<::RuntimeOrigin>; + } #[pallet::event] @@ -623,6 +632,10 @@ pub mod pallet { OptionQuery, >; + /// Global suspension state of the XCM executor. + #[pallet::storage] + pub(super) type XcmExecutionSuspended = StorageValue<_, bool, ValueQuery>; + #[pallet::genesis_config] pub struct GenesisConfig { /// The default version to encode outgoing XCM messages with. @@ -941,7 +954,7 @@ pub mod pallet { location: Box, xcm_version: XcmVersion, ) -> DispatchResult { - ensure_root(origin)?; + T::AdminOrigin::ensure_origin(origin)?; let location = *location; SupportedVersion::::insert( XCM_VERSION, @@ -963,7 +976,7 @@ pub mod pallet { origin: OriginFor, maybe_xcm_version: Option, ) -> DispatchResult { - ensure_root(origin)?; + T::AdminOrigin::ensure_origin(origin)?; SafeXcmVersion::::set(maybe_xcm_version); Ok(()) } @@ -978,7 +991,7 @@ pub mod pallet { origin: OriginFor, location: Box, ) -> DispatchResult { - ensure_root(origin)?; + T::AdminOrigin::ensure_origin(origin)?; let location: MultiLocation = (*location) .try_into() .map_err(|()| Error::::BadLocation)?; @@ -1003,7 +1016,7 @@ pub mod pallet { origin: OriginFor, location: Box, ) -> DispatchResult { - ensure_root(origin)?; + T::AdminOrigin::ensure_origin(origin)?; let location: MultiLocation = (*location) .try_into() .map_err(|()| Error::::BadLocation)?; @@ -1118,6 +1131,18 @@ pub mod pallet { ) } + /// Set or unset the global suspension state of the XCM executor. + /// + /// - `origin`: Must be an origin specified by AdminOrigin. + /// - `suspended`: `true` to suspend, `false` to resume. + #[pallet::call_index(10)] + #[pallet::weight(T::WeightInfo::force_suspension())] + pub fn force_suspension(origin: OriginFor, suspended: bool) -> DispatchResult { + T::AdminOrigin::ensure_origin(origin)?; + XcmExecutionSuspended::::set(suspended); + Ok(()) + } + /// Transfer some assets from sovereign account to reserve holder chain and /// forward a notification XCM. /// @@ -2364,6 +2389,17 @@ impl OnResponse for Pallet { } } +impl CheckSuspension for Pallet { + fn is_suspended( + _origin: &MultiLocation, + _instructions: &mut [Instruction], + _max_weight: Weight, + _weight_credit: &mut Weight, + ) -> bool { + XcmExecutionSuspended::::get() + } +} + /// Ensure that the origin `o` represents an XCM (`Transact`) origin. /// /// Returns `Ok` with the location of the XCM sender or an `Err` otherwise. diff --git a/pallets/pallet-xcm/src/mock.rs b/pallets/pallet-xcm/src/mock.rs index c10d2df4f1..b7eb531c32 100644 --- a/pallets/pallet-xcm/src/mock.rs +++ b/pallets/pallet-xcm/src/mock.rs @@ -21,6 +21,7 @@ use frame_support::{ traits::{Everything, Nothing}, weights::Weight, }; +use frame_system::EnsureRoot; use parity_scale_codec::Encode; use polkadot_parachain::primitives::Id as ParaId; use polkadot_runtime_parachains::origin; @@ -246,6 +247,10 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { @@ -346,6 +351,7 @@ impl pallet_xcm::Config for Test { type WeightInfo = TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } impl origin::Config for Test {} diff --git a/pallets/pallet-xvm/src/wasm.rs b/pallets/pallet-xvm/src/wasm.rs index 0ebfecb127..ad08f6cf71 100644 --- a/pallets/pallet-xvm/src/wasm.rs +++ b/pallets/pallet-xvm/src/wasm.rs @@ -68,7 +68,7 @@ where None, input, false, - pallet_contracts::Determinism::Deterministic, + pallet_contracts::Determinism::Enforced, ); log::trace!( diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index 143ddf8e87..13f4ed0f7a 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -97,6 +97,10 @@ impl pallet_balances::Config for Test { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } type AssetId = u128; diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 9a33b8cb78..9693e7f4ca 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -218,6 +218,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/precompiles/dapps-staking/src/mock.rs b/precompiles/dapps-staking/src/mock.rs index 3be46b8e0c..2eab578900 100644 --- a/precompiles/dapps-staking/src/mock.rs +++ b/precompiles/dapps-staking/src/mock.rs @@ -195,6 +195,11 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + // TODO: set this properly + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } pub fn precompile_address() -> H160 { diff --git a/precompiles/sr25519/src/mock.rs b/precompiles/sr25519/src/mock.rs index 7303be80dc..0c1ace683a 100644 --- a/precompiles/sr25519/src/mock.rs +++ b/precompiles/sr25519/src/mock.rs @@ -182,6 +182,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/precompiles/substrate-ecdsa/src/mock.rs b/precompiles/substrate-ecdsa/src/mock.rs index 06a1a9f4dc..602ec18574 100644 --- a/precompiles/substrate-ecdsa/src/mock.rs +++ b/precompiles/substrate-ecdsa/src/mock.rs @@ -182,6 +182,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/precompiles/xcm/src/mock.rs b/precompiles/xcm/src/mock.rs index e85ba0c29f..07547d4277 100644 --- a/precompiles/xcm/src/mock.rs +++ b/precompiles/xcm/src/mock.rs @@ -26,6 +26,7 @@ use frame_support::{ traits::{AsEnsureOriginWithArg, Everything, Nothing}, weights::Weight, }; +use frame_system::EnsureRoot; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -233,6 +234,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } // These parameters dont matter much as this will only be called by root with the forced arguments @@ -451,6 +456,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } // Configure a mock runtime to test the pallet. diff --git a/precompiles/xvm/src/mock.rs b/precompiles/xvm/src/mock.rs index 5ebfaad7a0..e0fab9aa0b 100644 --- a/precompiles/xvm/src/mock.rs +++ b/precompiles/xvm/src/mock.rs @@ -193,6 +193,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { diff --git a/primitives/src/xcm/mod.rs b/primitives/src/xcm/mod.rs index d3dbb04706..9e6be70297 100644 --- a/primitives/src/xcm/mod.rs +++ b/primitives/src/xcm/mod.rs @@ -34,7 +34,7 @@ use frame_support::{ ensure, - traits::{tokens::fungibles, Contains, ContainsPair, Get}, + traits::{tokens::fungibles, Contains, ContainsPair, Get, ProcessMessageError}, weights::constants::WEIGHT_REF_TIME_PER_SECOND, }; use sp_runtime::traits::{Bounded, Zero}; @@ -281,13 +281,13 @@ impl> ShouldExecute for AllowPaidExecWithDescendOrigi message: &mut [Instruction], max_weight: Weight, _weight_credit: &mut Weight, - ) -> Result<(), ()> { + ) -> Result<(), ProcessMessageError> { log::trace!( target: "xcm::barriers", "AllowPaidExecWithDescendOriginFrom origin: {:?}, message: {:?}, max_weight: {:?}, weight_credit: {:?}", origin, message, max_weight, _weight_credit, ); - ensure!(T::contains(origin), ()); + ensure!(T::contains(origin), ProcessMessageError::Unsupported); match message .iter_mut() @@ -311,7 +311,7 @@ impl> ShouldExecute for AllowPaidExecWithDescendOrigi Ok(()) } - _ => return Err(()), + _ => return Err(ProcessMessageError::Unsupported), } } } diff --git a/primitives/src/xcm/tests.rs b/primitives/src/xcm/tests.rs index 8d2b3c1298..39265245d9 100644 --- a/primitives/src/xcm/tests.rs +++ b/primitives/src/xcm/tests.rs @@ -510,7 +510,7 @@ fn allow_paid_exec_with_descend_origin_with_unsupported_origin_fails() { Weight::from_parts(100, 0), &mut Weight::zero(), ); - assert_eq!(res, Err(())); + assert_eq!(res, Err(ProcessMessageError::Unsupported)); } #[test] @@ -523,7 +523,7 @@ fn allow_paid_exec_with_descend_origin_with_invalid_message_fails() { Weight::from_parts(100, 0), &mut Weight::zero(), ); - assert_eq!(res, Err(())); + assert_eq!(res, Err(ProcessMessageError::Unsupported)); // Should still fail, even if correct sequence follows next invalid_message.append(&mut desc_origin_barrier_valid_sequence()); @@ -533,7 +533,7 @@ fn allow_paid_exec_with_descend_origin_with_invalid_message_fails() { Weight::from_parts(100, 0), &mut Weight::zero(), ); - assert_eq!(res, Err(())); + assert_eq!(res, Err(ProcessMessageError::Unsupported)); } #[test] @@ -558,5 +558,5 @@ fn allow_paid_exec_with_descend_origin_too_small_weight_fails() { enforced_weight_limit, &mut Weight::zero(), ); - assert_eq!(res, Err(())); + assert_eq!(res, Err(ProcessMessageError::Unsupported)); } diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index 73ddde3a42..d2ebf80e36 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -1220,6 +1220,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { @@ -1506,7 +1514,7 @@ impl_runtime_apis! { input_data: Vec, ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Deterministic) + Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) } fn instantiate( diff --git a/runtime/astar/src/xcm_config.rs b/runtime/astar/src/xcm_config.rs index 616aaac796..c9cb293d02 100644 --- a/runtime/astar/src/xcm_config.rs +++ b/runtime/astar/src/xcm_config.rs @@ -310,6 +310,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::weights::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index 49cdabf9bd..8d5ffd268a 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -1116,6 +1116,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_block_builder::BlockBuilder for Runtime { @@ -1432,7 +1440,7 @@ impl_runtime_apis! { input_data: Vec, ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Deterministic) + Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) } fn instantiate( diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index 6bf8fa53f9..d5a4096ff9 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -1427,6 +1427,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { @@ -1713,7 +1721,7 @@ impl_runtime_apis! { input_data: Vec, ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Deterministic) + Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) } fn instantiate( diff --git a/runtime/shibuya/src/xcm_config.rs b/runtime/shibuya/src/xcm_config.rs index efb107360c..2feca95922 100644 --- a/runtime/shibuya/src/xcm_config.rs +++ b/runtime/shibuya/src/xcm_config.rs @@ -247,6 +247,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::weights::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index cd4e5dd052..6fc57dcf20 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -1183,6 +1183,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { @@ -1469,7 +1477,7 @@ impl_runtime_apis! { input_data: Vec, ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Deterministic) + Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) } fn instantiate( diff --git a/runtime/shiden/src/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index 1f21f75716..dae283d748 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -318,6 +318,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::weights::SubstrateWeight; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e01bdaaafd..d9f00d7570 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2023-01-10" +channel = "1.69.0" components = ["rustfmt", "clippy"] targets = ["wasm32-unknown-unknown"] profile = "minimal" diff --git a/scripts/templates/weight-template.hbs b/scripts/templates/weight-template.hbs index ba9ac07988..0df6bef5d3 100644 --- a/scripts/templates/weight-template.hbs +++ b/scripts/templates/weight-template.hbs @@ -17,7 +17,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions needed for {{pallet}}. pub trait WeightInfo { diff --git a/tests/xcm-simulator/src/mocks/mod.rs b/tests/xcm-simulator/src/mocks/mod.rs index d9d37f83e5..ca83e9aacd 100644 --- a/tests/xcm-simulator/src/mocks/mod.rs +++ b/tests/xcm-simulator/src/mocks/mod.rs @@ -326,7 +326,7 @@ pub fn call_contract_method( storage_deposit_limit, data, debug, - Determinism::Deterministic, + Determinism::Enforced, ); if debug { diff --git a/tests/xcm-simulator/src/mocks/parachain.rs b/tests/xcm-simulator/src/mocks/parachain.rs index c6d5ad269d..0882837ac0 100644 --- a/tests/xcm-simulator/src/mocks/parachain.rs +++ b/tests/xcm-simulator/src/mocks/parachain.rs @@ -34,7 +34,7 @@ use frame_support::{ }; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureSigned, + EnsureSigned, EnsureRoot, }; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_core::{ConstBool, H256}; @@ -140,7 +140,7 @@ impl pallet_assets::Config for Runtime { type AssetIdParameter = AssetId; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = frame_system::EnsureRoot; + type ForceOrigin = EnsureRoot; type AssetDeposit = ConstU128<10>; type MetadataDepositBase = ConstU128<10>; type MetadataDepositPerByte = ConstU128<1>; @@ -391,7 +391,7 @@ impl pallet_xc_asset_config::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AssetId = AssetId; type XcAssetChanged = (); - type ManagerOrigin = frame_system::EnsureRoot; + type ManagerOrigin = EnsureRoot; type WeightInfo = pallet_xc_asset_config::weights::SubstrateWeight; } @@ -588,6 +588,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } /// Convert `AccountId` to `MultiLocation`. diff --git a/tests/xcm-simulator/src/mocks/relay_chain.rs b/tests/xcm-simulator/src/mocks/relay_chain.rs index e4875ada96..fb30a2e8dc 100644 --- a/tests/xcm-simulator/src/mocks/relay_chain.rs +++ b/tests/xcm-simulator/src/mocks/relay_chain.rs @@ -23,6 +23,7 @@ use frame_support::{ }; use sp_core::H256; use sp_runtime::{testing::Header, traits::IdentityLookup, AccountId32}; +use frame_system::EnsureRoot; use polkadot_parachain::primitives::Id as ParaId; use polkadot_runtime_parachains::{configuration, origin, shared, ump}; @@ -185,6 +186,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } parameter_types! { @@ -195,7 +197,7 @@ impl ump::Config for Runtime { type RuntimeEvent = RuntimeEvent; type UmpSink = ump::XcmSink, Runtime>; type FirstMessageFactorPercent = FirstMessageFactorPercent; - type ExecuteOverweightOrigin = frame_system::EnsureRoot; + type ExecuteOverweightOrigin = EnsureRoot; type WeightInfo = ump::TestWeightInfo; } diff --git a/tests/xcm-simulator/src/tests/experimental.rs b/tests/xcm-simulator/src/tests/experimental.rs index 6f47ed74de..72b98f23ce 100644 --- a/tests/xcm-simulator/src/tests/experimental.rs +++ b/tests/xcm-simulator/src/tests/experimental.rs @@ -283,7 +283,7 @@ fn test_async_xcm_contract_call_no_ce() { ); // topup soverigin account of contract's derieve account in ParaB - assert_ok!(ParachainBalances::set_balance( + assert_ok!(ParachainBalances::force_set_balance( parachain::RuntimeOrigin::root(), sibling_para_account_account_id( 2, @@ -298,7 +298,7 @@ fn test_async_xcm_contract_call_no_ce() { ParaB::execute_with(|| { // topup contract's ParaB derieve account - assert_ok!(ParachainBalances::set_balance( + assert_ok!(ParachainBalances::force_set_balance( parachain::RuntimeOrigin::root(), sibling_para_account_account_id(1, contract_id.clone()), INITIAL_BALANCE, From 17c28dd3e1c736b7cb33dfc9ee7e711a31ab6290 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 13 Jul 2023 14:27:19 +0200 Subject: [PATCH 03/31] Progress 2 --- Cargo.lock | 3 -- Cargo.toml | 1 - bin/collator/src/command.rs | 22 ++------ bin/collator/src/local/service.rs | 15 ++++++ bin/collator/src/parachain/service.rs | 8 ++- pallets/block-reward/src/mock.rs | 6 +-- pallets/collator-selection/src/mock.rs | 4 ++ pallets/custom-signatures/src/tests.rs | 6 +-- pallets/dapps-staking/src/mock.rs | 7 ++- pallets/ethereum-checked/src/mock.rs | 6 +-- pallets/pallet-xcm/src/lib.rs | 46 ++++++++--------- pallets/pallet-xcm/src/mock.rs | 6 +-- pallets/xc-asset-config/src/mock.rs | 6 +-- precompiles/assets-erc20/src/mock.rs | 6 +-- precompiles/dapps-staking/src/mock.rs | 7 ++- precompiles/sr25519/src/mock.rs | 6 +-- precompiles/substrate-ecdsa/src/mock.rs | 6 +-- precompiles/xcm/src/mock.rs | 6 +-- precompiles/xvm/src/mock.rs | 6 +-- runtime/astar/Cargo.toml | 3 -- runtime/astar/src/lib.rs | 50 ++++++------------- runtime/local/src/lib.rs | 14 ++++-- runtime/shibuya/Cargo.toml | 3 -- runtime/shibuya/src/lib.rs | 47 ++++++----------- runtime/shiden/Cargo.toml | 3 -- runtime/shiden/src/lib.rs | 47 ++++++----------- tests/xcm-simulator/src/mocks/parachain.rs | 6 ++- tests/xcm-simulator/src/mocks/relay_chain.rs | 6 ++- .../src/tests/fungible_assets.rs | 2 +- 29 files changed, 157 insertions(+), 197 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cfc19b9611..497e7ec5e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -583,7 +583,6 @@ dependencies = [ "pallet-multisig", "pallet-proxy", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12414,7 +12413,6 @@ dependencies = [ "pallet-proxy", "pallet-scheduler", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12514,7 +12512,6 @@ dependencies = [ "pallet-multisig", "pallet-proxy", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", diff --git a/Cargo.toml b/Cargo.toml index 300ed4bbac..20dad7d841 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -174,7 +174,6 @@ pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "p pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } # EVM & Ethereum # (wasm) diff --git a/bin/collator/src/command.rs b/bin/collator/src/command.rs index 98d70cf370..a821a7604d 100644 --- a/bin/collator/src/command.rs +++ b/bin/collator/src/command.rs @@ -962,14 +962,10 @@ impl DefaultConfigurationValues for RelayChainCli { 30334 } - fn rpc_ws_listen_port() -> u16 { + fn rpc_listen_port() -> u16 { 9945 } - fn rpc_http_listen_port() -> u16 { - 9934 - } - fn prometheus_listen_port() -> u16 { 9616 } @@ -999,16 +995,8 @@ impl CliConfiguration for RelayChainCli { .or_else(|| self.base_path.clone().map(Into::into))) } - fn rpc_http(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_http(default_listen_port) - } - - fn rpc_ipc(&self) -> Result> { - self.base.base.rpc_ipc() - } - - fn rpc_ws(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_ws(default_listen_port) + fn rpc_addr(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_addr(default_listen_port) } fn prometheus_config( @@ -1060,8 +1048,8 @@ impl CliConfiguration for RelayChainCli { self.base.base.rpc_methods() } - fn rpc_ws_max_connections(&self) -> Result> { - self.base.base.rpc_ws_max_connections() + fn rpc_max_connections(&self) -> Result { + self.base.base.rpc_max_connections() } fn rpc_cors(&self, is_dev: bool) -> Result>> { diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index 77fd544881..cf723ed19d 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -94,6 +94,7 @@ pub fn new_partial( Ok((worker, telemetry)) }) .transpose()?; + let executor = sc_executor::NativeElseWasmExecutor::::new( config.wasm_method, config.default_heap_pages, @@ -101,6 +102,20 @@ pub fn new_partial( config.runtime_cache_size, ); + let heap_pages = config + .default_heap_pages + .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { + extra_pages: h as _, + }); + + let executor = sc_executor::WasmExecutor::::builder() + .with_execution_method(config.wasm_method) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) + .with_onchain_heap_alloc_strategy(heap_pages) + .with_offchain_heap_alloc_strategy(heap_pages) + .build(); + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( config, diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index c569787b3c..47d347e1eb 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -556,7 +556,7 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service, + sync_service.clone(), params.keystore_container.keystore(), force_authoring, )?; @@ -576,6 +576,7 @@ where collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_collator(params).await?; @@ -589,6 +590,7 @@ where relay_chain_slot_duration, import_queue: import_queue_service, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_full_node(params)?; @@ -903,7 +905,7 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service, + sync_service.clone(), params.keystore_container.keystore(), force_authoring, )?; @@ -923,6 +925,7 @@ where collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_collator(params).await?; @@ -936,6 +939,7 @@ where relay_chain_slot_duration, import_queue: import_queue_service, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_full_node(params)?; diff --git a/pallets/block-reward/src/mock.rs b/pallets/block-reward/src/mock.rs index 0bed8f682d..8b5a4d3090 100644 --- a/pallets/block-reward/src/mock.rs +++ b/pallets/block-reward/src/mock.rs @@ -102,9 +102,9 @@ impl pallet_balances::Config for TestRuntime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index b21a924a7a..e09e03d742 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -99,6 +99,10 @@ impl pallet_balances::Config for Test { type MaxLocks = (); type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } pub struct Author4; diff --git a/pallets/custom-signatures/src/tests.rs b/pallets/custom-signatures/src/tests.rs index 7ead46bb4f..0a20119cf1 100644 --- a/pallets/custom-signatures/src/tests.rs +++ b/pallets/custom-signatures/src/tests.rs @@ -112,9 +112,9 @@ impl pallet_balances::Config for Runtime { type MaxReserves = (); type ReserveIdentifier = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } const MAGIC_NUMBER: u16 = 0xff50; diff --git a/pallets/dapps-staking/src/mock.rs b/pallets/dapps-staking/src/mock.rs index 118407ed4d..1d3a61911f 100644 --- a/pallets/dapps-staking/src/mock.rs +++ b/pallets/dapps-staking/src/mock.rs @@ -122,11 +122,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); - // TODO: modify this properly, will need some freeze identifier type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/pallets/ethereum-checked/src/mock.rs b/pallets/ethereum-checked/src/mock.rs index 234b92de10..7d53cad630 100644 --- a/pallets/ethereum-checked/src/mock.rs +++ b/pallets/ethereum-checked/src/mock.rs @@ -81,9 +81,9 @@ impl pallet_balances::Config for TestRuntime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl pallet_timestamp::Config for TestRuntime { diff --git a/pallets/pallet-xcm/src/lib.rs b/pallets/pallet-xcm/src/lib.rs index 2ffb526edf..0dd8da11d0 100644 --- a/pallets/pallet-xcm/src/lib.rs +++ b/pallets/pallet-xcm/src/lib.rs @@ -55,7 +55,8 @@ use frame_system::pallet_prelude::*; pub use pallet::*; use xcm_executor::{ traits::{ - ClaimAssets, DropAssets, MatchesFungible, OnResponse, VersionChangeNotifier, WeightBounds, CheckSuspension, + CheckSuspension, ClaimAssets, DropAssets, MatchesFungible, OnResponse, + VersionChangeNotifier, WeightBounds, }, Assets, }; @@ -116,8 +117,8 @@ impl WeightInfo for TestWeightInfo { } fn force_suspension() -> Weight { - Weight::from_parts(100_000_000, 0) - } + Weight::from_parts(100_000_000, 0) + } fn migrate_supported_version() -> Weight { Weight::from_parts(100_000_000, 0) @@ -265,7 +266,6 @@ pub mod pallet { /// The origin that is allowed to call privileged operations on the XCM pallet type AdminOrigin: EnsureOrigin<::RuntimeOrigin>; - } #[pallet::event] @@ -1131,17 +1131,17 @@ pub mod pallet { ) } - /// Set or unset the global suspension state of the XCM executor. - /// - /// - `origin`: Must be an origin specified by AdminOrigin. - /// - `suspended`: `true` to suspend, `false` to resume. - #[pallet::call_index(10)] - #[pallet::weight(T::WeightInfo::force_suspension())] - pub fn force_suspension(origin: OriginFor, suspended: bool) -> DispatchResult { - T::AdminOrigin::ensure_origin(origin)?; - XcmExecutionSuspended::::set(suspended); - Ok(()) - } + /// Set or unset the global suspension state of the XCM executor. + /// + /// - `origin`: Must be an origin specified by AdminOrigin. + /// - `suspended`: `true` to suspend, `false` to resume. + #[pallet::call_index(10)] + #[pallet::weight(T::WeightInfo::force_suspension())] + pub fn force_suspension(origin: OriginFor, suspended: bool) -> DispatchResult { + T::AdminOrigin::ensure_origin(origin)?; + XcmExecutionSuspended::::set(suspended); + Ok(()) + } /// Transfer some assets from sovereign account to reserve holder chain and /// forward a notification XCM. @@ -2390,14 +2390,14 @@ impl OnResponse for Pallet { } impl CheckSuspension for Pallet { - fn is_suspended( - _origin: &MultiLocation, - _instructions: &mut [Instruction], - _max_weight: Weight, - _weight_credit: &mut Weight, - ) -> bool { - XcmExecutionSuspended::::get() - } + fn is_suspended( + _origin: &MultiLocation, + _instructions: &mut [Instruction], + _max_weight: Weight, + _weight_credit: &mut Weight, + ) -> bool { + XcmExecutionSuspended::::get() + } } /// Ensure that the origin `o` represents an XCM (`Transact`) origin. diff --git a/pallets/pallet-xcm/src/mock.rs b/pallets/pallet-xcm/src/mock.rs index b7eb531c32..69e979411b 100644 --- a/pallets/pallet-xcm/src/mock.rs +++ b/pallets/pallet-xcm/src/mock.rs @@ -248,9 +248,9 @@ impl pallet_balances::Config for Test { type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index 13f4ed0f7a..176c4c57bc 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -98,9 +98,9 @@ impl pallet_balances::Config for Test { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } type AssetId = u128; diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 9693e7f4ca..11fdff01f1 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -219,9 +219,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/precompiles/dapps-staking/src/mock.rs b/precompiles/dapps-staking/src/mock.rs index 2eab578900..f40b1d674d 100644 --- a/precompiles/dapps-staking/src/mock.rs +++ b/precompiles/dapps-staking/src/mock.rs @@ -195,11 +195,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); - // TODO: set this properly type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } pub fn precompile_address() -> H160 { diff --git a/precompiles/sr25519/src/mock.rs b/precompiles/sr25519/src/mock.rs index 0c1ace683a..646fe6f0a5 100644 --- a/precompiles/sr25519/src/mock.rs +++ b/precompiles/sr25519/src/mock.rs @@ -183,9 +183,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/precompiles/substrate-ecdsa/src/mock.rs b/precompiles/substrate-ecdsa/src/mock.rs index 602ec18574..f7510c3ba9 100644 --- a/precompiles/substrate-ecdsa/src/mock.rs +++ b/precompiles/substrate-ecdsa/src/mock.rs @@ -183,9 +183,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/precompiles/xcm/src/mock.rs b/precompiles/xcm/src/mock.rs index 07547d4277..b1e761a0fa 100644 --- a/precompiles/xcm/src/mock.rs +++ b/precompiles/xcm/src/mock.rs @@ -235,9 +235,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } // These parameters dont matter much as this will only be called by root with the forced arguments diff --git a/precompiles/xvm/src/mock.rs b/precompiles/xvm/src/mock.rs index e0fab9aa0b..56018467ff 100644 --- a/precompiles/xvm/src/mock.rs +++ b/precompiles/xvm/src/mock.rs @@ -194,9 +194,9 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = (); type HoldIdentifier = (); - type FreezeIdentifier = (); - type MaxHolds = (); - type MaxFreezes = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { diff --git a/runtime/astar/Cargo.toml b/runtime/astar/Cargo.toml index 61d0bbd046..4d522ff9a8 100644 --- a/runtime/astar/Cargo.toml +++ b/runtime/astar/Cargo.toml @@ -57,7 +57,6 @@ pallet-identity = { workspace = true } pallet-multisig = { workspace = true } pallet-proxy = { workspace = true } pallet-session = { workspace = true, features = ["historical"] } -pallet-state-trie-migration = { workspace = true } pallet-sudo = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } @@ -165,7 +164,6 @@ std = [ "pallet-identity/std", "pallet-multisig/std", "pallet-session/std", - "pallet-state-trie-migration/std", "pallet-utility/std", "pallet-timestamp/std", "pallet-vesting/std", @@ -258,7 +256,6 @@ try-runtime = [ "pallet-base-fee/try-runtime", "pallet-contracts/try-runtime", "pallet-evm/try-runtime", - "pallet-state-trie-migration/try-runtime", ] evm-tracing = [ "moonbeam-evm-tracer", diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index d2ebf80e36..e9e8884440 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -529,6 +529,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = frame_system::Pallet; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl AddressToAssetId for Runtime { @@ -844,27 +848,6 @@ impl pallet_xc_asset_config::Config for Runtime { type WeightInfo = pallet_xc_asset_config::weights::SubstrateWeight; } -parameter_types! { - // The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high) - pub const MigrationSignedDepositPerItem: Balance = 1 * ASTR; - pub const MigrationSignedDepositBase: Balance = 100 * ASTR; -} - -frame_support::ord_parameter_types! { - pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8ea88e403abea19c5eedeb366e9338fd969e5053f117c18872725aed5423d43c")); -} - -impl pallet_state_trie_migration::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type SignedDepositPerItem = MigrationSignedDepositPerItem; - type SignedDepositBase = MigrationSignedDepositBase; - type ControlOrigin = EnsureRoot; - // specific account for the migration, can trigger the signed migrations. - type SignedFilter = frame_system::EnsureSignedBy; - type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; - type MaxKeyLen = ConstU32<512>; -} /// The type used to represent the kinds of proxying allowed. #[derive( Copy, @@ -1051,9 +1034,6 @@ construct_runtime!( Contracts: pallet_contracts = 70, Sudo: pallet_sudo = 99, - - // TODO: remove this after migration is finished - StateTrieMigration: pallet_state_trie_migration = 200, } ); @@ -1091,14 +1071,16 @@ pub type Executive = frame_executive::Executive< Migrations, >; +// Used to cleanup StateTrieMigration storage - remove once cleanup is done. +parameter_types! { + pub const StateTrieMigrationStr: &'static str = "StateTrieMigration"; +} + /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = ( - pallet_xc_asset_config::migrations::MigrationXcmV3, - pallet_xcm::migration::v1::MigrateToV1, - PalletContractsV9, -); +pub type Migrations = + (frame_support::migrations::RemovePallet,); use frame_support::pallet_prelude::*; pub struct PalletContractsV9(PhantomData); @@ -1222,12 +1204,12 @@ impl_runtime_apis! { } fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } + Runtime::metadata_at_version(version) + } - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index 8d5ffd268a..c78d86ed04 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -293,6 +293,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -1118,12 +1122,12 @@ impl_runtime_apis! { } fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } + Runtime::metadata_at_version(version) + } - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_block_builder::BlockBuilder for Runtime { diff --git a/runtime/shibuya/Cargo.toml b/runtime/shibuya/Cargo.toml index dba6eccc14..c7b7ca2782 100644 --- a/runtime/shibuya/Cargo.toml +++ b/runtime/shibuya/Cargo.toml @@ -63,7 +63,6 @@ pallet-preimage = { workspace = true } pallet-proxy = { workspace = true } pallet-scheduler = { workspace = true } pallet-session = { workspace = true } -pallet-state-trie-migration = { workspace = true } pallet-sudo = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } @@ -206,7 +205,6 @@ std = [ "pallet-xc-asset-config/std", "pallet-xvm/std", "pallet-scheduler/std", - "pallet-state-trie-migration/std", "parachain-info/std", "polkadot-parachain/std", "polkadot-primitives/std", @@ -300,7 +298,6 @@ try-runtime = [ "pallet-preimage/try-runtime", "pallet-base-fee/try-runtime", "pallet-evm/try-runtime", - "pallet-state-trie-migration/try-runtime", "orml-xtokens/try-runtime", ] evm-tracing = [ diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index d5a4096ff9..03aeaa5383 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -596,6 +596,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = frame_system::Pallet; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -1209,28 +1213,6 @@ impl pallet_xc_asset_config::Config for Runtime { type WeightInfo = pallet_xc_asset_config::weights::SubstrateWeight; } -parameter_types! { - // The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high) - pub const MigrationSignedDepositPerItem: Balance = 10 * MILLISBY; - pub const MigrationSignedDepositBase: Balance = 1 * SBY; -} - -frame_support::ord_parameter_types! { - pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8ea88e403abea19c5eedeb366e9338fd969e5053f117c18872725aed5423d43c")); -} - -impl pallet_state_trie_migration::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type SignedDepositPerItem = MigrationSignedDepositPerItem; - type SignedDepositBase = MigrationSignedDepositBase; - type ControlOrigin = EnsureRoot; - // specific account for the migration, can trigger the signed migrations. - type SignedFilter = frame_system::EnsureSignedBy; - type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; - type MaxKeyLen = ConstU32<512>; -} - construct_runtime!( pub struct Runtime where Block = Block, @@ -1286,9 +1268,6 @@ construct_runtime!( Xvm: pallet_xvm = 90, Sudo: pallet_sudo = 99, - - // TODO: remove this after migration is finished - StateTrieMigration: pallet_state_trie_migration = 200, } ); @@ -1326,10 +1305,16 @@ pub type Executive = frame_executive::Executive< Migrations, >; +// Used to cleanup StateTrieMigration storage - remove once cleanup is done. +parameter_types! { + pub const StateTrieMigrationStr: &'static str = "StateTrieMigration"; +} + /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = (); +pub type Migrations = + (frame_support::migrations::RemovePallet,); impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1429,12 +1414,12 @@ impl_runtime_apis! { } fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } + Runtime::metadata_at_version(version) + } - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { diff --git a/runtime/shiden/Cargo.toml b/runtime/shiden/Cargo.toml index d07bccc4f1..319c2104e8 100644 --- a/runtime/shiden/Cargo.toml +++ b/runtime/shiden/Cargo.toml @@ -59,7 +59,6 @@ pallet-insecure-randomness-collective-flip = { workspace = true } pallet-multisig = { workspace = true } pallet-proxy = { workspace = true } pallet-session = { workspace = true, features = ["historical"] } -pallet-state-trie-migration = { workspace = true } pallet-sudo = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } @@ -174,7 +173,6 @@ std = [ "pallet-multisig/std", "pallet-insecure-randomness-collective-flip/std", "pallet-session/std", - "pallet-state-trie-migration/std", "pallet-utility/std", "pallet-proxy/std", "pallet-timestamp/std", @@ -269,7 +267,6 @@ try-runtime = [ "parachain-info/try-runtime", "pallet-base-fee/try-runtime", "pallet-evm/try-runtime", - "pallet-state-trie-migration/try-runtime", "orml-xtokens/try-runtime", ] evm-tracing = [ diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 6fc57dcf20..ca87015146 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -532,6 +532,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = frame_system::Pallet; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl AddressToAssetId for Runtime { @@ -975,28 +979,6 @@ impl pallet_proxy::Config for Runtime { type AnnouncementDepositFactor = AnnouncementDepositFactor; } -parameter_types! { - // The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high) - pub const MigrationSignedDepositPerItem: Balance = 10 * MILLISDN; - pub const MigrationSignedDepositBase: Balance = 1 * SDN; -} - -frame_support::ord_parameter_types! { - pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8ea88e403abea19c5eedeb366e9338fd969e5053f117c18872725aed5423d43c")); -} - -impl pallet_state_trie_migration::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type SignedDepositPerItem = MigrationSignedDepositPerItem; - type SignedDepositBase = MigrationSignedDepositBase; - type ControlOrigin = EnsureRoot; - // specific account for the migration, can trigger the signed migrations. - type SignedFilter = frame_system::EnsureSignedBy; - type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight; - type MaxKeyLen = ConstU32<512>; -} - construct_runtime!( pub struct Runtime where Block = Block, @@ -1042,9 +1024,6 @@ construct_runtime!( RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip = 71, Sudo: pallet_sudo = 99, - - // TODO: remove this after migration is finished - StateTrieMigration: pallet_state_trie_migration = 200, } ); @@ -1082,10 +1061,16 @@ pub type Executive = frame_executive::Executive< Migrations, >; +// Used to cleanup StateTrieMigration storage - remove once cleanup is done. +parameter_types! { + pub const StateTrieMigrationStr: &'static str = "StateTrieMigration"; +} + /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = (); +pub type Migrations = + (frame_support::migrations::RemovePallet,); impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1185,12 +1170,12 @@ impl_runtime_apis! { } fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } + Runtime::metadata_at_version(version) + } - fn metadata_versions() -> sp_std::vec::Vec { - Runtime::metadata_versions() - } + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_consensus_aura::AuraApi for Runtime { diff --git a/tests/xcm-simulator/src/mocks/parachain.rs b/tests/xcm-simulator/src/mocks/parachain.rs index 0882837ac0..8c5e129b77 100644 --- a/tests/xcm-simulator/src/mocks/parachain.rs +++ b/tests/xcm-simulator/src/mocks/parachain.rs @@ -34,7 +34,7 @@ use frame_support::{ }; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureSigned, EnsureRoot, + EnsureRoot, EnsureSigned, }; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_core::{ConstBool, H256}; @@ -124,6 +124,10 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl pallet_utility::Config for Runtime { diff --git a/tests/xcm-simulator/src/mocks/relay_chain.rs b/tests/xcm-simulator/src/mocks/relay_chain.rs index fb30a2e8dc..ea66309327 100644 --- a/tests/xcm-simulator/src/mocks/relay_chain.rs +++ b/tests/xcm-simulator/src/mocks/relay_chain.rs @@ -21,9 +21,9 @@ use frame_support::{ traits::{ConstU32, Everything, Nothing}, weights::Weight, }; +use frame_system::EnsureRoot; use sp_core::H256; use sp_runtime::{testing::Header, traits::IdentityLookup, AccountId32}; -use frame_system::EnsureRoot; use polkadot_parachain::primitives::Id as ParaId; use polkadot_runtime_parachains::{configuration, origin, shared, ump}; @@ -86,6 +86,10 @@ impl pallet_balances::Config for Runtime { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl shared::Config for Runtime {} diff --git a/tests/xcm-simulator/src/tests/fungible_assets.rs b/tests/xcm-simulator/src/tests/fungible_assets.rs index ff379219a8..04f823db26 100644 --- a/tests/xcm-simulator/src/tests/fungible_assets.rs +++ b/tests/xcm-simulator/src/tests/fungible_assets.rs @@ -845,7 +845,7 @@ fn receive_asset_with_no_sufficients_not_possible_if_non_existent_account() { // Send native token to fresh_account ParaA::execute_with(|| { - assert_ok!(ParachainBalances::transfer( + assert_ok!(ParachainBalances::transfer_allow_death( parachain::RuntimeOrigin::signed(ALICE.into()), fresh_account.into(), 100 From 9a455d8ce3fa408aac5774b9df08fd52171636c3 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 13 Jul 2023 15:06:35 +0200 Subject: [PATCH 04/31] Progress 3 --- Cargo.lock | 1 + bin/collator/src/local/service.rs | 21 +-------------------- bin/collator/src/parachain/service.rs | 7 +------ precompiles/assets-erc20/src/lib.rs | 13 +++++++++---- precompiles/utils/src/testing.rs | 10 ++++++++++ primitives/src/xcm/mod.rs | 3 ++- runtime/astar/src/lib.rs | 15 +++++++++++++++ runtime/local/src/lib.rs | 15 +++++++++++++++ runtime/shibuya/src/lib.rs | 15 +++++++++++++++ runtime/shiden/src/lib.rs | 15 +++++++++++++++ vendor/primitives/txpool/Cargo.toml | 2 ++ vendor/primitives/txpool/src/lib.rs | 6 +++--- 12 files changed, 89 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 497e7ec5e8..2836518a2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6055,6 +6055,7 @@ version = "0.6.0" dependencies = [ "ethereum", "parity-scale-codec", + "scale-info", "sp-api", "sp-io", "sp-runtime", diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index cf723ed19d..1d837bdfe7 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -95,26 +95,7 @@ pub fn new_partial( }) .transpose()?; - let executor = sc_executor::NativeElseWasmExecutor::::new( - config.wasm_method, - config.default_heap_pages, - config.max_runtime_instances, - config.runtime_cache_size, - ); - - let heap_pages = config - .default_heap_pages - .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { - extra_pages: h as _, - }); - - let executor = sc_executor::WasmExecutor::::builder() - .with_execution_method(config.wasm_method) - .with_max_runtime_instances(config.max_runtime_instances) - .with_runtime_cache_size(config.runtime_cache_size) - .with_onchain_heap_alloc_strategy(heap_pages) - .with_offchain_heap_alloc_strategy(heap_pages) - .build(); + let executor = sc_service::new_native_or_wasm_executor(&config); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index 47d347e1eb..1821e4bd9d 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -209,12 +209,7 @@ where }) .transpose()?; - let executor = sc_executor::NativeElseWasmExecutor::::new( - config.wasm_method, - config.default_heap_pages, - config.max_runtime_instances, - config.runtime_cache_size, - ); + let executor = sc_service::new_native_or_wasm_executor(&config); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index 0471098d8a..eb12bae29e 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -144,7 +144,9 @@ where if let Some(asset_id) = Runtime::address_to_asset_id(address) { // We check maybe_total_supply. This function returns Some if the asset exists, // which is all we care about at this point - if pallet_assets::Pallet::::maybe_total_supply(asset_id).is_some() { + if pallet_assets::Pallet::::maybe_total_supply(asset_id.clone()) + .is_some() + { let result = { let selector = match handle.read_selector() { Ok(selector) => selector, @@ -297,14 +299,17 @@ where handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; // If previous approval exists, we need to clean it - if pallet_assets::Pallet::::allowance(asset_id, &origin, &spender) - != 0u32.into() + if pallet_assets::Pallet::::allowance( + asset_id.clone(), + &origin, + &spender, + ) != 0u32.into() { RuntimeHelper::::try_dispatch( handle, Some(origin.clone()).into(), pallet_assets::Call::::cancel_approval { - id: asset_id.into(), + id: asset_id.clone().into(), delegate: Runtime::Lookup::unlookup(spender.clone()), }, )?; diff --git a/precompiles/utils/src/testing.rs b/precompiles/utils/src/testing.rs index 0f5f55ec35..9eb1023a20 100644 --- a/precompiles/utils/src/testing.rs +++ b/precompiles/utils/src/testing.rs @@ -234,6 +234,16 @@ impl PrecompileHandle for MockHandle { fn gas_limit(&self) -> Option { Some(self.gas_limit) } + + fn record_external_cost( + &mut self, + _ref_time: Option, + _proof_size: Option, + ) -> Result<(), ExitError> { + Ok(()) + } + + fn refund_external_cost(&mut self, _ref_time: Option, _proof_size: Option) {} } pub struct PrecompilesTester<'p, P> { diff --git a/primitives/src/xcm/mod.rs b/primitives/src/xcm/mod.rs index 9e6be70297..b87f9320e5 100644 --- a/primitives/src/xcm/mod.rs +++ b/primitives/src/xcm/mod.rs @@ -245,7 +245,8 @@ impl< match Matcher::matches_fungibles(&revenue) { Ok((asset_id, amount)) => { if amount > Zero::zero() { - if let Err(error) = Assets::mint_into(asset_id, &FeeDestination::get(), amount) + if let Err(error) = + Assets::mint_into(asset_id.clone(), &FeeDestination::get(), amount) { log::error!( target: "xcm::weight", diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index e9e8884440..082ace47b9 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -1470,6 +1470,21 @@ impl_runtime_apis! { } fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index c78d86ed04..9b22e6147e 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -1418,6 +1418,21 @@ impl_runtime_apis! { } fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index 03aeaa5383..e5c709e9ff 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -1680,6 +1680,21 @@ impl_runtime_apis! { } fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index ca87015146..f36fe14106 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -1436,6 +1436,21 @@ impl_runtime_apis! { } fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { diff --git a/vendor/primitives/txpool/Cargo.toml b/vendor/primitives/txpool/Cargo.toml index d9b594247b..e980333b9b 100644 --- a/vendor/primitives/txpool/Cargo.toml +++ b/vendor/primitives/txpool/Cargo.toml @@ -12,6 +12,7 @@ ethereum = { workspace = true, features = ["with-codec"] } # Substrate parity-scale-codec = { workspace = true } +scale-info = { workspace = true, features = ["derive"] } sp-api = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } @@ -21,6 +22,7 @@ sp-std = { workspace = true } default = ["std"] std = [ "ethereum/std", + "scale-info/std", "sp-api/std", "sp-io/std", "sp-runtime/std", diff --git a/vendor/primitives/txpool/src/lib.rs b/vendor/primitives/txpool/src/lib.rs index fc5f2c2bf7..6e8b33a17a 100644 --- a/vendor/primitives/txpool/src/lib.rs +++ b/vendor/primitives/txpool/src/lib.rs @@ -21,16 +21,16 @@ pub use ethereum::{TransactionV0 as LegacyTransaction, TransactionV2 as Transaction}; use parity_scale_codec::{Decode, Encode}; -use sp_runtime::traits::Block as BlockT; +use sp_runtime::{scale_info::TypeInfo, traits::Block as BlockT}; use sp_std::vec::Vec; -#[derive(Eq, PartialEq, Clone, Encode, Decode, sp_runtime::RuntimeDebug)] +#[derive(Eq, PartialEq, Clone, Encode, Decode, TypeInfo)] pub struct TxPoolResponseLegacy { pub ready: Vec, pub future: Vec, } -#[derive(Eq, PartialEq, Clone, Encode, Decode, sp_runtime::RuntimeDebug)] +#[derive(Eq, PartialEq, Clone, Encode, Decode, TypeInfo)] pub struct TxPoolResponse { pub ready: Vec, pub future: Vec, From e58599f47c6197b41f2d026c5d609abc6c84599b Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Fri, 14 Jul 2023 17:08:28 +0200 Subject: [PATCH 05/31] Progress 4 --- pallets/pallet-xcm/src/weights.rs | 24 +++++ runtime/astar/src/lib.rs | 141 ++++++++++++++++++++++++---- runtime/local/src/lib.rs | 139 ++++++++++++++++++++++++---- runtime/shibuya/src/lib.rs | 139 ++++++++++++++++++++++++---- runtime/shiden/src/lib.rs | 149 ++++++++++++++++++++++++------ 5 files changed, 509 insertions(+), 83 deletions(-) diff --git a/pallets/pallet-xcm/src/weights.rs b/pallets/pallet-xcm/src/weights.rs index bc5c452d85..a2f4e4cdb6 100644 --- a/pallets/pallet-xcm/src/weights.rs +++ b/pallets/pallet-xcm/src/weights.rs @@ -242,6 +242,18 @@ impl WeightInfo for SubstrateWeight { .saturating_add(Weight::from_parts(0, 3102)) .saturating_add(T::DbWeight::get().reads(2_u64)) } + /// C/P from PolkadotXcm, should be measured independently. + /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) + /// Proof Skipped: XcmPallet 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: 2_849_000 picoseconds. + Weight::from_parts(3_018_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } } // For backwards compatibility and tests @@ -438,4 +450,16 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(0, 3102)) .saturating_add(RocksDbWeight::get().reads(2_u64)) } + /// C/P from PolkadotXcm, should be measured independently. + /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) + /// Proof Skipped: XcmPallet 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: 2_849_000 picoseconds. + Weight::from_parts(3_018_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(RocksDbWeight::get().writes(1)) + } } diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index 082ace47b9..b14b509e6e 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -48,7 +48,7 @@ use frame_system::{ EnsureRoot, EnsureSigned, }; use pallet_ethereum::PostLogContent; -use pallet_evm::{FeeCalculator, Runner}; +use pallet_evm::{FeeCalculator, GasWeightMapping, Runner}; use pallet_transaction_payment::{ FeeDetails, Multiplier, RuntimeDispatchInfo, TargetedFeeAdjustment, }; @@ -607,9 +607,8 @@ impl pallet_vesting::Config for Runtime { parameter_types! { pub const DepositPerItem: Balance = contracts_deposit(1, 0); pub const DepositPerByte: Balance = contracts_deposit(0, 1); - // The lazy deletion runs inside on_initialize. - pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * - RuntimeBlockWeights::get().max_block; + // Fallback value if storage deposit limit not set by the user + pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -639,12 +638,11 @@ impl pallet_contracts::Config for Runtime { type CallFilter = Nothing; type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; + type DefaultDepositLimit = DefaultDepositLimit; type CallStack = [pallet_contracts::Frame; 5]; type WeightPrice = pallet_transaction_payment::Pallet; type WeightInfo = pallet_contracts::weights::SubstrateWeight; type ChainExtension = (); - type DeletionQueueDepth = ConstU32<128>; - type DeletionWeightLimit = DeletionWeightLimit; type Schedule = Schedule; type AddressGenerator = pallet_contracts::DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; @@ -786,6 +784,13 @@ parameter_types! { ); pub PrecompilesValue: Precompiles = AstarNetworkPrecompiles::<_, _>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per PoV size. Value is calculated as: + /// + /// max_gas_limit = max_tx_ref_time / WEIGHT_PER_GAS = max_pov_size * gas_limit_pov_size_ratio + /// gas_limit_pov_size_ratio = ceil((max_tx_ref_time / WEIGHT_PER_GAS) / max_pov_size) + /// + /// Equals 4 for values used by Astar runtime. + pub const GasLimitPovSizeRatio: u64 = 4; } impl pallet_evm::Config for Runtime { @@ -807,6 +812,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -825,6 +831,7 @@ impl pallet_ethereum::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; + type WeightInfo = pallet_sudo::weights::SubstrateWeight; } pub struct EvmRevertCodeHandler; @@ -1082,6 +1089,11 @@ parameter_types! { pub type Migrations = (frame_support::migrations::RemovePallet,); +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; + use frame_support::pallet_prelude::*; pub struct PalletContractsV9(PhantomData); impl frame_support::traits::OnRuntimeUpgrade for PalletContractsV9 { @@ -1361,7 +1373,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1373,6 +1385,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + ::Runner::call( from, to, @@ -1385,6 +1433,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1401,7 +1451,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1413,6 +1463,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + #[allow(clippy::or_fun_call)] // suggestion not helpful here ::Runner::create( from, @@ -1425,6 +1511,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1473,7 +1561,7 @@ impl_runtime_apis! { fn pending_block( xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { + ) -> (Option, Option>) { for ext in xts.into_iter() { let _ = Executive::apply_extrinsic(ext); } @@ -1497,11 +1585,7 @@ impl_runtime_apis! { } } - impl pallet_contracts::ContractsApi< - Block, AccountId, Balance, BlockNumber, Hash, - > - for Runtime - { + impl pallet_contracts::ContractsApi for Runtime { fn call( origin: AccountId, dest: AccountId, @@ -1509,9 +1593,19 @@ impl_runtime_apis! { gas_limit: Option, storage_deposit_limit: Option, input_data: Vec, - ) -> pallet_contracts_primitives::ContractExecResult { + ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) + Contracts::bare_call( + origin, + dest, + value, + gas_limit, + storage_deposit_limit, + input_data, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + pallet_contracts::Determinism::Enforced, + ) } fn instantiate( @@ -1522,10 +1616,19 @@ impl_runtime_apis! { code: pallet_contracts_primitives::Code, data: Vec, salt: Vec, - ) -> pallet_contracts_primitives::ContractInstantiateResult - { + ) -> pallet_contracts_primitives::ContractInstantiateResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_instantiate(origin, value, gas_limit, storage_deposit_limit, code, data, salt, true) + Contracts::bare_instantiate( + origin, + value, + gas_limit, + storage_deposit_limit, + code, + data, + salt, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + ) } fn upload_code( diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index 9b22e6147e..56cd9777a9 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -41,7 +41,7 @@ use frame_system::{ EnsureRoot, EnsureSigned, }; use pallet_ethereum::PostLogContent; -use pallet_evm::{FeeCalculator, Runner}; +use pallet_evm::{FeeCalculator, GasWeightMapping, Runner}; use pallet_evm_precompile_assets_erc20::AddressToAssetId; use pallet_grandpa::{fg_primitives, AuthorityList as GrandpaAuthorityList}; use parity_scale_codec::{Compact, Decode, Encode, MaxEncodedLen}; @@ -521,6 +521,13 @@ parameter_types! { ); pub PrecompilesValue: Precompiles = LocalNetworkPrecompiles::<_>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per PoV size. Value is calculated as: + /// + /// max_gas_limit = max_tx_ref_time / WEIGHT_PER_GAS = max_pov_size * gas_limit_pov_size_ratio + /// gas_limit_pov_size_ratio = ceil((max_tx_ref_time / WEIGHT_PER_GAS) / max_pov_size) + /// + /// Local runtime has no strict bounds as parachain, but we keep the value set to 4 for consistency. + pub const GasLimitPovSizeRatio: u64 = 4; } impl pallet_evm::Config for Runtime { @@ -542,6 +549,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -769,9 +777,8 @@ impl pallet_vesting::Config for Runtime { parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); - // The lazy deletion runs inside on_initialize. - pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * - RuntimeBlockWeights::get().max_block; + // Fallback value if storage deposit limit not set by the user + pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -790,6 +797,7 @@ impl pallet_contracts::Config for Runtime { type CallFilter = Nothing; type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; + type DefaultDepositLimit = DefaultDepositLimit; type CallStack = [pallet_contracts::Frame; 5]; type WeightPrice = pallet_transaction_payment::Pallet; type WeightInfo = pallet_contracts::weights::SubstrateWeight; @@ -798,8 +806,6 @@ impl pallet_contracts::Config for Runtime { XvmExtension, AssetsExtension>, ); - type DeletionQueueDepth = ConstU32<128>; - type DeletionWeightLimit = DeletionWeightLimit; type Schedule = Schedule; type AddressGenerator = pallet_contracts::DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; @@ -811,6 +817,7 @@ impl pallet_contracts::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; + type WeightInfo = pallet_sudo::weights::SubstrateWeight; } /// The type used to represent the kinds of proxying allowed. @@ -1027,6 +1034,11 @@ pub type Executive = frame_executive::Executive< AllPalletsWithSystem, >; +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; + impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1309,7 +1321,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1321,6 +1333,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + ::Runner::call( from, to, @@ -1333,6 +1381,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1349,7 +1399,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1361,6 +1411,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + #[allow(clippy::or_fun_call)] // suggestion not helpful here ::Runner::create( from, @@ -1373,6 +1459,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1445,11 +1533,7 @@ impl_runtime_apis! { } } - impl pallet_contracts::ContractsApi< - Block, AccountId, Balance, BlockNumber, Hash, - > - for Runtime - { + impl pallet_contracts::ContractsApi for Runtime { fn call( origin: AccountId, dest: AccountId, @@ -1457,9 +1541,19 @@ impl_runtime_apis! { gas_limit: Option, storage_deposit_limit: Option, input_data: Vec, - ) -> pallet_contracts_primitives::ContractExecResult { + ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) + Contracts::bare_call( + origin, + dest, + value, + gas_limit, + storage_deposit_limit, + input_data, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + pallet_contracts::Determinism::Enforced, + ) } fn instantiate( @@ -1470,10 +1564,19 @@ impl_runtime_apis! { code: pallet_contracts_primitives::Code, data: Vec, salt: Vec, - ) -> pallet_contracts_primitives::ContractInstantiateResult - { + ) -> pallet_contracts_primitives::ContractInstantiateResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_instantiate(origin, value, gas_limit, storage_deposit_limit, code, data, salt, true) + Contracts::bare_instantiate( + origin, + value, + gas_limit, + storage_deposit_limit, + code, + data, + salt, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + ) } fn upload_code( diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index e5c709e9ff..cb122a3cad 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -45,7 +45,7 @@ use frame_system::{ EnsureRoot, EnsureSigned, }; use pallet_ethereum::PostLogContent; -use pallet_evm::{FeeCalculator, Runner}; +use pallet_evm::{FeeCalculator, GasWeightMapping, Runner}; use pallet_transaction_payment::{ FeeDetails, Multiplier, RuntimeDispatchInfo, TargetedFeeAdjustment, }; @@ -655,9 +655,8 @@ impl pallet_vesting::Config for Runtime { parameter_types! { pub const DepositPerItem: Balance = MILLISBY / 1_000_000; pub const DepositPerByte: Balance = MILLISBY / 1_000_000; - // The lazy deletion runs inside on_initialize. - pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * - RuntimeBlockWeights::get().max_block; + // Fallback value if storage deposit limit not set by the user + pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -676,6 +675,7 @@ impl pallet_contracts::Config for Runtime { type CallFilter = Nothing; type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; + type DefaultDepositLimit = DefaultDepositLimit; type CallStack = [pallet_contracts::Frame; 5]; type WeightPrice = pallet_transaction_payment::Pallet; type WeightInfo = pallet_contracts::weights::SubstrateWeight; @@ -684,8 +684,6 @@ impl pallet_contracts::Config for Runtime { XvmExtension, AssetsExtension>, ); - type DeletionQueueDepth = ConstU32<128>; - type DeletionWeightLimit = DeletionWeightLimit; type Schedule = Schedule; type AddressGenerator = pallet_contracts::DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; @@ -833,6 +831,13 @@ parameter_types! { ); pub PrecompilesValue: Precompiles = ShibuyaNetworkPrecompiles::<_, _>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per PoV size. Value is calculated as: + /// + /// max_gas_limit = max_tx_ref_time / WEIGHT_PER_GAS = max_pov_size * gas_limit_pov_size_ratio + /// gas_limit_pov_size_ratio = ceil((max_tx_ref_time / WEIGHT_PER_GAS) / max_pov_size) + /// + /// Equals 4 for values used by Shibuya runtime. + pub const GasLimitPovSizeRatio: u64 = 4; } impl pallet_evm::Config for Runtime { @@ -856,6 +861,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -1017,6 +1023,7 @@ impl pallet_democracy::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; + type WeightInfo = pallet_sudo::weights::SubstrateWeight; } parameter_types! { @@ -1316,6 +1323,11 @@ parameter_types! { pub type Migrations = (frame_support::migrations::RemovePallet,); +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; + impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1571,7 +1583,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1583,6 +1595,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + ::Runner::call( from, to, @@ -1595,6 +1643,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1611,7 +1661,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1623,6 +1673,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + #[allow(clippy::or_fun_call)] // suggestion not helpful here ::Runner::create( from, @@ -1635,6 +1721,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1707,11 +1795,7 @@ impl_runtime_apis! { } } - impl pallet_contracts::ContractsApi< - Block, AccountId, Balance, BlockNumber, Hash, - > - for Runtime - { + impl pallet_contracts::ContractsApi for Runtime { fn call( origin: AccountId, dest: AccountId, @@ -1719,9 +1803,19 @@ impl_runtime_apis! { gas_limit: Option, storage_deposit_limit: Option, input_data: Vec, - ) -> pallet_contracts_primitives::ContractExecResult { + ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) + Contracts::bare_call( + origin, + dest, + value, + gas_limit, + storage_deposit_limit, + input_data, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + pallet_contracts::Determinism::Enforced, + ) } fn instantiate( @@ -1732,10 +1826,19 @@ impl_runtime_apis! { code: pallet_contracts_primitives::Code, data: Vec, salt: Vec, - ) -> pallet_contracts_primitives::ContractInstantiateResult - { + ) -> pallet_contracts_primitives::ContractInstantiateResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_instantiate(origin, value, gas_limit, storage_deposit_limit, code, data, salt, true) + Contracts::bare_instantiate( + origin, + value, + gas_limit, + storage_deposit_limit, + code, + data, + salt, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + ) } fn upload_code( diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index f36fe14106..5e210564b7 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -45,7 +45,7 @@ use frame_system::{ EnsureRoot, EnsureSigned, }; use pallet_ethereum::PostLogContent; -use pallet_evm::{FeeCalculator, Runner}; +use pallet_evm::{FeeCalculator, GasWeightMapping, Runner}; use pallet_transaction_payment::{ FeeDetails, Multiplier, RuntimeDispatchInfo, TargetedFeeAdjustment, }; @@ -611,9 +611,8 @@ impl pallet_vesting::Config for Runtime { parameter_types! { pub const DepositPerItem: Balance = MILLISDN / 1_000_000; pub const DepositPerByte: Balance = MILLISDN / 1_000_000; - // The lazy deletion runs inside on_initialize. - pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * - RuntimeBlockWeights::get().max_block; + // Fallback value if storage deposit limit not set by the user + pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -632,12 +631,11 @@ impl pallet_contracts::Config for Runtime { type CallFilter = Nothing; type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; + type DefaultDepositLimit = DefaultDepositLimit; type CallStack = [pallet_contracts::Frame; 5]; type WeightPrice = pallet_transaction_payment::Pallet; type WeightInfo = pallet_contracts::weights::SubstrateWeight; type ChainExtension = (); - type DeletionQueueDepth = ConstU32<128>; - type DeletionWeightLimit = DeletionWeightLimit; type Schedule = Schedule; type AddressGenerator = pallet_contracts::DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; @@ -774,6 +772,13 @@ parameter_types! { ); pub PrecompilesValue: Precompiles = ShidenNetworkPrecompiles::<_, _>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per PoV size. Value is calculated as: + /// + /// max_gas_limit = max_tx_ref_time / WEIGHT_PER_GAS = max_pov_size * gas_limit_pov_size_ratio + /// gas_limit_pov_size_ratio = ceil((max_tx_ref_time / WEIGHT_PER_GAS) / max_pov_size) + /// + /// Equals 4 for values used by Shiden runtime. + pub const GasLimitPovSizeRatio: u64 = 4; } impl pallet_evm::Config for Runtime { @@ -795,6 +800,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -813,6 +819,7 @@ impl pallet_ethereum::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; + type WeightInfo = pallet_sudo::weights::SubstrateWeight; } pub struct EvmRevertCodeHandler; @@ -1072,6 +1079,11 @@ parameter_types! { pub type Migrations = (frame_support::migrations::RemovePallet,); +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; + impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1327,7 +1339,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1339,6 +1351,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + ::Runner::call( from, to, @@ -1351,6 +1399,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1367,7 +1417,7 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, estimate: bool, - _access_list: Option)>>, + access_list: Option)>>, ) -> Result { let config = if estimate { let mut config = ::config().clone(); @@ -1379,6 +1429,42 @@ impl_runtime_apis! { let is_transactional = false; let validate = true; + + // Reused approach from Moonbeam since Frontier implementation doesn't support this + let mut estimated_transaction_len = data.len() + + // to: 20 + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 210; + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + #[allow(clippy::or_fun_call)] // suggestion not helpful here ::Runner::create( from, @@ -1391,6 +1477,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1463,11 +1551,7 @@ impl_runtime_apis! { } } - impl pallet_contracts::ContractsApi< - Block, AccountId, Balance, BlockNumber, Hash, - > - for Runtime - { + impl pallet_contracts::ContractsApi for Runtime { fn call( origin: AccountId, dest: AccountId, @@ -1475,9 +1559,19 @@ impl_runtime_apis! { gas_limit: Option, storage_deposit_limit: Option, input_data: Vec, - ) -> pallet_contracts_primitives::ContractExecResult { + ) -> pallet_contracts_primitives::ContractExecResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_call(origin, dest, value, gas_limit, storage_deposit_limit, input_data, true, pallet_contracts::Determinism::Enforced) + Contracts::bare_call( + origin, + dest, + value, + gas_limit, + storage_deposit_limit, + input_data, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + pallet_contracts::Determinism::Enforced, + ) } fn instantiate( @@ -1488,20 +1582,19 @@ impl_runtime_apis! { code: pallet_contracts_primitives::Code, data: Vec, salt: Vec, - ) -> pallet_contracts_primitives::ContractInstantiateResult - { + ) -> pallet_contracts_primitives::ContractInstantiateResult { let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); - Contracts::bare_instantiate(origin, value, gas_limit, storage_deposit_limit, code, data, salt, true) - } - - fn upload_code( - origin: AccountId, - code: Vec, - storage_deposit_limit: Option, - determinism: pallet_contracts::Determinism, - ) -> pallet_contracts_primitives::CodeUploadResult - { - Contracts::bare_upload_code(origin, code, storage_deposit_limit, determinism) + Contracts::bare_instantiate( + origin, + value, + gas_limit, + storage_deposit_limit, + code, + data, + salt, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + ) } fn get_storage( From 8eb1c2da6b9fb31c619a9ca3abcc86b15b9025b4 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 17 Jul 2023 11:24:01 +0200 Subject: [PATCH 06/31] Progress 5 --- bin/collator/src/local/service.rs | 8 +++- bin/collator/src/parachain/service.rs | 14 +++--- bin/collator/src/rpc.rs | 2 +- chain-extensions/pallet-assets/src/lib.rs | 12 +++--- chain-extensions/xvm/src/lib.rs | 17 +++++++- pallets/contracts-migration/src/lib.rs | 2 +- pallets/ethereum-checked/src/lib.rs | 4 ++ pallets/pallet-xvm/src/evm.rs | 7 ++- pallets/pallet-xvm/src/pallet/mod.rs | 2 + pallets/pallet-xvm/src/wasm.rs | 3 +- runtime/local/src/lib.rs | 12 +++--- runtime/shibuya/src/lib.rs | 10 +++-- runtime/shiden/src/lib.rs | 16 +++++-- vendor/rpc/debug/src/lib.rs | 52 ++++++++++++----------- 14 files changed, 106 insertions(+), 55 deletions(-) diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index 1d837bdfe7..d6027b2cb3 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -198,10 +198,12 @@ pub fn start_node( .expect("Genesis block exists; qed"), &config.chain_spec, ); + let net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = sc_service::build_network(sc_service::BuildNetworkParams { config: &config, + net_config, client: client.clone(), transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), @@ -258,7 +260,7 @@ pub fn start_node( task_manager.spawn_essential_handle().spawn( "frontier-mapping-sync-worker", Some("frontier"), - fc_mapping_sync::MappingSyncWorker::new( + fc_mapping_sync::kv::MappingSyncWorker::new( client.import_notification_stream(), Duration::new(6, 0), client.clone(), @@ -491,10 +493,12 @@ pub fn start_node(config: Configuration) -> Result { .expect("Genesis block exists; qed"), &config.chain_spec, ); + let net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = sc_service::build_network(sc_service::BuildNetworkParams { config: &config, + net_config, client: client.clone(), transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), @@ -530,7 +534,7 @@ pub fn start_node(config: Configuration) -> Result { task_manager.spawn_essential_handle().spawn( "frontier-mapping-sync-worker", Some("frontier"), - fc_mapping_sync::MappingSyncWorker::new( + fc_mapping_sync::kv::MappingSyncWorker::new( client.import_notification_stream(), Duration::new(6, 0), client.clone(), diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index 1821e4bd9d..ab566c08e3 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -44,7 +44,7 @@ use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, Ta use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::ConstructRuntimeApi; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_keystore::SyncCryptoStorePtr; +use sp_keystore::KeystorePtr; use sp_runtime::traits::BlakeTwo256; use sp_runtime::Percent; use std::{collections::BTreeMap, sync::Arc, time::Duration}; @@ -377,7 +377,7 @@ where >, >, Arc>, - SyncCryptoStorePtr, + KeystorePtr, bool, ) -> Result>, sc_service::Error>, { @@ -386,6 +386,7 @@ where let params = new_partial::(¶chain_config, build_import_queue)?; let (parachain_block_import, mut telemetry, telemetry_worker_handle, frontier_backend) = params.other; + let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); let client = params.client.clone(); let backend = params.backend.clone(); @@ -409,6 +410,7 @@ where let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = cumulus_client_service::build_network(BuildNetworkParams { parachain_config: ¶chain_config, + net_config, para_id: id, client: client.clone(), transaction_pool: transaction_pool.clone(), @@ -436,7 +438,7 @@ where task_manager.spawn_essential_handle().spawn( "frontier-mapping-sync-worker", Some("frontier"), - fc_mapping_sync::MappingSyncWorker::new( + fc_mapping_sync::kv::MappingSyncWorker::new( client.import_notification_stream(), Duration::new(6, 0), client.clone(), @@ -695,7 +697,7 @@ where >, >, Arc>, - SyncCryptoStorePtr, + KeystorePtr, bool, ) -> Result>, sc_service::Error>, { @@ -704,6 +706,7 @@ where let params = new_partial::(¶chain_config, build_import_queue)?; let (parachain_block_import, mut telemetry, telemetry_worker_handle, frontier_backend) = params.other; + let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); let client = params.client.clone(); let backend = params.backend.clone(); @@ -727,6 +730,7 @@ where let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = cumulus_client_service::build_network(BuildNetworkParams { parachain_config: ¶chain_config, + net_config, para_id: id, client: client.clone(), transaction_pool: transaction_pool.clone(), @@ -775,7 +779,7 @@ where task_manager.spawn_essential_handle().spawn( "frontier-mapping-sync-worker", Some("frontier"), - fc_mapping_sync::MappingSyncWorker::new( + fc_mapping_sync::kv::MappingSyncWorker::new( client.import_notification_stream(), Duration::new(6, 0), client.clone(), diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 09d292102d..fc07b2c8d2 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -81,7 +81,7 @@ where Ok(Arc::new(fc_db::Backend::::new( client, - &fc_db::DatabaseSettings { + &fc_db::kv::DatabaseSettings { source: fc_db::DatabaseSource::RocksDb { path, cache_size: 0, diff --git a/chain-extensions/pallet-assets/src/lib.rs b/chain-extensions/pallet-assets/src/lib.rs index f4ff4695e9..261eb61cdd 100644 --- a/chain-extensions/pallet-assets/src/lib.rs +++ b/chain-extensions/pallet-assets/src/lib.rs @@ -21,8 +21,10 @@ pub mod weights; use assets_chain_extension_types::{select_origin, Origin, Outcome}; -use frame_support::traits::fungibles::InspectMetadata; -use frame_support::traits::tokens::fungibles::approvals::Inspect; +use frame_support::traits::{ + fungibles::approvals::Inspect as ApprovalInspect, + fungibles::metadata::Inspect as MetadataInspect, +}; use frame_system::RawOrigin; use pallet_assets::WeightInfo; use pallet_contracts::chain_extension::{ @@ -362,7 +364,7 @@ where let base_weight = ::metadata_name(); env.charge_weight(base_weight)?; - let name = pallet_assets::Pallet::::name(&id); + let name = pallet_assets::Pallet::::name(id.clone()); env.write(&name.encode(), false, None)?; } AssetsFunc::MetadataSymbol => { @@ -371,7 +373,7 @@ where let base_weight = ::metadata_symbol(); env.charge_weight(base_weight)?; - let symbol = pallet_assets::Pallet::::symbol(&id); + let symbol = pallet_assets::Pallet::::symbol(id.clone()); env.write(&symbol.encode(), false, None)?; } AssetsFunc::MetadataDecimals => { @@ -380,7 +382,7 @@ where let base_weight = ::metadata_decimals(); env.charge_weight(base_weight)?; - let decimals = pallet_assets::Pallet::::decimals(&id); + let decimals = pallet_assets::Pallet::::decimals(id.clone()); env.write(&decimals.encode(), false, None)?; } AssetsFunc::TransferOwnership => { diff --git a/chain-extensions/xvm/src/lib.rs b/chain-extensions/xvm/src/lib.rs index 27952d220f..94a0eacd4c 100644 --- a/chain-extensions/xvm/src/lib.rs +++ b/chain-extensions/xvm/src/lib.rs @@ -20,7 +20,10 @@ use frame_support::dispatch::Encode; use frame_support::weights::Weight; -use pallet_contracts::chain_extension::{ChainExtension, Environment, Ext, InitState, RetVal}; +use pallet_contracts::{ + chain_extension::{ChainExtension, Environment, Ext, InitState, RetVal}, + Origin, +}; use pallet_xvm::XvmContext; use sp_runtime::DispatchError; use sp_std::marker::PhantomData; @@ -73,7 +76,17 @@ where let charged_weight = env.charge_weight(remaining_weight.set_proof_size(32 * 1024))?; - let caller = env.ext().caller().clone(); + let caller = match env.ext().caller().clone() { + Origin::Signed(address) => address, + Origin::Root => { + log::trace!( + target: "xvm-extension::xvm_call", + "root origin not supported" + ); + + return Ok(RetVal::Converging(XvmExecutionResult::UnknownError as u32)); + } + }; let XvmCallArgs { vm_id, to, input } = env.read_as_unbounded(env.in_len())?; diff --git a/pallets/contracts-migration/src/lib.rs b/pallets/contracts-migration/src/lib.rs index 81825bcdd3..f2e5b7e5e2 100644 --- a/pallets/contracts-migration/src/lib.rs +++ b/pallets/contracts-migration/src/lib.rs @@ -174,7 +174,7 @@ pub mod pallet { initial: old.initial, maximum: old.maximum, code: old.code, - determinism: pallet_contracts::Enforced, + determinism: pallet_contracts::Determinism::Enforced, }) }); diff --git a/pallets/ethereum-checked/src/lib.rs b/pallets/ethereum-checked/src/lib.rs index 4be7799d86..303a063255 100644 --- a/pallets/ethereum-checked/src/lib.rs +++ b/pallets/ethereum-checked/src/lib.rs @@ -189,6 +189,10 @@ impl Pallet { is_transactional: true, }, tx_data.into(), + // TODO: solve this prior to the merge + None, + // TODO: solve this prior to the merge + None, ) // Gas limit validation. The fee payment has been validated as the tx is `checked`. .validate_common() diff --git a/pallets/pallet-xvm/src/evm.rs b/pallets/pallet-xvm/src/evm.rs index fd4cb7faef..e810f3b4b2 100644 --- a/pallets/pallet-xvm/src/evm.rs +++ b/pallets/pallet-xvm/src/evm.rs @@ -72,6 +72,10 @@ where Vec::new(), is_transactional, validate, + // TODO: set this properly before merging the PR + None, + // TODO: set this properly before merging the PR + None, T::config(), ) .map_err(|e| { @@ -90,7 +94,8 @@ where Ok(XvmCallOk { output: info.value, consumed_weight: T::GasWeightMapping::gas_to_weight( - info.used_gas.unique_saturated_into(), + // Temporary, will be updated once XVM is adjusted for the new code + info.used_gas.effective.unique_saturated_into(), false, ) .ref_time(), diff --git a/pallets/pallet-xvm/src/pallet/mod.rs b/pallets/pallet-xvm/src/pallet/mod.rs index b34d4090a8..e22a14a542 100644 --- a/pallets/pallet-xvm/src/pallet/mod.rs +++ b/pallets/pallet-xvm/src/pallet/mod.rs @@ -104,6 +104,8 @@ pub mod pallet { let result = T::SyncVM::xvm_call(context, from, to, input); let consumed_weight = consumed_weight(&result); + // TODO: solve this before merging the uplift PR - XVM should work with 2D weights!!! + let consumed_weight = Weight::from_parts(consumed_weight, 0); log::trace!( target: "xvm::pallet::xvm_call", diff --git a/pallets/pallet-xvm/src/wasm.rs b/pallets/pallet-xvm/src/wasm.rs index ad08f6cf71..f13d43b8f4 100644 --- a/pallets/pallet-xvm/src/wasm.rs +++ b/pallets/pallet-xvm/src/wasm.rs @@ -67,7 +67,8 @@ where gas_limit.into(), None, input, - false, + pallet_contracts::DebugInfo::Skip, + pallet_contracts::CollectEvents::Skip, pallet_contracts::Determinism::Enforced, ); diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index 56cd9777a9..be31dcdf9a 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -28,7 +28,7 @@ use frame_support::{ construct_runtime, parameter_types, traits::{ AsEnsureOriginWithArg, ConstU128, ConstU32, ConstU64, Currency, EitherOfDiverse, - EqualPrivilegeOnly, FindAuthor, Get, InstanceFilter, Nothing, WithdrawReasons, + EqualPrivilegeOnly, FindAuthor, Get, InstanceFilter, Nothing, OnFinalize, WithdrawReasons, }, weights::{ constants::{RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, @@ -172,9 +172,6 @@ pub fn native_version() -> NativeVersion { /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. -/// This is used to limit the maximal weight of a single extrinsic. -const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); parameter_types! { pub const Version: RuntimeVersion = VERSION; @@ -616,6 +613,7 @@ impl pallet_preimage::Config for Runtime { parameter_types! { pub CouncilMotionDuration: BlockNumber = 3 * MINUTES; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; } type CouncilCollective = pallet_collective::Instance1; @@ -629,6 +627,7 @@ impl pallet_collective::Config for Runtime { type DefaultVote = pallet_collective::PrimeDefaultVote; type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxProposalWeight; } parameter_types! { @@ -646,6 +645,7 @@ impl pallet_collective::Config for Runtime { type DefaultVote = pallet_collective::PrimeDefaultVote; type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxProposalWeight; } parameter_types! { @@ -778,7 +778,7 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); + pub const DefaultDepositLimit: Balance = deposit(1024, 1024 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -1509,7 +1509,7 @@ impl_runtime_apis! { fn pending_block( xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { + ) -> (Option, Option>) { for ext in xts.into_iter() { let _ = Executive::apply_extrinsic(ext); } diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index cb122a3cad..4deee5278f 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -29,7 +29,8 @@ use frame_support::{ parameter_types, traits::{ AsEnsureOriginWithArg, ConstU32, Contains, Currency, EitherOfDiverse, EqualPrivilegeOnly, - FindAuthor, Get, Imbalance, InstanceFilter, Nothing, OnUnbalanced, WithdrawReasons, + FindAuthor, Get, Imbalance, InstanceFilter, Nothing, OnFinalize, OnUnbalanced, + WithdrawReasons, }, weights::{ constants::{ @@ -113,7 +114,7 @@ pub const fn deposit(items: u32, bytes: u32) -> Balance { /// key can grow so it doesn't make sense to have as high deposit per item as in the general approach. /// /// TODO: using this requires storage migration (good to test on Shibuya first!) -pub const fn _contracts_deposit(items: u32, bytes: u32) -> Balance { +pub const fn contracts_deposit(items: u32, bytes: u32) -> Balance { items as Balance * 4 * MILLISBY + (bytes as Balance) * STORAGE_BYTE_FEE } @@ -881,6 +882,7 @@ impl pallet_ethereum::Config for Runtime { parameter_types! { pub CouncilMotionDuration: BlockNumber = 36 * HOURS; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; } type CouncilCollective = pallet_collective::Instance1; @@ -894,6 +896,7 @@ impl pallet_collective::Config for Runtime { type DefaultVote = pallet_collective::PrimeDefaultVote; type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxProposalWeight; } parameter_types! { @@ -911,6 +914,7 @@ impl pallet_collective::Config for Runtime { type DefaultVote = pallet_collective::PrimeDefaultVote; type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxProposalWeight; } parameter_types! { @@ -1771,7 +1775,7 @@ impl_runtime_apis! { fn pending_block( xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { + ) -> (Option, Option>) { for ext in xts.into_iter() { let _ = Executive::apply_extrinsic(ext); } diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 5e210564b7..6e01a9920d 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -29,7 +29,7 @@ use frame_support::{ parameter_types, traits::{ AsEnsureOriginWithArg, ConstU32, Contains, Currency, FindAuthor, Get, InstanceFilter, - Nothing, OnUnbalanced, WithdrawReasons, + Nothing, OnFinalize, OnUnbalanced, WithdrawReasons, }, weights::{ constants::{ @@ -112,7 +112,7 @@ pub const fn deposit(items: u32, bytes: u32) -> Balance { /// key can grow so it doesn't make sense to have as high deposit per item as in the general approach. /// /// TODO: using this requires some storage migration since we're using some old, legacy values ATM -pub const fn _contracts_deposit(items: u32, bytes: u32) -> Balance { +pub const fn contracts_deposit(items: u32, bytes: u32) -> Balance { items as Balance * 4 * MILLISDN * INIT_SUPPLY_FACTOR + (bytes as Balance) * STORAGE_BYTE_FEE } @@ -1527,7 +1527,7 @@ impl_runtime_apis! { fn pending_block( xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { + ) -> (Option, Option>) { for ext in xts.into_iter() { let _ = Executive::apply_extrinsic(ext); } @@ -1597,6 +1597,16 @@ impl_runtime_apis! { ) } + fn upload_code( + origin: AccountId, + code: Vec, + storage_deposit_limit: Option, + determinism: pallet_contracts::Determinism, + ) -> pallet_contracts_primitives::CodeUploadResult + { + Contracts::bare_upload_code(origin, code, storage_deposit_limit, determinism) + } + fn get_storage( address: AccountId, key: Vec, diff --git a/vendor/rpc/debug/src/lib.rs b/vendor/rpc/debug/src/lib.rs index d917c1ef39..8fc4ef6638 100644 --- a/vendor/rpc/debug/src/lib.rs +++ b/vendor/rpc/debug/src/lib.rs @@ -142,7 +142,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, @@ -282,7 +282,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>, @@ -301,11 +301,11 @@ where Err(internal_err("'pending' blocks are not supported")) } RequestBlockId::Hash(eth_hash) => { - match frontier_backend_client::load_hash::( + match futures::executor::block_on(frontier_backend_client::load_hash::( client.as_ref(), frontier_backend.as_ref(), eth_hash, - ) { + )) { Ok(Some(hash)) => Ok(BlockId::Hash(hash)), Ok(_) => Err(internal_err("Block hash not found".to_string())), Err(e) => Err(e), @@ -417,7 +417,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>, @@ -425,26 +425,28 @@ where ) -> RpcResult { let (tracer_input, trace_type) = Self::handle_params(params)?; - let (hash, index) = match frontier_backend_client::load_transactions::( - client.as_ref(), - frontier_backend.as_ref(), - transaction_hash, - false, - ) { - Ok(Some((hash, index))) => (hash, index as usize), - Ok(None) => return Err(internal_err("Transaction hash not found".to_string())), - Err(e) => return Err(e), - }; - - let reference_id = match frontier_backend_client::load_hash::( - client.as_ref(), - frontier_backend.as_ref(), - hash, - ) { - Ok(Some(hash)) => BlockId::Hash(hash), - Ok(_) => return Err(internal_err("Block hash not found".to_string())), - Err(e) => return Err(e), - }; + let (hash, index) = + match futures::executor::block_on(frontier_backend_client::load_transactions::( + client.as_ref(), + frontier_backend.as_ref(), + transaction_hash, + false, + )) { + Ok(Some((hash, index))) => (hash, index as usize), + Ok(None) => return Err(internal_err("Transaction hash not found".to_string())), + Err(e) => return Err(e), + }; + + let reference_id = + match futures::executor::block_on(frontier_backend_client::load_hash::( + client.as_ref(), + frontier_backend.as_ref(), + hash, + )) { + Ok(Some(hash)) => BlockId::Hash(hash), + Ok(_) => return Err(internal_err("Block hash not found".to_string())), + Err(e) => return Err(e), + }; // Get ApiRef. This handle allow to keep changes between txs in an internal buffer. let api = client.runtime_api(); // Get Blockchain backend From e9d5c0cb49c92322b5a020107ab5ae0b1be803a9 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 17 Jul 2023 15:20:50 +0200 Subject: [PATCH 07/31] Checkpoint --- bin/collator/src/cli.rs | 9 +++------ bin/collator/src/local/service.rs | 9 +++------ bin/collator/src/parachain/service.rs | 5 ++--- bin/collator/src/rpc.rs | 15 +++++---------- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/bin/collator/src/cli.rs b/bin/collator/src/cli.rs index 2c4982b861..c292a5e746 100644 --- a/bin/collator/src/cli.rs +++ b/bin/collator/src/cli.rs @@ -130,14 +130,11 @@ impl RelayChainCli { ) -> Self { let extension = crate::parachain::chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); - let base_path = para_config - .base_path - .as_ref() - .map(|x| x.path().join("polkadot")); + let base_path = para_config.base_path.path().join("polkadot"); Self { - base_path, - chain_id, base: polkadot_cli::RunCmd::parse_from(relay_chain_args), + chain_id, + base_path: Some(base_path), } } } diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs index d6027b2cb3..ad7ae3971c 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -79,7 +79,7 @@ pub fn new_partial( >, sc_consensus_grandpa::LinkHalf, Option, - Arc>, + Arc>, ), >, ServiceError, @@ -125,11 +125,8 @@ pub fn new_partial( telemetry.as_ref().map(|x| x.handle()), )?; let frontier_backend = crate::rpc::open_frontier_backend(client.clone(), config)?; - let frontier_block_import = FrontierBlockImport::new( - grandpa_block_import.clone(), - client.clone(), - frontier_backend.clone(), - ); + let frontier_block_import = + FrontierBlockImport::new(grandpa_block_import.clone(), client.clone()); let slot_duration = sc_consensus_aura::slot_duration(&*client)?; let import_queue = sc_consensus_aura::import_queue::( ImportQueueParams { diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index ab566c08e3..f8c0816080 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -155,7 +155,7 @@ pub fn new_partial( >, Option, Option, - Arc>, + Arc>, ), >, sc_service::Error, @@ -237,8 +237,7 @@ where ); let frontier_backend = crate::rpc::open_frontier_backend(client.clone(), config)?; - let frontier_block_import = - FrontierBlockImport::new(client.clone(), client.clone(), frontier_backend.clone()); + let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); let parachain_block_import: ParachainBlockImport<_, _, _> = ParachainBlockImport::new(frontier_block_import, backend.clone()); diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index fc07b2c8d2..62a52194b6 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -66,20 +66,14 @@ pub struct EvmTracingConfig { pub fn open_frontier_backend( client: Arc, config: &sc_service::Configuration, -) -> Result>, String> +) -> Result>, String> where C: sp_blockchain::HeaderBackend, { - let config_dir = config - .base_path - .as_ref() - .map(|base_path| base_path.config_dir(config.chain_spec.id())) - .unwrap_or_else(|| { - sc_service::BasePath::from_project("", "", "astar").config_dir(config.chain_spec.id()) - }); + let config_dir = config.base_path.config_dir(config.chain_spec.id()); let path = config_dir.join("frontier").join("db"); - Ok(Arc::new(fc_db::Backend::::new( + Ok(Arc::new(fc_db::kv::Backend::::new( client, &fc_db::kv::DatabaseSettings { source: fc_db::DatabaseSource::RocksDb { @@ -107,7 +101,7 @@ pub struct FullDeps { /// The Node authority flag pub is_authority: bool, /// Frontier Backend. - pub frontier_backend: Arc>, + pub frontier_backend: Arc + Send + Sync>, /// EthFilterApi pool. pub filter_pool: FilterPool, /// Maximum fee history cache size. @@ -299,6 +293,7 @@ where fee_history_limit, // Allow 10x max allowed weight for non-transactional calls 10, + None, ) .into_rpc(), )?; From 694d11a47e7be2438fbe08caf8165a625cce6840 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 17 Jul 2023 15:37:46 +0200 Subject: [PATCH 08/31] Progress 6 --- bin/collator/src/rpc.rs | 11 +++++++--- pallets/contracts-migration/src/lib.rs | 2 +- pallets/pallet-xcm/src/migration.rs | 2 +- pallets/xc-asset-config/src/migrations.rs | 4 ++-- runtime/astar/src/lib.rs | 26 +---------------------- 5 files changed, 13 insertions(+), 32 deletions(-) diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 62a52194b6..04d86c97a3 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -20,7 +20,8 @@ use fc_rpc::{ Eth, EthApiServer, EthBlockDataCacheTask, EthFilter, EthFilterApiServer, EthPubSub, - EthPubSubApiServer, Net, NetApiServer, OverrideHandle, Web3, Web3ApiServer, + EthPubSubApiServer, Net, NetApiServer, OverrideHandle, TxPool, TxPoolApiServer, Web3, + Web3ApiServer, }; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use jsonrpsee::RpcModule; @@ -45,6 +46,7 @@ use substrate_frame_rpc_system::{System, SystemApiServer}; use moonbeam_rpc_debug::{Debug, DebugServer}; #[cfg(feature = "evm-tracing")] use moonbeam_rpc_trace::{Trace, TraceServer}; +// TODO: get rid of this completely now that it's part of frontier? #[cfg(feature = "evm-tracing")] use moonbeam_rpc_txpool::{TxPool, TxPoolServer}; @@ -142,8 +144,8 @@ where C: sc_client_api::BlockBackend, C::Api: substrate_frame_rpc_system::AccountNonceApi + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi - + fp_rpc::ConvertTransactionRuntimeApi - + fp_rpc::EthereumRuntimeRPCApi + + ConvertTransactionRuntimeApi + + EthereumRuntimeRPCApi + BlockBuilder + moonbeam_rpc_primitives_debug::DebugRuntimeApi + moonbeam_rpc_primitives_txpool::TxPoolRuntimeApi, @@ -300,10 +302,12 @@ where let max_past_logs: u32 = 10_000; let max_stored_filters: usize = 500; + let tx_pool = TxPool::new(client.clone(), graph); io.merge( EthFilter::new( client.clone(), frontier_backend, + tx_pool.clone(), filter_pool, max_stored_filters, max_past_logs, @@ -327,6 +331,7 @@ where ) .into_rpc(), )?; + io.merge(tx_pool.into_rpc())?; Ok(io) } diff --git a/pallets/contracts-migration/src/lib.rs b/pallets/contracts-migration/src/lib.rs index f2e5b7e5e2..2c6d9ef777 100644 --- a/pallets/contracts-migration/src/lib.rs +++ b/pallets/contracts-migration/src/lib.rs @@ -294,7 +294,7 @@ pub mod pallet { } #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: Vec) -> Result<(), &'static str> { + fn post_upgrade(_state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { for value in CodeStorage::::iter_values() { ensure!( value.determinism == Determinism::Enforced, diff --git a/pallets/pallet-xcm/src/migration.rs b/pallets/pallet-xcm/src/migration.rs index ddee5a4399..1a91403a71 100644 --- a/pallets/pallet-xcm/src/migration.rs +++ b/pallets/pallet-xcm/src/migration.rs @@ -33,7 +33,7 @@ pub mod v1 { pub struct MigrateToV1(sp_std::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { ensure!( StorageVersion::get::>() == 0, "must upgrade linearly" diff --git a/pallets/xc-asset-config/src/migrations.rs b/pallets/xc-asset-config/src/migrations.rs index 944a7d1ca5..e1a445564e 100644 --- a/pallets/xc-asset-config/src/migrations.rs +++ b/pallets/xc-asset-config/src/migrations.rs @@ -86,7 +86,7 @@ impl OnRuntimeUpgrade for MigrationXcmV3 { } #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { assert!(Pallet::::on_chain_storage_version() < 2); let id_to_location_entries: Vec<_> = AssetIdToLocation::::iter().collect(); @@ -94,7 +94,7 @@ impl OnRuntimeUpgrade for MigrationXcmV3 { } #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), &'static str> { + fn post_upgrade(state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { assert_eq!(Pallet::::on_chain_storage_version(), 2); use xcm::VersionedMultiLocation; diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index b14b509e6e..df2a2d01f1 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -32,7 +32,7 @@ use frame_support::{ parameter_types, traits::{ AsEnsureOriginWithArg, ConstBool, ConstU32, Contains, Currency, FindAuthor, Get, Imbalance, - InstanceFilter, Nothing, OnUnbalanced, Randomness, WithdrawReasons, + InstanceFilter, Nothing, OnFinalize, OnUnbalanced, Randomness, WithdrawReasons, }, weights::{ constants::{ @@ -1094,30 +1094,6 @@ type EventRecord = frame_system::EventRecord< ::Hash, >; -use frame_support::pallet_prelude::*; -pub struct PalletContractsV9(PhantomData); -impl frame_support::traits::OnRuntimeUpgrade for PalletContractsV9 { - fn on_runtime_upgrade() -> Weight { - let version = >::on_chain_storage_version(); - - if version >= 9 { - return T::DbWeight::get().reads(1); - } - - StorageVersion::new(9).put::>(); - T::DbWeight::get().reads_writes(1, 1) - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: Vec) -> Result<(), &'static str> { - ensure!( - >::on_chain_storage_version() == 9, - "pallet-contracts storage version must be 9 at the end of migration" - ); - Ok(()) - } -} - impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; From 026ccbd19ac9a6b8a2c417cf9b3f6212f3ed1a63 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 17 Jul 2023 16:49:18 +0200 Subject: [PATCH 09/31] Tracing --- bin/collator/src/rpc.rs | 8 ++++---- bin/collator/src/rpc/tracing.rs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 04d86c97a3..d2302bc91e 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -48,7 +48,7 @@ use moonbeam_rpc_debug::{Debug, DebugServer}; use moonbeam_rpc_trace::{Trace, TraceServer}; // TODO: get rid of this completely now that it's part of frontier? #[cfg(feature = "evm-tracing")] -use moonbeam_rpc_txpool::{TxPool, TxPoolServer}; +use moonbeam_rpc_txpool::{TxPool as MoonbeamTxPool, TxPoolServer}; use astar_primitives::*; @@ -144,8 +144,8 @@ where C: sc_client_api::BlockBackend, C::Api: substrate_frame_rpc_system::AccountNonceApi + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi - + ConvertTransactionRuntimeApi - + EthereumRuntimeRPCApi + + fp_rpc::ConvertTransactionRuntimeApi + + fp_rpc::EthereumRuntimeRPCApi + BlockBuilder + moonbeam_rpc_primitives_debug::DebugRuntimeApi + moonbeam_rpc_primitives_txpool::TxPoolRuntimeApi, @@ -161,7 +161,7 @@ where let mut io = create_full_rpc(deps, subscription_task_executor, pubsub_notification_sinks)?; if tracing_config.enable_txpool { - io.merge(TxPool::new(Arc::clone(&client), graph).into_rpc())?; + io.merge(MoonbeamTxPool::new(Arc::clone(&client), graph).into_rpc())?; } if let Some(trace_filter_requester) = tracing_config.tracing_requesters.trace { diff --git a/bin/collator/src/rpc/tracing.rs b/bin/collator/src/rpc/tracing.rs index 93e6a210f2..038d92403f 100644 --- a/bin/collator/src/rpc/tracing.rs +++ b/bin/collator/src/rpc/tracing.rs @@ -46,7 +46,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>, } From 5f92a4355f0661a521c9d989d22aa80ea1514acd Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 17 Jul 2023 18:10:05 +0200 Subject: [PATCH 10/31] Compile & tests should work --- Cargo.lock | 3 + Cargo.toml | 1 + pallets/block-reward/src/mock.rs | 8 ++- pallets/collator-selection/src/mock.rs | 2 +- pallets/custom-signatures/Cargo.toml | 1 + pallets/custom-signatures/src/tests.rs | 5 +- pallets/dapps-staking/src/mock.rs | 6 +- pallets/ethereum-checked/src/mock.rs | 1 + pallets/pallet-xcm/src/mock.rs | 2 +- pallets/xc-asset-config/src/mock.rs | 2 +- precompiles/assets-erc20/src/lib.rs | 1 - precompiles/assets-erc20/src/mock.rs | 5 +- precompiles/dapps-staking/src/lib.rs | 1 - precompiles/dapps-staking/src/mock.rs | 3 +- precompiles/sr25519/src/lib.rs | 1 - precompiles/sr25519/src/mock.rs | 9 ++- precompiles/substrate-ecdsa/Cargo.toml | 1 + precompiles/substrate-ecdsa/src/lib.rs | 1 - precompiles/substrate-ecdsa/src/mock.rs | 9 ++- precompiles/xcm/Cargo.toml | 1 + precompiles/xcm/src/lib.rs | 1 - precompiles/xcm/src/mock.rs | 5 +- precompiles/xcm/src/tests.rs | 2 +- precompiles/xvm/src/lib.rs | 1 - precompiles/xvm/src/mock.rs | 9 ++- tests/xcm-simulator/Cargo.toml | 3 + tests/xcm-simulator/src/mocks/mod.rs | 16 +++-- tests/xcm-simulator/src/mocks/parachain.rs | 7 +-- tests/xcm-simulator/src/mocks/relay_chain.rs | 60 +++++++++++++++---- tests/xcm-simulator/src/tests/experimental.rs | 4 +- 30 files changed, 117 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2836518a2c..8ba9dcb9d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7460,6 +7460,7 @@ dependencies = [ name = "pallet-evm-precompile-substrate-ecdsa" version = "1.2.2" dependencies = [ + "assert_matches", "derive_more", "fp-evm", "frame-support", @@ -7484,6 +7485,7 @@ dependencies = [ name = "pallet-evm-precompile-xcm" version = "0.9.0" dependencies = [ + "assert_matches", "derive_more", "fp-evm", "frame-support", @@ -15863,6 +15865,7 @@ dependencies = [ "pallet-contracts-primitives", "pallet-dapps-staking", "pallet-insecure-randomness-collective-flip", + "pallet-message-queue", "pallet-proxy", "pallet-timestamp", "pallet-utility", diff --git a/Cargo.toml b/Cargo.toml index 20dad7d841..6a081398f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -174,6 +174,7 @@ pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "p pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } # EVM & Ethereum # (wasm) diff --git a/pallets/block-reward/src/mock.rs b/pallets/block-reward/src/mock.rs index 8b5a4d3090..f185e55c56 100644 --- a/pallets/block-reward/src/mock.rs +++ b/pallets/block-reward/src/mock.rs @@ -19,8 +19,12 @@ use crate::{self as pallet_block_reward, NegativeImbalanceOf}; use frame_support::{ - construct_runtime, parameter_types, sp_io::TestExternalities, traits::Currency, traits::Get, - weights::Weight, PalletId, + construct_runtime, parameter_types, + sp_io::TestExternalities, + traits::Currency, + traits::{ConstU32, Get}, + weights::Weight, + PalletId, }; use sp_core::H256; diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index e09e03d742..3ba37fac6f 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -19,7 +19,7 @@ use super::*; use crate as collator_selection; use frame_support::{ ord_parameter_types, parameter_types, - traits::{FindAuthor, GenesisBuild, ValidatorRegistration}, + traits::{ConstU32, FindAuthor, GenesisBuild, ValidatorRegistration}, PalletId, }; use frame_system as system; diff --git a/pallets/custom-signatures/Cargo.toml b/pallets/custom-signatures/Cargo.toml index ff5bef7151..94dc4a7e3a 100644 --- a/pallets/custom-signatures/Cargo.toml +++ b/pallets/custom-signatures/Cargo.toml @@ -31,6 +31,7 @@ default = ["std"] std = [ "serde", "parity-scale-codec/std", + "pallet-balances/std", "scale-info/std", "sp-io/std", "sp-std/std", diff --git a/pallets/custom-signatures/src/tests.rs b/pallets/custom-signatures/src/tests.rs index 0a20119cf1..67ac06eb9b 100644 --- a/pallets/custom-signatures/src/tests.rs +++ b/pallets/custom-signatures/src/tests.rs @@ -16,7 +16,7 @@ use crate as custom_signatures; use assert_matches::assert_matches; use custom_signatures::*; use frame_support::{ - traits::Contains, + traits::{ConstU32, Contains}, {assert_err, assert_ok, parameter_types}, }; use hex_literal::hex; @@ -273,7 +273,8 @@ fn call_fixtures() { let dest = AccountId::from_ss58check("5GVwcV6EzxxYbXBm7H6dtxc9TCgL4oepMXtgqWYEc3VXJoaf").unwrap(); - let call: RuntimeCall = pallet_balances::Call::::transfer { dest, value: 1000 }.into(); + let call: RuntimeCall = + pallet_balances::Call::::transfer_allow_death { dest, value: 1000 }.into(); assert_eq!( call.encode(), hex!["0000c4305fb88b6ccb43d6552dc11d18e7b0ee3185247adcc6e885eb284adf6c563da10f"], diff --git a/pallets/dapps-staking/src/mock.rs b/pallets/dapps-staking/src/mock.rs index 1d3a61911f..bdc6a0e532 100644 --- a/pallets/dapps-staking/src/mock.rs +++ b/pallets/dapps-staking/src/mock.rs @@ -46,7 +46,7 @@ pub(crate) const EXISTENTIAL_DEPOSIT: Balance = 2; pub(crate) const MAX_NUMBER_OF_STAKERS: u32 = 4; /// Value shouldn't be less than 2 for testing purposes, otherwise we cannot test certain corner cases. pub(crate) const MINIMUM_STAKING_AMOUNT: Balance = 10; -pub(crate) const MINIMUM_REMAINING_AMOUNT: Balance = 1; +pub(crate) const MINIMUM_REMAINING_AMOUNT: Balance = EXISTENTIAL_DEPOSIT; pub(crate) const MAX_UNLOCKING_CHUNKS: u32 = 4; pub(crate) const UNBONDING_PERIOD: EraIndex = 3; pub(crate) const MAX_ERA_STAKE_VALUES: u32 = 8; @@ -197,13 +197,13 @@ impl ExternalityBuilder { (3, 10000), (4, 4900), (5, 3800), - (6, 10), + (6, 20), (7, 1000), (8, 2000), (9, 10000), (10, 300), (11, 400), - (20, 10), + (20, 20), (540, EXISTENTIAL_DEPOSIT), (1337, 1_000_000_000_000), ], diff --git a/pallets/ethereum-checked/src/mock.rs b/pallets/ethereum-checked/src/mock.rs index 7d53cad630..13d586e2d2 100644 --- a/pallets/ethereum-checked/src/mock.rs +++ b/pallets/ethereum-checked/src/mock.rs @@ -170,6 +170,7 @@ impl pallet_evm::Config for TestRuntime { type FindAuthor = MockFindAuthor; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; + type GasLimitPovSizeRatio = ConstU64<4>; } parameter_types! { diff --git a/pallets/pallet-xcm/src/mock.rs b/pallets/pallet-xcm/src/mock.rs index 69e979411b..4fb5bfcec1 100644 --- a/pallets/pallet-xcm/src/mock.rs +++ b/pallets/pallet-xcm/src/mock.rs @@ -18,7 +18,7 @@ use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Everything, Nothing}, weights::Weight, }; use frame_system::EnsureRoot; diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index 176c4c57bc..aa00246b1f 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -18,7 +18,7 @@ use crate::{self as pallet_xc_asset_config}; -use frame_support::{construct_runtime, parameter_types, weights::Weight}; +use frame_support::{construct_runtime, parameter_types, traits::ConstU32, weights::Weight}; use sp_core::H256; use sp_io::TestExternalities; diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index eb12bae29e..10d31f2b7f 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -35,7 +35,6 @@ // along with AssetsERC20. If not, see . #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{IsPrecompileResult, PrecompileHandle, PrecompileOutput}; use frame_support::traits::fungibles::approvals::Inspect as ApprovalInspect; diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 11fdff01f1..3d7ec86fca 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -39,7 +39,7 @@ use super::*; use frame_support::{ construct_runtime, parameter_types, - traits::{AsEnsureOriginWithArg, Everything}, + traits::{AsEnsureOriginWithArg, ConstU64, Everything}, weights::Weight, }; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; @@ -205,7 +205,7 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 0; + pub const ExistentialDeposit: u128 = 1; } impl pallet_balances::Config for Runtime { @@ -250,6 +250,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } // These parameters dont matter much as this will only be called by root with the forced arguments diff --git a/precompiles/dapps-staking/src/lib.rs b/precompiles/dapps-staking/src/lib.rs index 55cc8e39c7..3accc05a0c 100644 --- a/precompiles/dapps-staking/src/lib.rs +++ b/precompiles/dapps-staking/src/lib.rs @@ -19,7 +19,6 @@ //! Astar dApps staking interface. #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{PrecompileHandle, PrecompileOutput}; use parity_scale_codec::{Decode, Encode}; diff --git a/precompiles/dapps-staking/src/mock.rs b/precompiles/dapps-staking/src/mock.rs index f40b1d674d..976f7fd948 100644 --- a/precompiles/dapps-staking/src/mock.rs +++ b/precompiles/dapps-staking/src/mock.rs @@ -21,7 +21,7 @@ use super::*; use fp_evm::IsPrecompileResult; use frame_support::{ construct_runtime, parameter_types, - traits::{Currency, OnFinalize, OnInitialize}, + traits::{ConstU64, Currency, OnFinalize, OnInitialize}, weights::{RuntimeDbWeight, Weight}, PalletId, }; @@ -253,6 +253,7 @@ impl pallet_evm::Config for TestRuntime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } parameter_types! { diff --git a/precompiles/sr25519/src/lib.rs b/precompiles/sr25519/src/lib.rs index 690e6db87c..f7f08a1e38 100644 --- a/precompiles/sr25519/src/lib.rs +++ b/precompiles/sr25519/src/lib.rs @@ -17,7 +17,6 @@ // along with Astar. If not, see . #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{PrecompileHandle, PrecompileOutput}; use pallet_evm::Precompile; diff --git a/precompiles/sr25519/src/mock.rs b/precompiles/sr25519/src/mock.rs index 646fe6f0a5..914889ee31 100644 --- a/precompiles/sr25519/src/mock.rs +++ b/precompiles/sr25519/src/mock.rs @@ -21,7 +21,11 @@ use super::*; use fp_evm::IsPrecompileResult; -use frame_support::{construct_runtime, parameter_types, traits::Everything, weights::Weight}; +use frame_support::{ + construct_runtime, parameter_types, + traits::{ConstU32, ConstU64, Everything}, + weights::Weight, +}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -169,7 +173,7 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 0; + pub const ExistentialDeposit: u128 = 1; } impl pallet_balances::Config for Runtime { @@ -214,6 +218,7 @@ impl pallet_evm::Config for Runtime { type OnCreate = (); type FindAuthor = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } // Configure a mock runtime to test the pallet. diff --git a/precompiles/substrate-ecdsa/Cargo.toml b/precompiles/substrate-ecdsa/Cargo.toml index 6822d59884..df7b1015e0 100644 --- a/precompiles/substrate-ecdsa/Cargo.toml +++ b/precompiles/substrate-ecdsa/Cargo.toml @@ -8,6 +8,7 @@ homepage.workspace = true repository.workspace = true [dependencies] +assert_matches = { workspace = true } log = { workspace = true } num_enum = { workspace = true } precompile-utils = { workspace = true, default-features = false } diff --git a/precompiles/substrate-ecdsa/src/lib.rs b/precompiles/substrate-ecdsa/src/lib.rs index a91309eb6d..855ac7ca41 100644 --- a/precompiles/substrate-ecdsa/src/lib.rs +++ b/precompiles/substrate-ecdsa/src/lib.rs @@ -17,7 +17,6 @@ // along with Astar. If not, see . #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{PrecompileHandle, PrecompileOutput}; use pallet_evm::Precompile; diff --git a/precompiles/substrate-ecdsa/src/mock.rs b/precompiles/substrate-ecdsa/src/mock.rs index f7510c3ba9..295dd2e3bf 100644 --- a/precompiles/substrate-ecdsa/src/mock.rs +++ b/precompiles/substrate-ecdsa/src/mock.rs @@ -21,7 +21,11 @@ use super::*; use fp_evm::IsPrecompileResult; -use frame_support::{construct_runtime, parameter_types, traits::Everything, weights::Weight}; +use frame_support::{ + construct_runtime, parameter_types, + traits::{ConstU32, ConstU64, Everything}, + weights::Weight, +}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -169,7 +173,7 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 0; + pub const ExistentialDeposit: u128 = 1; } impl pallet_balances::Config for Runtime { @@ -214,6 +218,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } // Configure a mock runtime to test the pallet. diff --git a/precompiles/xcm/Cargo.toml b/precompiles/xcm/Cargo.toml index b1ee27397e..8065e4e718 100644 --- a/precompiles/xcm/Cargo.toml +++ b/precompiles/xcm/Cargo.toml @@ -32,6 +32,7 @@ xcm = { workspace = true } xcm-executor = { workspace = true } [dev-dependencies] +assert_matches = { workspace = true } derive_more = { workspace = true } hex-literal = { workspace = true } scale-info = { workspace = true } diff --git a/precompiles/xcm/src/lib.rs b/precompiles/xcm/src/lib.rs index 98bab3ad4f..a8453b36a5 100644 --- a/precompiles/xcm/src/lib.rs +++ b/precompiles/xcm/src/lib.rs @@ -17,7 +17,6 @@ // along with Astar. If not, see . #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{PrecompileHandle, PrecompileOutput}; use frame_support::{ diff --git a/precompiles/xcm/src/mock.rs b/precompiles/xcm/src/mock.rs index b1e761a0fa..85f1ddf094 100644 --- a/precompiles/xcm/src/mock.rs +++ b/precompiles/xcm/src/mock.rs @@ -23,7 +23,7 @@ use super::*; use fp_evm::IsPrecompileResult; use frame_support::{ construct_runtime, parameter_types, - traits::{AsEnsureOriginWithArg, Everything, Nothing}, + traits::{AsEnsureOriginWithArg, ConstU64, Everything, Nothing}, weights::Weight, }; use frame_system::EnsureRoot; @@ -221,7 +221,7 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 0; + pub const ExistentialDeposit: u128 = 1; } impl pallet_balances::Config for Runtime { @@ -319,6 +319,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } parameter_types! { diff --git a/precompiles/xcm/src/tests.rs b/precompiles/xcm/src/tests.rs index 8604dc4417..4bfebd3c26 100644 --- a/precompiles/xcm/src/tests.rs +++ b/precompiles/xcm/src/tests.rs @@ -16,7 +16,7 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . -use core::assert_matches::assert_matches; +use assert_matches::assert_matches; use crate::mock::*; use crate::*; diff --git a/precompiles/xvm/src/lib.rs b/precompiles/xvm/src/lib.rs index 1b4ec02eeb..7f7fb55329 100644 --- a/precompiles/xvm/src/lib.rs +++ b/precompiles/xvm/src/lib.rs @@ -17,7 +17,6 @@ // along with Astar. If not, see . #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] use fp_evm::{PrecompileHandle, PrecompileOutput}; use frame_support::dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}; diff --git a/precompiles/xvm/src/mock.rs b/precompiles/xvm/src/mock.rs index 56018467ff..793c8f80e5 100644 --- a/precompiles/xvm/src/mock.rs +++ b/precompiles/xvm/src/mock.rs @@ -21,7 +21,11 @@ use super::*; use fp_evm::IsPrecompileResult; -use frame_support::{construct_runtime, parameter_types, traits::Everything, weights::Weight}; +use frame_support::{ + construct_runtime, parameter_types, + traits::{ConstU32, ConstU64, Everything}, + weights::Weight, +}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -180,7 +184,7 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 0; + pub const ExistentialDeposit: u128 = 1; } impl pallet_balances::Config for Runtime { @@ -225,6 +229,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } impl pallet_xvm::Config for Runtime { diff --git a/tests/xcm-simulator/Cargo.toml b/tests/xcm-simulator/Cargo.toml index 2d608d3d2b..3acbe7fbf2 100644 --- a/tests/xcm-simulator/Cargo.toml +++ b/tests/xcm-simulator/Cargo.toml @@ -40,6 +40,7 @@ polkadot-primitives = { workspace = true } # XCM cumulus-pallet-xcm = { workspace = true } +pallet-message-queue = { workspace = true } pallet-xcm = { workspace = true } polkadot-core-primitives = { workspace = true } polkadot-parachain = { workspace = true } @@ -77,6 +78,7 @@ std = [ "pallet-dapps-staking/std", "pallet-proxy/std", "pallet-utility/std", + "pallet-message-queue/std", "orml-xtokens/std", "orml-traits/std", "orml-xcm-support/std", @@ -94,4 +96,5 @@ runtime-benchmarks = [ "polkadot-parachain/runtime-benchmarks", "orml-xtokens/runtime-benchmarks", "astar-primitives/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", ] diff --git a/tests/xcm-simulator/src/mocks/mod.rs b/tests/xcm-simulator/src/mocks/mod.rs index ca83e9aacd..211789d55d 100644 --- a/tests/xcm-simulator/src/mocks/mod.rs +++ b/tests/xcm-simulator/src/mocks/mod.rs @@ -22,14 +22,13 @@ pub(crate) mod relay_chain; use frame_support::traits::{Currency, IsType, OnFinalize, OnInitialize}; use frame_support::weights::Weight; -use pallet_contracts::Determinism; use pallet_contracts_primitives::{Code, ReturnFlags}; use parity_scale_codec::Decode; use sp_runtime::traits::{Bounded, Hash, StaticLookup}; use sp_runtime::DispatchResult; use xcm::latest::prelude::*; use xcm_executor::traits::Convert; -use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; +use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; type ContractBalanceOf = <::Currency as Currency< ::AccountId, @@ -62,7 +61,11 @@ decl_test_parachain! { decl_test_relay_chain! { pub struct Relay { Runtime = relay_chain::Runtime, + RuntimeCall = relay_chain::RuntimeCall, + RuntimeEvent = relay_chain::RuntimeEvent, XcmConfig = relay_chain::XcmConfig, + MessageQueue = relay_chain::MessageQueue, + System = relay_chain::System, new_ext = relay_ext(), } } @@ -292,9 +295,9 @@ pub fn deploy_contract( storage_deposit_limit, Code::Upload(code), data, - // vec![], vec![], - true, + pallet_contracts::DebugInfo::Skip, + pallet_contracts::CollectEvents::Skip, ); // make sure it does not revert @@ -325,8 +328,9 @@ pub fn call_contract_method( gas_limit, storage_deposit_limit, data, - debug, - Determinism::Enforced, + pallet_contracts::DebugInfo::Skip, + pallet_contracts::CollectEvents::Skip, + pallet_contracts::Determinism::Enforced, ); if debug { diff --git a/tests/xcm-simulator/src/mocks/parachain.rs b/tests/xcm-simulator/src/mocks/parachain.rs index 8c5e129b77..8be1841ff6 100644 --- a/tests/xcm-simulator/src/mocks/parachain.rs +++ b/tests/xcm-simulator/src/mocks/parachain.rs @@ -210,9 +210,7 @@ parameter_types! { parameter_types! { pub const DepositPerItem: Balance = MILLISDN / 1_000_000; pub const DepositPerByte: Balance = MILLISDN / 1_000_000; - // The lazy deletion runs inside on_initialize. - pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * - RuntimeBlockWeights::get().max_block; + pub const DefaultDepositLimit: Balance = 1000 * MILLISDN; pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -249,13 +247,12 @@ impl pallet_contracts::Config for Runtime { type CallFilter = CallFilter; type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; + type DefaultDepositLimit = DefaultDepositLimit; type CallStack = [pallet_contracts::Frame; 5]; /// We are not using the pallet_transaction_payment for simplicity type WeightPrice = Self; type WeightInfo = pallet_contracts::weights::SubstrateWeight; type ChainExtension = (); - type DeletionQueueDepth = ConstU32<128>; - type DeletionWeightLimit = DeletionWeightLimit; type Schedule = Schedule; type AddressGenerator = pallet_contracts::DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; diff --git a/tests/xcm-simulator/src/mocks/relay_chain.rs b/tests/xcm-simulator/src/mocks/relay_chain.rs index ea66309327..bfd62548f8 100644 --- a/tests/xcm-simulator/src/mocks/relay_chain.rs +++ b/tests/xcm-simulator/src/mocks/relay_chain.rs @@ -18,15 +18,19 @@ use frame_support::{ construct_runtime, parameter_types, - traits::{ConstU32, Everything, Nothing}, - weights::Weight, + traits::{ConstU32, Everything, Nothing, ProcessMessage, ProcessMessageError}, + weights::{Weight, WeightMeter}, }; use frame_system::EnsureRoot; use sp_core::H256; use sp_runtime::{testing::Header, traits::IdentityLookup, AccountId32}; use polkadot_parachain::primitives::Id as ParaId; -use polkadot_runtime_parachains::{configuration, origin, shared, ump}; +use polkadot_runtime_parachains::{ + configuration, + inclusion::{AggregateMessageOrigin, UmpQueueId}, + origin, shared, +}; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowUnpaidExecutionFrom, ChildParachainAsNative, @@ -197,19 +201,51 @@ parameter_types! { pub const FirstMessageFactorPercent: u64 = 100; } -impl ump::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type UmpSink = ump::XcmSink, Runtime>; - type FirstMessageFactorPercent = FirstMessageFactorPercent; - type ExecuteOverweightOrigin = EnsureRoot; - type WeightInfo = ump::TestWeightInfo; -} - impl origin::Config for Runtime {} type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; +parameter_types! { + /// Amount of weight that can be spent per block to service messages. + pub MessageQueueServiceWeight: Weight = Weight::from_parts(1_000_000_000, 1_000_000); + pub const MessageQueueHeapSize: u32 = 65_536; + pub const MessageQueueMaxStale: u32 = 16; +} + +/// Message processor to handle any messages that were enqueued into the `MessageQueue` pallet. +pub struct MessageProcessor; +impl ProcessMessage for MessageProcessor { + type Origin = AggregateMessageOrigin; + + fn process_message( + message: &[u8], + origin: Self::Origin, + meter: &mut WeightMeter, + id: &mut [u8; 32], + ) -> Result { + let para = match origin { + AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para, + }; + xcm_builder::ProcessXcmMessage::< + Junction, + xcm_executor::XcmExecutor, + RuntimeCall, + >::process_message(message, Junction::Parachain(para.into()), meter, id) + } +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + type MessageProcessor = MessageProcessor; + type QueueChangeHandler = (); + type WeightInfo = (); +} + construct_runtime!( pub struct Runtime where Block = Block, @@ -219,7 +255,7 @@ construct_runtime!( System: frame_system::{Pallet, Call, Storage, Config, Event}, Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, ParasOrigin: origin::{Pallet, Origin}, - ParasUmp: ump::{Pallet, Call, Storage, Event}, XcmPallet: pallet_xcm::{Pallet, Call, Storage, Event, Origin}, + MessageQueue: pallet_message_queue::{Pallet, Event}, } ); diff --git a/tests/xcm-simulator/src/tests/experimental.rs b/tests/xcm-simulator/src/tests/experimental.rs index 72b98f23ce..6665d17efc 100644 --- a/tests/xcm-simulator/src/tests/experimental.rs +++ b/tests/xcm-simulator/src/tests/experimental.rs @@ -290,7 +290,6 @@ fn test_async_xcm_contract_call_no_ce() { sibling_para_account_account_id(1, contract_id.clone()) ), INITIAL_BALANCE, - 100_000 )); contract_id @@ -302,7 +301,6 @@ fn test_async_xcm_contract_call_no_ce() { parachain::RuntimeOrigin::root(), sibling_para_account_account_id(1, contract_id.clone()), INITIAL_BALANCE, - 100_000 )); }); @@ -323,7 +321,7 @@ fn test_async_xcm_contract_call_no_ce() { [1u8, 2u8, 3u8].to_vec().encode(), WeightsAndFees { foreign_base_fee: (Here, 100_000_000_000_000_000_000_u128).into(), - foreign_transact_weight: Weight::from_parts(7_800_000, 0), + foreign_transact_weight: GAS_LIMIT, foreign_transcat_pallet_xcm: Weight::from_parts( 2_000_000_000_000, 3 * 1024 * 1024 From 446db867937a4afe97f2201a3fbd205f0c8231aa Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 18 Jul 2023 08:36:45 +0200 Subject: [PATCH 11/31] Integration tests --- tests/integration/src/setup.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/integration/src/setup.rs b/tests/integration/src/setup.rs index 4ec548885d..a263abe4a6 100644 --- a/tests/integration/src/setup.rs +++ b/tests/integration/src/setup.rs @@ -137,7 +137,6 @@ pub fn run_to_block(n: u32) { BaseFee::on_initialize(block_number); #[cfg(any(feature = "shibuya", feature = "shiden", features = "astar"))] RandomnessCollectiveFlip::on_initialize(block_number); - StateTrieMigration::on_initialize(block_number); XcmpQueue::on_idle(block_number, Weight::MAX); DmpQueue::on_idle(block_number, Weight::MAX); From c31604aafeaec195016a540d16ba658f6945216d Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 18 Jul 2023 13:35:10 +0200 Subject: [PATCH 12/31] contract migrations --- runtime/astar/src/lib.rs | 6 ++++-- runtime/shibuya/src/lib.rs | 6 ++++-- runtime/shiden/src/lib.rs | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index df2a2d01f1..7145096e34 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -1086,8 +1086,10 @@ parameter_types! { /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = - (frame_support::migrations::RemovePallet,); +pub type Migrations = ( + frame_support::migrations::RemovePallet, + pallet_contracts::Migration, +); type EventRecord = frame_system::EventRecord< ::RuntimeEvent, diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index 4deee5278f..d7466ec8d8 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -1324,8 +1324,10 @@ parameter_types! { /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = - (frame_support::migrations::RemovePallet,); +pub type Migrations = ( + frame_support::migrations::RemovePallet, + pallet_contracts::Migration, +); type EventRecord = frame_system::EventRecord< ::RuntimeEvent, diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 6e01a9920d..43de5a137f 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -1076,8 +1076,10 @@ parameter_types! { /// All migrations that will run on the next runtime upgrade. /// /// Once done, migrations should be removed from the tuple. -pub type Migrations = - (frame_support::migrations::RemovePallet,); +pub type Migrations = ( + frame_support::migrations::RemovePallet, + pallet_contracts::Migration, +); type EventRecord = frame_system::EventRecord< ::RuntimeEvent, From bd96f04bc6b688632be2a6bf0f2b7a8b516d40d3 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 18 Jul 2023 15:41:58 +0200 Subject: [PATCH 13/31] precompiles --- Cargo.lock | 37 +++---------- Cargo.toml | 3 +- precompiles/assets-erc20/src/lib.rs | 48 ++++++++++++++--- precompiles/dapps-staking/Cargo.toml | 1 + precompiles/dapps-staking/src/lib.rs | 47 ++++++++++++---- precompiles/dapps-staking/src/tests.rs | 2 +- precompiles/sr25519/src/lib.rs | 2 + precompiles/utils/src/lib.rs | 74 +++++++++++++++++++++----- 8 files changed, 151 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ba9dcb9d9..def39ade51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2874,27 +2874,6 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -[[package]] -name = "evm" -version = "0.39.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49a4e11987c51220aa89dbe1a5cc877f5079fa6864c0a5b4533331db44e9365" -dependencies = [ - "auto_impl", - "environmental", - "ethereum", - "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log", - "parity-scale-codec", - "primitive-types", - "rlp", - "scale-info", - "serde", - "sha3", -] - [[package]] name = "evm" version = "0.39.1" @@ -2993,7 +2972,7 @@ dependencies = [ "environmental", "ethereum", "ethereum-types", - "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", + "evm", "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec", @@ -3175,7 +3154,7 @@ source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#4 dependencies = [ "ethereum", "ethereum-types", - "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm", "fc-db", "fc-mapping-sync", "fc-rpc-core", @@ -3433,7 +3412,7 @@ name = "fp-evm" version = "3.0.0-dev" source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ - "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm", "frame-support", "parity-scale-codec", "scale-info", @@ -5928,7 +5907,7 @@ name = "moonbeam-evm-tracer" version = "0.1.0" dependencies = [ "ethereum-types", - "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", + "evm", "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", "evm-tracing-events", @@ -7240,7 +7219,7 @@ source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#4 dependencies = [ "ethereum", "ethereum-types", - "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm", "fp-consensus", "fp-ethereum", "fp-evm", @@ -7286,7 +7265,7 @@ version = "6.0.0-dev" source = "git+https://github.com/AstarNetwork/frontier?branch=polkadot-v0.9.43#46cd85967849be241dac2bb72f561b942a463729" dependencies = [ "environmental", - "evm 0.39.1 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm", "fp-account", "fp-evm", "frame-benchmarking", @@ -9857,7 +9836,7 @@ name = "precompile-utils" version = "0.4.3" dependencies = [ "assert_matches", - "evm 0.39.1 (registry+https://github.com/rust-lang/crates.io-index)", + "evm", "fp-evm", "frame-support", "frame-system", @@ -14453,7 +14432,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand 0.7.3", "static_assertions", ] diff --git a/Cargo.toml b/Cargo.toml index 6a081398f6..dc830730a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -178,7 +178,8 @@ pallet-message-queue = { git = "https://github.com/paritytech/substrate", branch # EVM & Ethereum # (wasm) -evm = { version = "0.39.0", default-features = false } +# To make it compatible with frontier +evm = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } ethereum-types = { version = "0.14", default-features = false } ethereum = { version = "0.14.0", default-features = false } evm-gasometer = { version = "0.39.0", default-features = false } diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index 10d31f2b7f..3c7eb308ad 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -52,7 +52,7 @@ use precompile_utils::{ }; use sp_runtime::traits::{Bounded, Zero}; -use sp_core::{H160, U256}; +use sp_core::{Get, MaxEncodedLen, H160, U256}; use sp_std::{ convert::{TryFrom, TryInto}, marker::PhantomData, @@ -222,7 +222,10 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Asset: + // Blake2_128(16) + AssetId(16) + AssetDetails((4 * AccountId(32)) + (3 * Balance(16)) + 15) + handle.record_db_read::(223)?; // Fetch info. let amount: U256 = @@ -235,7 +238,12 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Account: + // Blake2_128(16) + AssetId(16) + Blake2_128(16) + AccountId(32) + AssetAccount(19 + Extra) + handle.record_db_read::( + 99 + >::Extra::max_encoded_len(), + )?; let mut input = handle.read_input()?; input.expect_arguments(1)?; @@ -255,7 +263,10 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Approvals: + // Blake2_128(16) + AssetId(16) + (2 * Blake2_128(16) + AccountId(20)) + Approval(32) + handle.record_db_read::(148)?; let mut input = handle.read_input()?; input.expect_arguments(2)?; @@ -440,7 +451,13 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Metadata: + // Blake2_128(16) + AssetId(16) + AssetMetadata[deposit(16) + name(StringLimit) + // + symbol(StringLimit) + decimals(1) + is_frozen(1)] + handle.record_db_read::( + 50 + (2 * >::StringLimit::get()) as usize, + )?; Ok(succeed( EvmDataWriter::new() @@ -457,7 +474,13 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Metadata: + // Blake2_128(16) + AssetId(16) + AssetMetadata[deposit(16) + name(StringLimit) + // + symbol(StringLimit) + decimals(1) + is_frozen(1)] + handle.record_db_read::( + 50 + (2 * >::StringLimit::get()) as usize, + )?; // Build output. Ok(succeed( @@ -475,7 +498,13 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Metadata: + // Blake2_128(16) + AssetId(16) + AssetMetadata[deposit(16) + name(StringLimit) + // + symbol(StringLimit) + decimals(1) + is_frozen(1)] + handle.record_db_read::( + 50 + (2 * >::StringLimit::get()) as usize, + )?; // Build output. Ok(succeed( @@ -491,7 +520,10 @@ where asset_id: AssetIdOf, handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: AssetDetails: + // Blake2_128(16) + AssetDetails((4 * AccountId(32)) + (3 * Balance(16)) + 15) + handle.record_db_read::(207)?; let min_balance: U256 = pallet_assets::Pallet::::minimum_balance(asset_id).into(); diff --git a/precompiles/dapps-staking/Cargo.toml b/precompiles/dapps-staking/Cargo.toml index dfd46ac32a..232780acf6 100644 --- a/precompiles/dapps-staking/Cargo.toml +++ b/precompiles/dapps-staking/Cargo.toml @@ -52,4 +52,5 @@ std = [ "pallet-dapps-staking/std", "pallet-evm/std", "precompile-utils/std", + "pallet-balances/std", ] diff --git a/precompiles/dapps-staking/src/lib.rs b/precompiles/dapps-staking/src/lib.rs index 3accc05a0c..d22eac86b5 100644 --- a/precompiles/dapps-staking/src/lib.rs +++ b/precompiles/dapps-staking/src/lib.rs @@ -21,7 +21,7 @@ #![cfg_attr(not(feature = "std"), no_std)] use fp_evm::{PrecompileHandle, PrecompileOutput}; -use parity_scale_codec::{Decode, Encode}; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}, @@ -70,7 +70,10 @@ where { /// Fetch current era from CurrentEra storage map fn read_current_era(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: CurrentEra: + // Twox64(8) + EraIndex(4) + handle.record_db_read::(16)?; let current_era = pallet_dapps_staking::CurrentEra::::get(); @@ -78,9 +81,8 @@ where } /// Fetch unbonding period - fn read_unbonding_period(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - + fn read_unbonding_period(_: &impl PrecompileHandle) -> EvmResult { + // constant, no DB read let unbonding_period = R::UnbondingPeriod::get(); Ok(succeed( @@ -90,7 +92,10 @@ where /// Fetch reward from EraRewardsAndStakes storage map fn read_era_reward(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: GeneralEraInfo: + // Twox64Concat(8) + EraIndex(4) + EraInfo::max_encoded_len + handle.record_db_read::(12 + pallet_dapps_staking::EraInfo::max_encoded_len())?; let mut input = handle.read_input()?; input.expect_arguments(1)?; @@ -109,7 +114,10 @@ where /// Fetch total staked amount from EraRewardsAndStakes storage map fn read_era_staked(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: GeneralEraInfo: + // Twox64Concat(8) + EraIndex(4) + EraInfo::max_encoded_len + handle.record_db_read::(12 + pallet_dapps_staking::EraInfo::max_encoded_len())?; // parse input parameters for pallet-dapps-staking call let mut input = handle.read_input()?; @@ -127,7 +135,10 @@ where /// Fetch Ledger storage map for an account fn read_staked_amount(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: Ledger: + // Blake2_128Concat(16 + 32) + Ledger::max_encoded_len + handle.record_db_read::(48 + pallet_dapps_staking::AccountLedger::max_encoded_len())?; let mut input = handle.read_input()?; input.expect_arguments(1)?; @@ -147,7 +158,13 @@ where fn read_staked_amount_on_contract( handle: &mut impl PrecompileHandle, ) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: GeneralStakerInfo: + // Blake2_128Concat(16 + 32) + Blake2_128Concat(16 + SmartContract::max_encoded_len) + StakerInfo::max_encoded_len + handle.record_db_read::( + 64 + ::SmartContract::max_encoded_len() + + pallet_dapps_staking::StakerInfo::max_encoded_len(), + )?; let mut input = handle.read_input()?; input.expect_arguments(2)?; @@ -170,7 +187,17 @@ where /// Read the amount staked on contract in the given era fn read_contract_stake(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(2 * RuntimeHelper::::db_read_gas_cost())?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: CurrentEra: + // Twox64(8) + EraIndex(4) + handle.record_db_read::(16)?; + // TODO: benchmark this function so we can measure ref time & PoV correctly + // Storage item: ContractEraStake: + // Blake2_128Concat(16 + SmartContract::max_encoded_len) + Twox64Concat(8 + 4) + ContractStakeInfo::max_encoded_len + handle.record_db_read::( + 28 + ::SmartContract::max_encoded_len() + + pallet_dapps_staking::ContractStakeInfo::max_encoded_len(), + )?; let mut input = handle.read_input()?; input.expect_arguments(1)?; diff --git a/precompiles/dapps-staking/src/tests.rs b/precompiles/dapps-staking/src/tests.rs index f4f409d2d1..1285673b40 100644 --- a/precompiles/dapps-staking/src/tests.rs +++ b/precompiles/dapps-staking/src/tests.rs @@ -79,7 +79,7 @@ fn read_unbonding_period_is_ok() { precompile_address(), EvmDataWriter::new_with_selector(Action::ReadUnbondingPeriod).build(), ) - .expect_cost(READ_WEIGHT) + .expect_cost(0) .expect_no_logs() .execute_returns(EvmDataWriter::new().write(UNBONDING_PERIOD).build()); }); diff --git a/precompiles/sr25519/src/lib.rs b/precompiles/sr25519/src/lib.rs index f7f08a1e38..1687fd3067 100644 --- a/precompiles/sr25519/src/lib.rs +++ b/precompiles/sr25519/src/lib.rs @@ -59,6 +59,8 @@ impl Precompile for Sr25519Precompile { impl Sr25519Precompile { fn verify(handle: &mut impl PrecompileHandle) -> EvmResult { + handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; + let mut input = handle.read_input()?; input.expect_arguments(3)?; diff --git a/precompiles/utils/src/lib.rs b/precompiles/utils/src/lib.rs index f36412a21b..26ffed4a85 100644 --- a/precompiles/utils/src/lib.rs +++ b/precompiles/utils/src/lib.rs @@ -31,6 +31,7 @@ use fp_evm::{ }; use frame_support::{ dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}, + pallet_prelude::Weight, traits::Get, }; use pallet_evm::{GasWeightMapping, Log}; @@ -170,6 +171,41 @@ where Runtime: pallet_evm::Config, Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, { + #[inline(always)] + pub fn record_weight_v2_cost( + handle: &mut impl PrecompileHandle, + weight: Weight, + ) -> Result<(), ExitError> { + // Make sure there is enough gas. + let remaining_gas = handle.remaining_gas(); + let required_gas = Runtime::GasWeightMapping::weight_to_gas(weight); + if required_gas > remaining_gas { + return Err(ExitError::OutOfGas); + } + + // Make sure there is enough remaining weight + handle.record_external_cost(None, Some(weight.proof_size())) + } + + #[inline(always)] + pub fn refund_weight_v2_cost( + handle: &mut impl PrecompileHandle, + weight: Weight, + maybe_actual_weight: Option, + ) -> Result { + // Refund weights and compute used weight them record used gas + let used_weight = if let Some(actual_weight) = maybe_actual_weight { + let refund_weight = weight - actual_weight; + handle.refund_external_cost(None, Some(refund_weight.proof_size())); + actual_weight + } else { + weight + }; + let used_gas = Runtime::GasWeightMapping::weight_to_gas(used_weight); + handle.record_cost(used_gas)?; + Ok(used_gas) + } + /// Try to dispatch a Substrate call. /// Return an error if there are not enough gas, or if the call fails. /// If successful returns the used gas using the Runtime GasWeightMapping. @@ -185,29 +221,22 @@ where let dispatch_info = call.get_dispatch_info(); // Make sure there is enough gas. - let remaining_gas = handle.remaining_gas(); - let required_gas = Runtime::GasWeightMapping::weight_to_gas(dispatch_info.weight); - if required_gas > remaining_gas { - return Err(PrecompileFailure::Error { - exit_status: ExitError::OutOfGas, - }); - } + Self::record_weight_v2_cost(handle, dispatch_info.weight)?; // Dispatch call. // It may be possible to not record gas cost if the call returns Pays::No. // However while Substrate handle checking weight while not making the sender pay for it, // the EVM doesn't. It seems this safer to always record the costs to avoid unmetered // computations. - let result = call + let post_dispatch_info = call .dispatch(origin) .map_err(|e| revert(alloc::format!("Dispatched call failed with error: {:?}", e)))?; - let used_weight = result.actual_weight; - - let used_gas = - Runtime::GasWeightMapping::weight_to_gas(used_weight.unwrap_or(dispatch_info.weight)); - - handle.record_cost(used_gas)?; + Self::refund_weight_v2_cost( + handle, + dispatch_info.weight, + post_dispatch_info.actual_weight, + )?; Ok(()) } @@ -268,6 +297,14 @@ pub trait PrecompileHandleExt: PrecompileHandle { #[must_use] /// Returns a reader of the input, skipping the selector. fn read_input(&self) -> EvmResult; + + /// Record cost of one DB read manually. + /// The max encoded lenght of the data that will be read should be provided. + #[must_use] + fn record_db_read( + &mut self, + data_max_encoded_len: usize, + ) -> Result<(), evm::ExitError>; } pub fn log_costs(topics: usize, data_len: usize) -> EvmResult { @@ -342,6 +379,15 @@ impl PrecompileHandleExt for T { fn read_input(&self) -> EvmResult { EvmDataReader::new_skip_selector(self.input()) } + + #[must_use] + fn record_db_read( + &mut self, + data_max_encoded_len: usize, + ) -> Result<(), evm::ExitError> { + self.record_cost(RuntimeHelper::::db_read_gas_cost())?; + self.record_external_cost(None, Some(data_max_encoded_len as u64)) + } } #[must_use] From 9cc1eac0f643937a9a8d13b7e0a8ee053f627aab Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 18 Jul 2023 16:13:34 +0200 Subject: [PATCH 14/31] Fixed precompiles --- Cargo.lock | 57 ++++++---------------------------- Cargo.toml | 5 +-- precompiles/sr25519/src/lib.rs | 2 -- precompiles/utils/src/lib.rs | 4 +-- 4 files changed, 15 insertions(+), 53 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index def39ade51..c7d56d16b5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2882,9 +2882,9 @@ dependencies = [ "auto_impl", "environmental", "ethereum", - "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", - "evm-gasometer 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", - "evm-runtime 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-core", + "evm-gasometer", + "evm-runtime", "log", "parity-scale-codec", "primitive-types", @@ -2894,18 +2894,6 @@ dependencies = [ "sha3", ] -[[package]] -name = "evm-core" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1f13264b044cb66f0602180f0bc781c29accb41ff560669a3ec15858d5b606" -dependencies = [ - "parity-scale-codec", - "primitive-types", - "scale-info", - "serde", -] - [[package]] name = "evm-core" version = "0.39.0" @@ -2917,42 +2905,17 @@ dependencies = [ "serde", ] -[[package]] -name = "evm-gasometer" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d43eadc395bd1a52990787ca1495c26b0248165444912be075c28909a853b8c" -dependencies = [ - "environmental", - "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "primitive-types", -] - [[package]] name = "evm-gasometer" version = "0.39.0" source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ "environmental", - "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", - "evm-runtime 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-core", + "evm-runtime", "primitive-types", ] -[[package]] -name = "evm-runtime" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aa5b32f59ec582a5651978004e5c784920291263b7dcb6de418047438e37f4f" -dependencies = [ - "auto_impl", - "environmental", - "evm-core 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "primitive-types", - "sha3", -] - [[package]] name = "evm-runtime" version = "0.39.0" @@ -2960,7 +2923,7 @@ source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa dependencies = [ "auto_impl", "environmental", - "evm-core 0.39.0 (git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65)", + "evm-core", "primitive-types", "sha3", ] @@ -2973,8 +2936,8 @@ dependencies = [ "ethereum", "ethereum-types", "evm", - "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-gasometer", + "evm-runtime", "parity-scale-codec", "sp-runtime-interface", ] @@ -5908,8 +5871,8 @@ version = "0.1.0" dependencies = [ "ethereum-types", "evm", - "evm-gasometer 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", - "evm-runtime 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)", + "evm-gasometer", + "evm-runtime", "evm-tracing-events", "fp-evm", "moonbeam-primitives-ext", diff --git a/Cargo.toml b/Cargo.toml index dc830730a6..5b889b2989 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -180,10 +180,11 @@ pallet-message-queue = { git = "https://github.com/paritytech/substrate", branch # (wasm) # To make it compatible with frontier evm = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } +evm-gasometer = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } +evm-runtime = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } ethereum-types = { version = "0.14", default-features = false } ethereum = { version = "0.14.0", default-features = false } -evm-gasometer = { version = "0.39.0", default-features = false } -evm-runtime = { version = "0.39.0", default-features = false } + # Frontier # (wasm) diff --git a/precompiles/sr25519/src/lib.rs b/precompiles/sr25519/src/lib.rs index 1687fd3067..f7f08a1e38 100644 --- a/precompiles/sr25519/src/lib.rs +++ b/precompiles/sr25519/src/lib.rs @@ -59,8 +59,6 @@ impl Precompile for Sr25519Precompile { impl Sr25519Precompile { fn verify(handle: &mut impl PrecompileHandle) -> EvmResult { - handle.record_cost(RuntimeHelper::::db_read_gas_cost())?; - let mut input = handle.read_input()?; input.expect_arguments(3)?; diff --git a/precompiles/utils/src/lib.rs b/precompiles/utils/src/lib.rs index 26ffed4a85..c0be658ffb 100644 --- a/precompiles/utils/src/lib.rs +++ b/precompiles/utils/src/lib.rs @@ -304,7 +304,7 @@ pub trait PrecompileHandleExt: PrecompileHandle { fn record_db_read( &mut self, data_max_encoded_len: usize, - ) -> Result<(), evm::ExitError>; + ) -> Result<(), ExitError>; } pub fn log_costs(topics: usize, data_len: usize) -> EvmResult { @@ -384,7 +384,7 @@ impl PrecompileHandleExt for T { fn record_db_read( &mut self, data_max_encoded_len: usize, - ) -> Result<(), evm::ExitError> { + ) -> Result<(), ExitError> { self.record_cost(RuntimeHelper::::db_read_gas_cost())?; self.record_external_cost(None, Some(data_max_encoded_len as u64)) } From aff2e531296a634ba4a64e21dae2edaa92a6bbed Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 18 Jul 2023 16:19:01 +0200 Subject: [PATCH 15/31] toml format --- Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 5b889b2989..c8447d204b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -185,7 +185,6 @@ evm-runtime = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1 ethereum-types = { version = "0.14", default-features = false } ethereum = { version = "0.14.0", default-features = false } - # Frontier # (wasm) fp-rpc = { git = "https://github.com/AstarNetwork/frontier", branch = "polkadot-v0.9.43", default-features = false } From d71bb4ebde46e79b452017773750317023f014cf Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Wed, 19 Jul 2023 10:01:37 +0200 Subject: [PATCH 16/31] XCM origin derivation change --- Cargo.lock | 2 + bin/collator/src/rpc.rs | 1 + primitives/Cargo.toml | 3 + primitives/src/xcm/mod.rs | 115 ++++++++++++++++++++++++++++++ primitives/src/xcm/tests.rs | 46 ++++++++++++ runtime/shibuya/src/xcm_config.rs | 12 ++-- runtime/shiden/src/xcm_config.rs | 14 ++-- 7 files changed, 185 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7d56d16b5..04763b47a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -513,11 +513,13 @@ dependencies = [ "ethereum-types", "fp-evm", "frame-support", + "impl-trait-for-tuples", "log", "pallet-xc-asset-config", "parity-scale-codec", "scale-info", "sp-core", + "sp-io", "sp-runtime", "sp-std", "xcm", diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index d2302bc91e..77acbb87ff 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -331,6 +331,7 @@ where ) .into_rpc(), )?; + // TODO: remove this? This would mean we have two distinct tx pool implementations! What is the difference? io.merge(tx_pool.into_rpc())?; Ok(io) diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 5e7e99fb5c..42551da3a3 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -8,6 +8,7 @@ repository.workspace = true [dependencies] # third-party dependencies +impl-trait-for-tuples = { workspace = true } log = { workspace = true } parity-scale-codec = { workspace = true } scale-info = { workspace = true } @@ -20,6 +21,7 @@ fp-evm = { workspace = true } # Substrate dependencies frame-support = { workspace = true } sp-core = { workspace = true } +sp-io = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } @@ -44,6 +46,7 @@ std = [ "sp-std/std", "sp-runtime/std", "sp-core/std", + "sp-io/std", "xcm/std", "xcm-builder/std", "xcm-executor/std", diff --git a/primitives/src/xcm/mod.rs b/primitives/src/xcm/mod.rs index b87f9320e5..f8ce3e4eb0 100644 --- a/primitives/src/xcm/mod.rs +++ b/primitives/src/xcm/mod.rs @@ -316,3 +316,118 @@ impl> ShouldExecute for AllowPaidExecWithDescendOrigi } } } + +// TODO: remove this after uplift to `polkadot-v0.9.44` or beyond, and replace it with code in XCM builder. + +use parity_scale_codec::{Compact, Encode}; +use sp_io::hashing::blake2_256; +use sp_std::prelude::*; +use xcm_executor::traits::Convert as XcmConvert; + +/// Means of converting a location into a stable and unique descriptive identifier. +pub trait DescribeLocation { + /// Create a description of the given `location` if possible. No two locations should have the + /// same descriptor. + fn describe_location(location: &MultiLocation) -> Option>; +} + +#[impl_trait_for_tuples::impl_for_tuples(30)] +impl DescribeLocation for Tuple { + fn describe_location(l: &MultiLocation) -> Option> { + for_tuples!( #( + match Tuple::describe_location(l) { + Some(result) => return Some(result), + None => {}, + } + )* ); + None + } +} + +pub struct DescribeTerminus; +impl DescribeLocation for DescribeTerminus { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, Here) => Some(Vec::new()), + _ => return None, + } + } +} + +pub struct DescribePalletTerminal; +impl DescribeLocation for DescribePalletTerminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(PalletInstance(i))) => { + Some((b"Pallet", Compact::::from(*i as u32)).encode()) + } + _ => return None, + } + } +} + +pub struct DescribeAccountId32Terminal; +impl DescribeLocation for DescribeAccountId32Terminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(AccountId32 { id, .. })) => Some((b"AccountId32", id).encode()), + _ => return None, + } + } +} + +pub struct DescribeAccountKey20Terminal; +impl DescribeLocation for DescribeAccountKey20Terminal { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, &l.interior) { + (0, X1(AccountKey20 { key, .. })) => Some((b"AccountKey20", key).encode()), + _ => return None, + } + } +} + +pub type DescribeAccountIdTerminal = (DescribeAccountId32Terminal, DescribeAccountKey20Terminal); + +pub type DescribeAllTerminal = ( + DescribeTerminus, + DescribePalletTerminal, + DescribeAccountId32Terminal, + DescribeAccountKey20Terminal, +); + +pub struct DescribeFamily(PhantomData); +impl DescribeLocation for DescribeFamily { + fn describe_location(l: &MultiLocation) -> Option> { + match (l.parents, l.interior.first()) { + (0, Some(Parachain(index))) => { + let tail = l.interior.split_first().0; + let interior = Suffix::describe_location(&tail.into())?; + Some((b"ChildChain", Compact::::from(*index), interior).encode()) + } + (1, Some(Parachain(index))) => { + let tail = l.interior.split_first().0; + let interior = Suffix::describe_location(&tail.into())?; + Some((b"SiblingChain", Compact::::from(*index), interior).encode()) + } + (1, _) => { + let tail = l.interior.into(); + let interior = Suffix::describe_location(&tail)?; + Some((b"ParentChain", interior).encode()) + } + _ => return None, + } + } +} + +pub struct HashedDescription(PhantomData<(AccountId, Describe)>); +impl + Clone, Describe: DescribeLocation> + XcmConvert for HashedDescription +{ + fn convert(value: MultiLocation) -> Result { + if let Some(description) = Describe::describe_location(&value) { + Ok(blake2_256(&description).into()) + } else { + Err(value) + } + } +} diff --git a/primitives/src/xcm/tests.rs b/primitives/src/xcm/tests.rs index 39265245d9..faef681aaf 100644 --- a/primitives/src/xcm/tests.rs +++ b/primitives/src/xcm/tests.rs @@ -560,3 +560,49 @@ fn allow_paid_exec_with_descend_origin_too_small_weight_fails() { ); assert_eq!(res, Err(ProcessMessageError::Unsupported)); } + +// TODO: can be deleted after uplift to `polkadot-v0.9.44` or beyond. +#[test] +fn hashed_description_sanity_check() { + let acc_key_20_mul = MultiLocation { + parents: 1, + interior: X2( + Parachain(1), + AccountKey20 { + network: None, + key: [7u8; 20], + }, + ), + }; + // Ensure derived value is same as it would be using `polkadot-v0.9.44` code. + let derived_account = + HashedDescription::<[u8; 32], DescribeFamily>::convert(acc_key_20_mul); + assert_eq!( + derived_account, + Ok([ + 61_u8, 117, 247, 231, 100, 219, 128, 176, 180, 200, 187, 102, 93, 107, 187, 145, 25, + 146, 50, 248, 244, 153, 83, 95, 207, 165, 90, 10, 220, 39, 23, 49 + ]) + ); + + let acc_id_32_mul = MultiLocation { + parents: 1, + interior: X2( + Parachain(50), + AccountId32 { + network: None, + id: [3; 32].into(), + }, + ), + }; + // Ensure derived value is same as it would be using `polkadot-v0.9.44` code. + let derived_account = + HashedDescription::<[u8; 32], DescribeFamily>::convert(acc_id_32_mul); + assert_eq!( + derived_account, + Ok([ + 123, 171, 79, 159, 78, 47, 62, 233, 108, 149, 131, 249, 23, 192, 178, 52, 235, 133, + 147, 145, 152, 89, 129, 92, 63, 79, 211, 235, 213, 152, 201, 205 + ]) + ); +} diff --git a/runtime/shibuya/src/xcm_config.rs b/runtime/shibuya/src/xcm_config.rs index 2feca95922..354bbd4178 100644 --- a/runtime/shibuya/src/xcm_config.rs +++ b/runtime/shibuya/src/xcm_config.rs @@ -34,7 +34,7 @@ use sp_std::marker::PhantomData; // Polkadot imports use xcm::latest::prelude::*; use xcm_builder::{ - Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, @@ -51,7 +51,10 @@ use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::DisabledParachainFee; // Astar imports -use astar_primitives::xcm::{FixedRateOfForeignAsset, ReserveAssetFilter, XcmFungibleFeeHandler}; +use astar_primitives::xcm::{ + DescribeAllTerminal, DescribeFamily, FixedRateOfForeignAsset, HashedDescription, + ReserveAssetFilter, XcmFungibleFeeHandler, +}; parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Rococo); @@ -72,8 +75,9 @@ pub type LocationToAccountId = ( SiblingParachainConvertsVia, // Straight up local `AccountId32` origins just alias directly to `AccountId`. AccountId32Aliases, - // Derives a private `Account32` by hashing `("multiloc", received multilocation)` - Account32Hash, + // Generates private `AccountId`s from `MultiLocation`s, in a stable & safe way. + // Replaces the old `Account32Hash` approach. + HashedDescription>, ); /// Means for transacting the native currency on this chain. diff --git a/runtime/shiden/src/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index dae283d748..bfc44c0933 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -39,7 +39,7 @@ use xcm_builder::{ EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, }; use xcm_executor::{ traits::{Convert as XcmConvert, JustTry, WithOriginFilter}, @@ -51,7 +51,10 @@ use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::DisabledParachainFee; // Astar imports -use astar_primitives::xcm::{FixedRateOfForeignAsset, ReserveAssetFilter, XcmFungibleFeeHandler}; +use astar_primitives::xcm::{ + DescribeAllTerminal, DescribeFamily, FixedRateOfForeignAsset, HashedDescription, + ReserveAssetFilter, XcmFungibleFeeHandler, +}; parameter_types! { pub RelayNetwork: Option = Some(NetworkId::Kusama); @@ -72,8 +75,9 @@ pub type LocationToAccountId = ( SiblingParachainConvertsVia, // Straight up local `AccountId32` origins just alias directly to `AccountId`. AccountId32Aliases, - // Derives a private `Account32` by hashing `("multiloc", received multilocation)` - Account32Hash, + // Generates private `AccountId`s from `MultiLocation`s, in a stable & safe way. + // Replaces the old `Account32Hash` approach. + HashedDescription>, ); /// Means for transacting the native currency on this chain. @@ -223,6 +227,8 @@ impl Contains for SafeCallFilter { pub type XcmBarrier = ( TakeWeightCredit, AllowTopLevelPaidExecutionFrom, + // This will first calculate the derived origin, before checking it against the barrier implementation + WithComputedOrigin, UniversalLocation, ConstU32<8>>, // Parent and its plurality get free execution AllowUnpaidExecutionFrom, // Expected responses are OK. From 8bac618e5a1c666706751be3167bfe4124c163da Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Wed, 19 Jul 2023 10:16:22 +0200 Subject: [PATCH 17/31] Xcm tools adapt --- Cargo.lock | 1 + bin/xcm-tools/Cargo.toml | 1 + bin/xcm-tools/src/cli.rs | 11 ++++------ bin/xcm-tools/src/command.rs | 40 ++++++++++++++---------------------- 4 files changed, 21 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04763b47a8..faae99caf4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15837,6 +15837,7 @@ dependencies = [ name = "xcm-tools" version = "0.6.0" dependencies = [ + "astar-primitives", "clap", "cumulus-primitives-core", "hex", diff --git a/bin/xcm-tools/Cargo.toml b/bin/xcm-tools/Cargo.toml index ac987d6dc3..1c67590003 100644 --- a/bin/xcm-tools/Cargo.toml +++ b/bin/xcm-tools/Cargo.toml @@ -13,6 +13,7 @@ name = "xcm-tools" path = "src/main.rs" [dependencies] +astar-primitives = { workspace = true, features = ["std"] } clap = { workspace = true } cumulus-primitives-core = { workspace = true, features = ["std"] } polkadot-parachain = { workspace = true, features = ["std"] } diff --git a/bin/xcm-tools/src/cli.rs b/bin/xcm-tools/src/cli.rs index ae0c072898..fd922fa51f 100644 --- a/bin/xcm-tools/src/cli.rs +++ b/bin/xcm-tools/src/cli.rs @@ -36,10 +36,10 @@ pub enum Subcommand { ParachainAccount(ParachainAccountCmd), /// Prints AssetId for desired parachain asset. AssetId(AssetIdCmd), - /// Prints Account32Hash for the derived multilocation. + /// Prints AccountId32 for the derived multilocation. /// In case parachain-id is provided, multilocation is in format { parents: 1, X2(Parachain, AccountId32) }. /// In case parachain-id is omitted, multilocation is in format { parents: 1, X1(AccountId32) }. - Account32Hash(Account32HashCmd), + AccountId32(AccountId32Cmd), } /// Helper that prints AccountId of parachain. @@ -61,18 +61,15 @@ pub struct AssetIdCmd { pub asset_id: u128, } -/// Helper that prints AccountId32 hash value for the derived multilocation. +/// Helper that prints the derived AccountId32 value for the multilocation. #[derive(Debug, clap::Parser)] -pub struct Account32HashCmd { +pub struct AccountId32Cmd { /// Parachain id in case sender is from a sibling parachain. #[clap(short, long, default_value = None)] pub parachain_id: Option, /// AccountId32 (SS58 scheme, public key) of the sender account. #[clap(short, long, value_parser = account_id_32_parser)] pub account_id_32: [u8; 32], - /// NetworkId of the AccountId32 - if not provided, will be set to `Any` - #[clap(short, long)] - pub network_id: Option, } /// Used to parse AccountId32 as [u8; 32] from the received string. diff --git a/bin/xcm-tools/src/command.rs b/bin/xcm-tools/src/command.rs index 7bbc86793f..c32127f792 100644 --- a/bin/xcm-tools/src/command.rs +++ b/bin/xcm-tools/src/command.rs @@ -25,11 +25,13 @@ use cumulus_primitives_core::ParaId; use polkadot_parachain::primitives::Sibling; use polkadot_primitives::AccountId; use sp_core::hexdisplay::HexDisplay; -use sp_runtime::traits::{AccountIdConversion, Get}; +use sp_runtime::traits::AccountIdConversion; use xcm::latest::prelude::*; -use xcm_builder::{Account32Hash, ParentIsPreset, SiblingParachainConvertsVia}; +use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; use xcm_executor::traits::Convert; +use astar_primitives::xcm::{DescribeAllTerminal, DescribeFamily, HashedDescription}; + /// CLI error type. pub type Error = String; @@ -64,18 +66,7 @@ pub fn run() -> Result<(), Error> { println!("pallet_assets: {}", cmd.asset_id); println!("EVM XC20: 0x{}", HexDisplay::from(&data)); } - Some(Subcommand::Account32Hash(cmd)) => { - let network = if let Some(ref id) = cmd.network_id { - match id.to_lowercase().as_str() { - "none" => None, - "polkadot" => Some(NetworkId::Polkadot), - "kusama" => Some(NetworkId::Kusama), - _ => return Err("Unexpected network Id value.".into()), - } - } else { - None - }; - + Some(Subcommand::AccountId32(cmd)) => { let mut sender_multilocation = MultiLocation::parent(); if let Some(parachain_id) = cmd.parachain_id { @@ -86,22 +77,21 @@ pub fn run() -> Result<(), Error> { sender_multilocation .append_with(X1(AccountId32 { - network, id: cmd.account_id_32, + // network is not relevant for account derivation + network: None, })) .expect("infallible, short sequence"); - // Not important for the functionality, totally redundant - struct AnyNetwork; - impl Get> for AnyNetwork { - fn get() -> Option { - None - } - } - let derived_acc = - Account32Hash::::convert_ref(&sender_multilocation).unwrap(); - println!("{}", derived_acc); + HashedDescription::>::convert( + sender_multilocation, + ); + if let Ok(derived_acc) = derived_acc { + println!("{}", derived_acc); + } else { + println!("Failed to derive account Id."); + } } None => {} } From 8088e2e078e1e4ec476473a120458b2eda00c805 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Wed, 19 Jul 2023 11:30:12 +0200 Subject: [PATCH 18/31] Some fixes --- pallets/contracts-migration/src/lib.rs | 2 +- precompiles/dapps-staking/src/lib.rs | 2 +- precompiles/utils/src/lib.rs | 8 ++++---- runtime/shiden/src/xcm_config.rs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pallets/contracts-migration/src/lib.rs b/pallets/contracts-migration/src/lib.rs index 2c6d9ef777..70873db7fd 100644 --- a/pallets/contracts-migration/src/lib.rs +++ b/pallets/contracts-migration/src/lib.rs @@ -174,7 +174,7 @@ pub mod pallet { initial: old.initial, maximum: old.maximum, code: old.code, - determinism: pallet_contracts::Determinism::Enforced, + determinism: Determinism::Enforced, }) }); diff --git a/precompiles/dapps-staking/src/lib.rs b/precompiles/dapps-staking/src/lib.rs index d22eac86b5..c6a371d53a 100644 --- a/precompiles/dapps-staking/src/lib.rs +++ b/precompiles/dapps-staking/src/lib.rs @@ -73,7 +73,7 @@ where // TODO: benchmark this function so we can measure ref time & PoV correctly // Storage item: CurrentEra: // Twox64(8) + EraIndex(4) - handle.record_db_read::(16)?; + handle.record_db_read::(12)?; let current_era = pallet_dapps_staking::CurrentEra::::get(); diff --git a/precompiles/utils/src/lib.rs b/precompiles/utils/src/lib.rs index c0be658ffb..1b67c7ea24 100644 --- a/precompiles/utils/src/lib.rs +++ b/precompiles/utils/src/lib.rs @@ -299,11 +299,11 @@ pub trait PrecompileHandleExt: PrecompileHandle { fn read_input(&self) -> EvmResult; /// Record cost of one DB read manually. - /// The max encoded lenght of the data that will be read should be provided. + /// The expected key & value data length should be provided. #[must_use] fn record_db_read( &mut self, - data_max_encoded_len: usize, + data_length: usize, ) -> Result<(), ExitError>; } @@ -383,10 +383,10 @@ impl PrecompileHandleExt for T { #[must_use] fn record_db_read( &mut self, - data_max_encoded_len: usize, + data_length: usize, ) -> Result<(), ExitError> { self.record_cost(RuntimeHelper::::db_read_gas_cost())?; - self.record_external_cost(None, Some(data_max_encoded_len as u64)) + self.record_external_cost(None, Some(data_length as u64)) } } diff --git a/runtime/shiden/src/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index bfc44c0933..18c40dbc6c 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -34,7 +34,7 @@ use sp_std::marker::PhantomData; // Polkadot imports use xcm::latest::prelude::*; use xcm_builder::{ - Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, From 01b3f6e48ca441034b55c63fb28767672d4dec49 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Wed, 19 Jul 2023 15:18:41 +0200 Subject: [PATCH 19/31] Adapt for weightv2 --- chain-extensions/xvm/src/lib.rs | 2 +- pallets/ethereum-checked/src/lib.rs | 25 ++++++++++++++++++++----- pallets/pallet-xvm/src/pallet/mod.rs | 2 -- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/chain-extensions/xvm/src/lib.rs b/chain-extensions/xvm/src/lib.rs index 9e348bbbce..deac9dd12e 100644 --- a/chain-extensions/xvm/src/lib.rs +++ b/chain-extensions/xvm/src/lib.rs @@ -18,7 +18,7 @@ #![cfg_attr(not(feature = "std"), no_std)] -use frame_support::{dispatch::Encode, weights::Weight}; +use frame_support::dispatch::Encode; use pallet_contracts::{ chain_extension::{ChainExtension, Environment, Ext, InitState, RetVal}, Origin, diff --git a/pallets/ethereum-checked/src/lib.rs b/pallets/ethereum-checked/src/lib.rs index e55b0e96f0..02a3c9aac1 100644 --- a/pallets/ethereum-checked/src/lib.rs +++ b/pallets/ethereum-checked/src/lib.rs @@ -193,6 +193,19 @@ impl Pallet { let tx = checked_tx.into_ethereum_tx(Nonce::::get(), chain_id); let tx_data: TransactionData = (&tx).into(); + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + tx_data.gas_limit.unique_saturated_into(), + true, + ) { + weight_limit if weight_limit.proof_size() > 0 => ( + Some(weight_limit), + // measured PoV should be correct to use here + Some(WeightInfoOf::::transact_without_apply().proof_size()), + ), + _ => (None, None), + }; + // Validate the tx. let _ = CheckEvmTransaction::::new( CheckEvmTransactionConfig { @@ -203,10 +216,8 @@ impl Pallet { is_transactional: true, }, tx_data.into(), - // TODO: solve this prior to the merge - None, - // TODO: solve this prior to the merge - None, + weight_limit, + proof_size_base_cost, ) // Gas limit validation. The fee payment has been validated as the tx is `checked`. .validate_common() @@ -233,7 +244,11 @@ impl Pallet { CallInfo { exit_reason: ExitReason::Succeed(ExitSucceed::Returned), value: Default::default(), - used_gas: checked_tx.gas_limit, + used_gas: fp_evm::UsedGas { + standard: checked_tx.gas_limit, + effective: checked_tx.gas_limit, + }, + weight_info: None, logs: Default::default(), }, )); diff --git a/pallets/pallet-xvm/src/pallet/mod.rs b/pallets/pallet-xvm/src/pallet/mod.rs index e22a14a542..b34d4090a8 100644 --- a/pallets/pallet-xvm/src/pallet/mod.rs +++ b/pallets/pallet-xvm/src/pallet/mod.rs @@ -104,8 +104,6 @@ pub mod pallet { let result = T::SyncVM::xvm_call(context, from, to, input); let consumed_weight = consumed_weight(&result); - // TODO: solve this before merging the uplift PR - XVM should work with 2D weights!!! - let consumed_weight = Weight::from_parts(consumed_weight, 0); log::trace!( target: "xvm::pallet::xvm_call", From a701f161e61ce838e2fba6c2231b37fd781f88fe Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 20 Jul 2023 13:50:34 +0200 Subject: [PATCH 20/31] Small updates --- runtime/astar/src/lib.rs | 2 +- runtime/astar/src/xcm_config.rs | 5 ++--- runtime/shibuya/src/lib.rs | 2 +- runtime/shibuya/src/xcm_config.rs | 5 ++--- runtime/shiden/src/lib.rs | 2 +- runtime/shiden/src/xcm_config.rs | 5 ++--- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index 5e199d54b1..24f5562431 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -608,7 +608,7 @@ parameter_types! { pub const DepositPerItem: Balance = contracts_deposit(1, 0); pub const DepositPerByte: Balance = contracts_deposit(0, 1); // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); + pub const DefaultDepositLimit: Balance = contracts_deposit(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } diff --git a/runtime/astar/src/xcm_config.rs b/runtime/astar/src/xcm_config.rs index c9cb293d02..a44ed82aae 100644 --- a/runtime/astar/src/xcm_config.rs +++ b/runtime/astar/src/xcm_config.rs @@ -129,9 +129,8 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - // The default POV size used by Polkadot/Kusama was 64 kB but that has been updated here: https://github.com/paritytech/polkadot/pull/7081 - // We should properly benchmark instructions and get rid of fixed weights. - pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 1024); + // For the PoV size, we estimate 64 kB per instruction - which will is once again very conservative. + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; } diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index 3856a235c1..2b9e5ae0d1 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -657,7 +657,7 @@ parameter_types! { pub const DepositPerItem: Balance = MILLISBY / 1_000_000; pub const DepositPerByte: Balance = MILLISBY / 1_000_000; // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); + pub const DefaultDepositLimit: Balance = contracts_deposit(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } diff --git a/runtime/shibuya/src/xcm_config.rs b/runtime/shibuya/src/xcm_config.rs index 354bbd4178..a7e7fb2911 100644 --- a/runtime/shibuya/src/xcm_config.rs +++ b/runtime/shibuya/src/xcm_config.rs @@ -139,9 +139,8 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - // The default POV size used by Polkadot/Kusama was 64 kB but that has been updated here: https://github.com/paritytech/polkadot/pull/7081 - // We should properly benchmark instructions and get rid of fixed weights. - pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 1024); + // For the PoV size, we estimate 64 kB per instruction - which will is once again very conservative. + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; } diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 22053b7081..72b652a62d 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -612,7 +612,7 @@ parameter_types! { pub const DepositPerItem: Balance = MILLISDN / 1_000_000; pub const DepositPerByte: Balance = MILLISDN / 1_000_000; // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = contracts_deposit(1024, 1024 * 1024); + pub const DefaultDepositLimit: Balance = contracts_deposit(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } diff --git a/runtime/shiden/src/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index 18c40dbc6c..ab2d7d2b90 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -139,9 +139,8 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - // The default POV size used by Polkadot/Kusama was 64 kB but that has been updated here: https://github.com/paritytech/polkadot/pull/7081 - // We should properly benchmark instructions and get rid of fixed weights. - pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 1024); + // For the PoV size, we estimate 64 kB per instruction - which will is once again very conservative. + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; } From 3f214c73da63d27a0a828de53abe2f7011bce1a6 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 20 Jul 2023 17:01:52 +0200 Subject: [PATCH 21/31] Update contracts --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 986cd6313a..9ee0adff45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" dependencies = [ "bitflags 1.3.2", "environmental", @@ -7027,7 +7027,7 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "7.0.0" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -7040,7 +7040,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#6db42ded15287c99673fd0adc3f05989f22bf9b3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" dependencies = [ "proc-macro2", "quote", @@ -14402,7 +14402,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] From 5e89bab45f8d51a3fefd407f42d17affe3cb4413 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 20 Jul 2023 17:04:19 +0200 Subject: [PATCH 22/31] Update contracts --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ee0adff45..2f988d78cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" dependencies = [ "bitflags 1.3.2", "environmental", @@ -7027,7 +7027,7 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "7.0.0" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -7040,7 +7040,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#efcac322fb153258daa381f61bf9196e9343cbc3" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" dependencies = [ "proc-macro2", "quote", From afb033cb9848f6861d708c2b8d69a3ebc2ac7bb0 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Thu, 20 Jul 2023 17:42:54 +0200 Subject: [PATCH 23/31] Deps fix --- Cargo.lock | 6 +++--- runtime/astar/Cargo.toml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f988d78cf..bc1c4c44a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6983,7 +6983,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" dependencies = [ "bitflags 1.3.2", "environmental", @@ -7027,7 +7027,7 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "7.0.0" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -7040,7 +7040,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#d179539000519b40bfd5f09155fd4c4606623462" +source = "git+https://github.com/AstarNetwork/substrate?branch=astar-polkadot-v0.9.43#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" dependencies = [ "proc-macro2", "quote", diff --git a/runtime/astar/Cargo.toml b/runtime/astar/Cargo.toml index ac14982491..e3919bcc17 100644 --- a/runtime/astar/Cargo.toml +++ b/runtime/astar/Cargo.toml @@ -138,6 +138,7 @@ std = [ "frame-executive/std", "frame-system/std", "frame-system-rpc-runtime-api/std", + "frame-try-runtime/std", "pallet-assets/std", "pallet-authorship/std", "pallet-aura/std", From c39384619c22aa6b4db55b56def98c0ef8f01ce3 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 11:00:14 +0200 Subject: [PATCH 24/31] Address PR comments --- bin/collator/src/rpc.rs | 2 +- chain-extensions/pallet-assets/src/lib.rs | 7 ++++--- chain-extensions/xvm/src/lib.rs | 2 +- runtime/local/src/lib.rs | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 77acbb87ff..5516b1cc25 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -331,7 +331,7 @@ where ) .into_rpc(), )?; - // TODO: remove this? This would mean we have two distinct tx pool implementations! What is the difference? + io.merge(tx_pool.into_rpc())?; Ok(io) diff --git a/chain-extensions/pallet-assets/src/lib.rs b/chain-extensions/pallet-assets/src/lib.rs index 261eb61cdd..5c7de57c9f 100644 --- a/chain-extensions/pallet-assets/src/lib.rs +++ b/chain-extensions/pallet-assets/src/lib.rs @@ -93,6 +93,7 @@ impl Default for AssetsExtension { impl ChainExtension for AssetsExtension where T: pallet_assets::Config + pallet_contracts::Config, + ::AssetId: Copy, <::Lookup as StaticLookup>::Source: From<::AccountId>, ::AccountId: From<[u8; 32]>, W: weights::WeightInfo, @@ -364,7 +365,7 @@ where let base_weight = ::metadata_name(); env.charge_weight(base_weight)?; - let name = pallet_assets::Pallet::::name(id.clone()); + let name = pallet_assets::Pallet::::name(id); env.write(&name.encode(), false, None)?; } AssetsFunc::MetadataSymbol => { @@ -373,7 +374,7 @@ where let base_weight = ::metadata_symbol(); env.charge_weight(base_weight)?; - let symbol = pallet_assets::Pallet::::symbol(id.clone()); + let symbol = pallet_assets::Pallet::::symbol(id); env.write(&symbol.encode(), false, None)?; } AssetsFunc::MetadataDecimals => { @@ -382,7 +383,7 @@ where let base_weight = ::metadata_decimals(); env.charge_weight(base_weight)?; - let decimals = pallet_assets::Pallet::::decimals(id.clone()); + let decimals = pallet_assets::Pallet::::decimals(id); env.write(&decimals.encode(), false, None)?; } AssetsFunc::TransferOwnership => { diff --git a/chain-extensions/xvm/src/lib.rs b/chain-extensions/xvm/src/lib.rs index deac9dd12e..91aa401cd6 100644 --- a/chain-extensions/xvm/src/lib.rs +++ b/chain-extensions/xvm/src/lib.rs @@ -82,7 +82,7 @@ where target: "xvm-extension::xvm_call", "root origin not supported" ); - + // TODO: expand XvmErrors with BadOrigin return Ok(RetVal::Converging(XvmExecutionResult::UnknownError as u32)); } }; diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs index d4e2184f6b..dc6608ba81 100644 --- a/runtime/local/src/lib.rs +++ b/runtime/local/src/lib.rs @@ -806,7 +806,7 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = deposit(1024, 1024 * 1024); + pub const DefaultDepositLimit: Balance = deposit(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } From c1ff0e62d149d41a9694f01e0167783d4f5c4ab1 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 14:19:42 +0200 Subject: [PATCH 25/31] Update weights --- pallets/pallet-xcm/src/weights.rs | 705 ++++++++++++++++-------------- 1 file changed, 384 insertions(+), 321 deletions(-) diff --git a/pallets/pallet-xcm/src/weights.rs b/pallets/pallet-xcm/src/weights.rs index a2f4e4cdb6..9daeb2b4aa 100644 --- a/pallets/pallet-xcm/src/weights.rs +++ b/pallets/pallet-xcm/src/weights.rs @@ -1,34 +1,17 @@ -// This file is part of Astar. - -// Copyright (C) 2019-2023 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 pallet_xcm //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-04, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-24, 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 +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("astar-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/astar-collator // benchmark // pallet -// --chain=shibuya-dev +// --chain=astar-dev // --steps=50 // --repeat=20 // --pallet=pallet_xcm @@ -44,422 +27,502 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; -use sp_std::marker::PhantomData; -use super::WeightInfo; +use core::marker::PhantomData; + +/// Weight functions needed for pallet_xcm. +pub trait WeightInfo { + fn send() -> Weight; + fn teleport_assets() -> Weight; + fn reserve_transfer_assets() -> Weight; + fn execute() -> Weight; + fn force_xcm_version() -> Weight; + fn force_default_xcm_version() -> Weight; + fn force_subscribe_version_notify() -> Weight; + fn force_unsubscribe_version_notify() -> Weight; + fn migrate_supported_version() -> Weight; + fn force_suspension() -> Weight; + fn migrate_version_notifiers() -> Weight; + fn already_notified_target() -> Weight; + fn notify_current_targets() -> Weight; + fn notify_target_migration_fail() -> Weight; + fn migrate_version_notify_targets() -> Weight; + fn migrate_and_notify_old_targets() -> Weight; + fn reserve_withdraw_assets() -> Weight; +} /// Weights for pallet_xcm using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl 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 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) fn send() -> Weight { - // Minimum execution time: 28_954 nanoseconds. - Weight::from_parts(29_757_000, 0) - .saturating_add(Weight::from_parts(0, 5010)) + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 27_187_000 picoseconds. + Weight::from_parts(27_682_000, 3539) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_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 Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn teleport_assets() -> Weight { - // Minimum execution time: 18_446_744_073_709_551 nanoseconds. + // 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) - .saturating_add(Weight::from_parts(0, 0)) } - // Storage: ParachainInfo ParachainId (r:1 w:0) - // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: System Account (r:2 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:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn reserve_transfer_assets() -> Weight { - // Minimum execution time: 31_227 nanoseconds. - Weight::from_parts(31_863_000, 0) - .saturating_add(Weight::from_parts(0, 5705)) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3593` + // Minimum execution time: 28_646_000 picoseconds. + Weight::from_parts(29_117_000, 3593) + .saturating_add(T::DbWeight::get().reads(2_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 Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn execute() -> Weight { - // Minimum execution time: 18_446_744_073_709_551 nanoseconds. + // 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) - .saturating_add(Weight::from_parts(0, 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 Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) fn force_xcm_version() -> Weight { - // Minimum execution time: 9_393 nanoseconds. - Weight::from_parts(9_916_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_127_000 picoseconds. + Weight::from_parts(9_263_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) + /// 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 { - // Minimum execution time: 2_828 nanoseconds. - Weight::from_parts(2_982_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_968_000 picoseconds. + Weight::from_parts(3_094_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - // 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 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) fn force_subscribe_version_notify() -> Weight { - // Minimum execution time: 32_918 nanoseconds. - Weight::from_parts(35_102_000, 0) - .saturating_add(Weight::from_parts(0, 8313)) + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 30_549_000 picoseconds. + Weight::from_parts(31_067_000, 3539) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_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 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) fn force_unsubscribe_version_notify() -> Weight { - // Minimum execution time: 35_929 nanoseconds. - Weight::from_parts(36_954_000, 0) - .saturating_add(Weight::from_parts(0, 8988)) + // Proof Size summary in bytes: + // Measured: `257` + // Estimated: `3722` + // Minimum execution time: 31_691_000 picoseconds. + Weight::from_parts(32_205_000, 3722) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: PolkadotXcm SupportedVersion (r:4 w:2) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) fn migrate_supported_version() -> Weight { - // Minimum execution time: 17_936 nanoseconds. - Weight::from_parts(18_392_000, 0) - .saturating_add(Weight::from_parts(0, 10029)) + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_256_000 picoseconds. + Weight::from_parts(15_737_000, 10985) .saturating_add(T::DbWeight::get().reads(4_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 XcmExecutionSuspended (r:0 w:1) + /// Proof Skipped: 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: 2_972_000 picoseconds. + Weight::from_parts(3_082_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) fn migrate_version_notifiers() -> Weight { - // Minimum execution time: 17_874 nanoseconds. - Weight::from_parts(18_353_000, 0) - .saturating_add(Weight::from_parts(0, 10033)) + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_310_000 picoseconds. + Weight::from_parts(15_667_000, 10989) .saturating_add(T::DbWeight::get().reads(4_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:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn already_notified_target() -> Weight { - // Minimum execution time: 20_320 nanoseconds. - Weight::from_parts(20_858_000, 0) - .saturating_add(Weight::from_parts(0, 12515)) + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_176_000 picoseconds. + Weight::from_parts(16_586_000, 13471) .saturating_add(T::DbWeight::get().reads(5_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 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) fn notify_current_targets() -> Weight { - // Minimum execution time: 33_135 nanoseconds. - Weight::from_parts(33_575_000, 0) - .saturating_add(Weight::from_parts(0, 10473)) + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `6082` + // Minimum execution time: 29_374_000 picoseconds. + Weight::from_parts(29_786_000, 6082) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn notify_target_migration_fail() -> Weight { - // Minimum execution time: 8_047 nanoseconds. - Weight::from_parts(8_255_000, 0) - .saturating_add(Weight::from_parts(0, 7597)) + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 7_964_000 picoseconds. + Weight::from_parts(8_184_000, 8551) .saturating_add(T::DbWeight::get().reads(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn migrate_version_notify_targets() -> Weight { - // Minimum execution time: 17_230 nanoseconds. - Weight::from_parts(17_749_000, 0) - .saturating_add(Weight::from_parts(0, 10040)) + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_766_000 picoseconds. + Weight::from_parts(16_110_000, 10996) .saturating_add(T::DbWeight::get().reads(4_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: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) fn migrate_and_notify_old_targets() -> Weight { - // Minimum execution time: 61_977 nanoseconds. - Weight::from_parts(62_285_000, 0) - .saturating_add(Weight::from_parts(0, 15447)) + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `11038` + // Minimum execution time: 34_168_000 picoseconds. + Weight::from_parts(34_836_000, 11038) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } - // 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:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn reserve_withdraw_assets() -> Weight { - // Minimum execution time: 32_020 nanoseconds. - Weight::from_parts(32_452_000, 0) - .saturating_add(Weight::from_parts(0, 3102)) - .saturating_add(T::DbWeight::get().reads(2_u64)) - } - /// C/P from PolkadotXcm, should be measured independently. - /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) - /// Proof Skipped: XcmPallet 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: 2_849_000 picoseconds. - Weight::from_parts(3_018_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `71` + // Estimated: `3593` + // Minimum execution time: 30_562_000 picoseconds. + Weight::from_parts(31_195_000, 3593) + .saturating_add(T::DbWeight::get().reads(2_u64)) } } // For backwards compatibility and tests impl WeightInfo for () { - // 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 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) fn send() -> Weight { - // Minimum execution time: 28_954 nanoseconds. - Weight::from_parts(29_757_000, 0) - .saturating_add(Weight::from_parts(0, 5010)) + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 27_187_000 picoseconds. + Weight::from_parts(27_682_000, 3539) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(2_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 Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn teleport_assets() -> Weight { - // Minimum execution time: 18_446_744_073_709_551 nanoseconds. + // 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) - .saturating_add(Weight::from_parts(0, 0)) } - // Storage: ParachainInfo ParachainId (r:1 w:0) - // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: System Account (r:2 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:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn reserve_transfer_assets() -> Weight { - // Minimum execution time: 31_227 nanoseconds. - Weight::from_parts(31_863_000, 0) - .saturating_add(Weight::from_parts(0, 5705)) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + // Proof Size summary in bytes: + // Measured: `71` + // Estimated: `3593` + // Minimum execution time: 28_646_000 picoseconds. + Weight::from_parts(29_117_000, 3593) + .saturating_add(RocksDbWeight::get().reads(2_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 Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) fn execute() -> Weight { - // Minimum execution time: 18_446_744_073_709_551 nanoseconds. + // 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) - .saturating_add(Weight::from_parts(0, 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 Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) fn force_xcm_version() -> Weight { - // Minimum execution time: 9_393 nanoseconds. - Weight::from_parts(9_916_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_127_000 picoseconds. + Weight::from_parts(9_263_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// 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 { - // Minimum execution time: 2_828 nanoseconds. - Weight::from_parts(2_982_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_968_000 picoseconds. + Weight::from_parts(3_094_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - // 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 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) fn force_subscribe_version_notify() -> Weight { - // Minimum execution time: 32_918 nanoseconds. - Weight::from_parts(35_102_000, 0) - .saturating_add(Weight::from_parts(0, 8313)) + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 30_549_000 picoseconds. + Weight::from_parts(31_067_000, 3539) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(5_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 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) fn force_unsubscribe_version_notify() -> Weight { - // Minimum execution time: 35_929 nanoseconds. - Weight::from_parts(36_954_000, 0) - .saturating_add(Weight::from_parts(0, 8988)) + // Proof Size summary in bytes: + // Measured: `257` + // Estimated: `3722` + // Minimum execution time: 31_691_000 picoseconds. + Weight::from_parts(32_205_000, 3722) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - // Storage: PolkadotXcm SupportedVersion (r:4 w:2) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) fn migrate_supported_version() -> Weight { - // Minimum execution time: 17_936 nanoseconds. - Weight::from_parts(18_392_000, 0) - .saturating_add(Weight::from_parts(0, 10029)) + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_256_000 picoseconds. + Weight::from_parts(15_737_000, 10985) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::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 XcmExecutionSuspended (r:0 w:1) + /// Proof Skipped: 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: 2_972_000 picoseconds. + Weight::from_parts(3_082_000, 0) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) fn migrate_version_notifiers() -> Weight { - // Minimum execution time: 17_874 nanoseconds. - Weight::from_parts(18_353_000, 0) - .saturating_add(Weight::from_parts(0, 10033)) + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_310_000 picoseconds. + Weight::from_parts(15_667_000, 10989) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::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:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn already_notified_target() -> Weight { - // Minimum execution time: 20_320 nanoseconds. - Weight::from_parts(20_858_000, 0) - .saturating_add(Weight::from_parts(0, 12515)) + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_176_000 picoseconds. + Weight::from_parts(16_586_000, 13471) .saturating_add(RocksDbWeight::get().reads(5_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 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) fn notify_current_targets() -> Weight { - // Minimum execution time: 33_135 nanoseconds. - Weight::from_parts(33_575_000, 0) - .saturating_add(Weight::from_parts(0, 10473)) + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `6082` + // Minimum execution time: 29_374_000 picoseconds. + Weight::from_parts(29_786_000, 6082) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn notify_target_migration_fail() -> Weight { - // Minimum execution time: 8_047 nanoseconds. - Weight::from_parts(8_255_000, 0) - .saturating_add(Weight::from_parts(0, 7597)) + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 7_964_000 picoseconds. + Weight::from_parts(8_184_000, 8551) .saturating_add(RocksDbWeight::get().reads(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) fn migrate_version_notify_targets() -> Weight { - // Minimum execution time: 17_230 nanoseconds. - Weight::from_parts(17_749_000, 0) - .saturating_add(Weight::from_parts(0, 10040)) + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_766_000 picoseconds. + Weight::from_parts(16_110_000, 10996) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::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: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) fn migrate_and_notify_old_targets() -> Weight { - // Minimum execution time: 61_977 nanoseconds. - Weight::from_parts(62_285_000, 0) - .saturating_add(Weight::from_parts(0, 15447)) + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `11038` + // Minimum execution time: 34_168_000 picoseconds. + Weight::from_parts(34_836_000, 11038) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } - // 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:0) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn reserve_withdraw_assets() -> Weight { - // Minimum execution time: 32_020 nanoseconds. - Weight::from_parts(32_452_000, 0) - .saturating_add(Weight::from_parts(0, 3102)) - .saturating_add(RocksDbWeight::get().reads(2_u64)) - } - /// C/P from PolkadotXcm, should be measured independently. - /// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) - /// Proof Skipped: XcmPallet 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: 2_849_000 picoseconds. - Weight::from_parts(3_018_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(RocksDbWeight::get().writes(1)) + // Measured: `71` + // Estimated: `3593` + // Minimum execution time: 30_562_000 picoseconds. + Weight::from_parts(31_195_000, 3593) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } } From 21c0491efeedd105249e88a5d7da6a3869298fab Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 14:26:41 +0200 Subject: [PATCH 26/31] license --- pallets/pallet-xcm/src/weights.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pallets/pallet-xcm/src/weights.rs b/pallets/pallet-xcm/src/weights.rs index 9daeb2b4aa..9dd9325d81 100644 --- a/pallets/pallet-xcm/src/weights.rs +++ b/pallets/pallet-xcm/src/weights.rs @@ -1,4 +1,22 @@ +// This file is part of Astar. + +// Copyright (C) 2019-2023 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 pallet_xcm //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev From 69d1b46dccc59f2d17527547d4960d28b2560339 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 15:01:47 +0200 Subject: [PATCH 27/31] Fix --- pallets/pallet-xcm/src/lib.rs | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/pallets/pallet-xcm/src/lib.rs b/pallets/pallet-xcm/src/lib.rs index 0dd8da11d0..9f1f335b47 100644 --- a/pallets/pallet-xcm/src/lib.rs +++ b/pallets/pallet-xcm/src/lib.rs @@ -61,25 +61,7 @@ use xcm_executor::{ Assets, }; -pub trait WeightInfo { - fn send() -> Weight; - fn teleport_assets() -> Weight; - fn reserve_transfer_assets() -> Weight; - fn execute() -> Weight; - fn force_xcm_version() -> Weight; - fn force_default_xcm_version() -> Weight; - fn force_subscribe_version_notify() -> Weight; - fn force_unsubscribe_version_notify() -> Weight; - fn force_suspension() -> Weight; - fn migrate_supported_version() -> Weight; - fn migrate_version_notifiers() -> Weight; - fn already_notified_target() -> Weight; - fn notify_current_targets() -> Weight; - fn notify_target_migration_fail() -> Weight; - fn migrate_version_notify_targets() -> Weight; - fn migrate_and_notify_old_targets() -> Weight; - fn reserve_withdraw_assets() -> Weight; -} +use weights::WeightInfo; /// fallback implementation pub struct TestWeightInfo; From 385d44cc3741e4ff7a2eeadb3d3dc92826c71e1a Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 17:31:06 +0200 Subject: [PATCH 28/31] Adapt xcm tools --- Cargo.lock | 1 - Cargo.toml | 1 - bin/xcm-tools/Cargo.toml | 1 - bin/xcm-tools/src/cli.rs | 104 ++++++++++++++++++++++++----------- bin/xcm-tools/src/command.rs | 28 +++++++--- 5 files changed, 92 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc1c4c44a3..3389bd4513 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15848,7 +15848,6 @@ dependencies = [ "hex", "polkadot-parachain", "polkadot-primitives", - "regex", "sp-core", "sp-runtime", "substrate-build-script-utils", diff --git a/Cargo.toml b/Cargo.toml index f803ea3fae..abf1e25a9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,6 @@ tokio = { version = "1.24.2", features = ["macros", "sync"] } url = "2.2.2" jsonrpsee = { version = "0.16.2", features = ["server"] } hex-literal = "0.4.1" -regex = "1.6.0" rlp = "0.5" tracing = "0.1.34" similar-asserts = { version = "1.1.0" } diff --git a/bin/xcm-tools/Cargo.toml b/bin/xcm-tools/Cargo.toml index 1c67590003..3b90bc2df1 100644 --- a/bin/xcm-tools/Cargo.toml +++ b/bin/xcm-tools/Cargo.toml @@ -25,7 +25,6 @@ xcm-builder = { workspace = true, features = ["std"] } xcm-executor = { workspace = true, features = ["std"] } hex = { workspace = true } -regex = { workspace = true } [build-dependencies] substrate-build-script-utils = { workspace = true } diff --git a/bin/xcm-tools/src/cli.rs b/bin/xcm-tools/src/cli.rs index fd922fa51f..979c81e603 100644 --- a/bin/xcm-tools/src/cli.rs +++ b/bin/xcm-tools/src/cli.rs @@ -16,8 +16,6 @@ // You should have received a copy of the GNU General Public License // along with Astar. If not, see . -use regex::Regex; - /// Astar XCM tools. #[derive(Debug, clap::Parser)] #[clap(subcommand_required = true)] @@ -30,21 +28,19 @@ pub struct Cli { /// Possible subcommands of the main binary. #[derive(Debug, clap::Subcommand)] pub enum Subcommand { - /// Prints relay-chain AccountId + /// Prints relay-chain SS58 account Id RelayChainAccount, - /// Prints parachain AccountId. - ParachainAccount(ParachainAccountCmd), + /// Prints parachains sovereign SS58 account Id. + SovereignAccount(SovereignAccountCmd), /// Prints AssetId for desired parachain asset. AssetId(AssetIdCmd), - /// Prints AccountId32 for the derived multilocation. - /// In case parachain-id is provided, multilocation is in format { parents: 1, X2(Parachain, AccountId32) }. - /// In case parachain-id is omitted, multilocation is in format { parents: 1, X1(AccountId32) }. - AccountId32(AccountId32Cmd), + /// Prints derived remote SS58 account for the derived multilocation. + RemoteAccount(RemoteAccountCmd), } /// Helper that prints AccountId of parachain. #[derive(Debug, clap::Parser)] -pub struct ParachainAccountCmd { +pub struct SovereignAccountCmd { /// Print address for sibling parachain [child by default]. #[clap(short)] pub sibling: bool, @@ -63,33 +59,79 @@ pub struct AssetIdCmd { /// Helper that prints the derived AccountId32 value for the multilocation. #[derive(Debug, clap::Parser)] -pub struct AccountId32Cmd { +pub struct RemoteAccountCmd { /// Parachain id in case sender is from a sibling parachain. #[clap(short, long, default_value = None)] pub parachain_id: Option, - /// AccountId32 (SS58 scheme, public key) of the sender account. - #[clap(short, long, value_parser = account_id_32_parser)] - pub account_id_32: [u8; 32], + /// Public key (SS58 or H160) in hex format. Must be either 32 or 20 bytes long. + #[clap(short, long)] + pub account_key: AccountWrapper, +} + +#[derive(Debug, Clone)] +pub struct AccountWrapper { + account: [u8; 32], + is_32: bool, } -/// Used to parse AccountId32 as [u8; 32] from the received string. -fn account_id_32_parser(account_str: &str) -> Result<[u8; 32], String> { - let re = Regex::new(r"^0x([0-9a-fA-F]{64})$").map_err(|e| e.to_string())?; - if !re.is_match(account_str) { - return Err( - "Invalid AccountId32 received. Expected format is '0x1234...4321' (64 hex digits)." - .into(), - ); +impl AccountWrapper { + /// Get AccountId32 public key (SS58) or error if it is not 32 bytes long. + pub fn get_account_id_32(&self) -> Result<[u8; 32], &str> { + if self.is_32 { + Ok(self.account) + } else { + Err("Account is not 32 bytes long") + } } - let hex_acc = re - .captures(account_str) - .expect("Regex match confirmed above.") - .get(1) - .expect("Group 1 confirmed in match above.") - .as_str(); - let decoded_hex = hex::decode(hex_acc).expect("Regex ensures correctness; infallible."); + /// Get AccountKey20 public key (H160) or error if it is not 20 bytes long. + pub fn get_account_key_20(&self) -> Result<[u8; 20], &str> { + if !self.is_32 { + let mut account = [0u8; 20]; + account.copy_from_slice(&self.account[0..20]); + Ok(account) + } else { + Err("Account is not 20 bytes long") + } + } - TryInto::<[u8; 32]>::try_into(decoded_hex) - .map_err(|_| "Failed to create [u8; 32] array from received account Id string.".into()) + /// `true` if AccountId32, `false` if AccountKey20. + pub fn is_32_bytes(&self) -> bool { + self.is_32 + } +} + +impl std::str::FromStr for AccountWrapper { + type Err = String; + + fn from_str(account_pub_key: &str) -> Result { + if let Some(rest) = account_pub_key.strip_prefix("0x") { + if let Some(pos) = rest.chars().position(|c| !c.is_ascii_hexdigit()) { + Err(format!( + "Expected account public key in hex format, found illegal hex character at position: {}", + 2 + pos, + )) + } else { + if rest.len() == 40 { + let mut account = [0u8; 32]; + account[0..20].copy_from_slice(&hex::decode(rest).unwrap()); + Ok(AccountWrapper { + account, + is_32: false, + }) + } else if rest.len() == 64 { + let mut account = [0u8; 32]; + account.copy_from_slice(&hex::decode(rest).unwrap()); + Ok(AccountWrapper { + account, + is_32: true, + }) + } else { + Err("Account key should be 20 or 32 bytes long".into()) + } + } + } else { + Err("Account key should start with '0x'".into()) + } + } } diff --git a/bin/xcm-tools/src/command.rs b/bin/xcm-tools/src/command.rs index c32127f792..feff5593bd 100644 --- a/bin/xcm-tools/src/command.rs +++ b/bin/xcm-tools/src/command.rs @@ -45,7 +45,7 @@ pub fn run() -> Result<(), Error> { ParentIsPreset::::convert_ref(&MultiLocation::parent()).unwrap(); println!("{}", relay_account); } - Some(Subcommand::ParachainAccount(cmd)) => { + Some(Subcommand::SovereignAccount(cmd)) => { let parachain_account = if cmd.sibling { let location = MultiLocation { parents: 1, @@ -66,7 +66,7 @@ pub fn run() -> Result<(), Error> { println!("pallet_assets: {}", cmd.asset_id); println!("EVM XC20: 0x{}", HexDisplay::from(&data)); } - Some(Subcommand::AccountId32(cmd)) => { + Some(Subcommand::RemoteAccount(cmd)) => { let mut sender_multilocation = MultiLocation::parent(); if let Some(parachain_id) = cmd.parachain_id { @@ -75,13 +75,23 @@ pub fn run() -> Result<(), Error> { .expect("infallible, short sequence"); } - sender_multilocation - .append_with(X1(AccountId32 { - id: cmd.account_id_32, - // network is not relevant for account derivation - network: None, - })) - .expect("infallible, short sequence"); + if cmd.account_key.is_32_bytes() { + sender_multilocation + .append_with(X1(AccountId32 { + id: cmd.account_key.get_account_id_32().unwrap(), + // network is not relevant for account derivation + network: None, + })) + .expect("infallible, short sequence"); + } else { + sender_multilocation + .append_with(X1(AccountKey20 { + key: cmd.account_key.get_account_key_20().unwrap(), + // network is not relevant for account derivation + network: None, + })) + .expect("infallible, short sequence"); + } let derived_acc = HashedDescription::>::convert( From e8e634022e3f211cb5f02348f88e27e62e5e3cd5 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Mon, 24 Jul 2023 17:38:38 +0200 Subject: [PATCH 29/31] Bump versions --- Cargo.lock | 10 +++++----- bin/collator/Cargo.toml | 2 +- runtime/astar/Cargo.toml | 2 +- runtime/astar/src/lib.rs | 2 +- runtime/local/Cargo.toml | 2 +- runtime/shibuya/Cargo.toml | 2 +- runtime/shibuya/src/lib.rs | 2 +- runtime/shiden/Cargo.toml | 2 +- runtime/shiden/src/lib.rs | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3389bd4513..239307491e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -404,7 +404,7 @@ dependencies = [ [[package]] name = "astar-collator" -version = "5.13.0" +version = "5.15.0" dependencies = [ "astar-primitives", "astar-runtime", @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "astar-runtime" -version = "5.13.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -5475,7 +5475,7 @@ checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" [[package]] name = "local-runtime" -version = "5.13.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -12296,7 +12296,7 @@ dependencies = [ [[package]] name = "shibuya-runtime" -version = "5.14.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -12404,7 +12404,7 @@ dependencies = [ [[package]] name = "shiden-runtime" -version = "5.13.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", diff --git a/bin/collator/Cargo.toml b/bin/collator/Cargo.toml index 52e73779c2..9584fc1368 100644 --- a/bin/collator/Cargo.toml +++ b/bin/collator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "astar-collator" -version = "5.13.0" +version = "5.15.0" description = "Astar collator implementation in Rust." build = "build.rs" default-run = "astar-collator" diff --git a/runtime/astar/Cargo.toml b/runtime/astar/Cargo.toml index e3919bcc17..96c4b8ff1d 100644 --- a/runtime/astar/Cargo.toml +++ b/runtime/astar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "astar-runtime" -version = "5.13.0" +version = "5.15.0" build = "build.rs" authors.workspace = true edition.workspace = true diff --git a/runtime/astar/src/lib.rs b/runtime/astar/src/lib.rs index 24f5562431..242a4dfd9a 100644 --- a/runtime/astar/src/lib.rs +++ b/runtime/astar/src/lib.rs @@ -141,7 +141,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("astar"), impl_name: create_runtime_str!("astar"), authoring_version: 1, - spec_version: 63, + spec_version: 64, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, diff --git a/runtime/local/Cargo.toml b/runtime/local/Cargo.toml index b5873f0088..398d2d076e 100644 --- a/runtime/local/Cargo.toml +++ b/runtime/local/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "local-runtime" -version = "5.13.0" +version = "5.15.0" build = "build.rs" authors.workspace = true edition.workspace = true diff --git a/runtime/shibuya/Cargo.toml b/runtime/shibuya/Cargo.toml index 1c423f2736..556b1abd7d 100644 --- a/runtime/shibuya/Cargo.toml +++ b/runtime/shibuya/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "shibuya-runtime" -version = "5.14.0" +version = "5.15.0" build = "build.rs" authors.workspace = true edition.workspace = true diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index 2b9e5ae0d1..90303e918e 100644 --- a/runtime/shibuya/src/lib.rs +++ b/runtime/shibuya/src/lib.rs @@ -165,7 +165,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("shibuya"), impl_name: create_runtime_str!("shibuya"), authoring_version: 1, - spec_version: 104, + spec_version: 105, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, diff --git a/runtime/shiden/Cargo.toml b/runtime/shiden/Cargo.toml index aec9cdcc3d..efcc9d3f0d 100644 --- a/runtime/shiden/Cargo.toml +++ b/runtime/shiden/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "shiden-runtime" -version = "5.13.0" +version = "5.15.0" build = "build.rs" authors.workspace = true edition.workspace = true diff --git a/runtime/shiden/src/lib.rs b/runtime/shiden/src/lib.rs index 72b652a62d..6a87d6f7e6 100644 --- a/runtime/shiden/src/lib.rs +++ b/runtime/shiden/src/lib.rs @@ -143,7 +143,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("shiden"), impl_name: create_runtime_str!("shiden"), authoring_version: 1, - spec_version: 103, + spec_version: 104, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, From 8d4ca14028a0565fd561a7fd529a58734d5aec61 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 25 Jul 2023 08:24:13 +0200 Subject: [PATCH 30/31] Small changes --- bin/xcm-tools/src/cli.rs | 30 ++++++++++++------------------ bin/xcm-tools/src/command.rs | 4 ++-- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/bin/xcm-tools/src/cli.rs b/bin/xcm-tools/src/cli.rs index 979c81e603..1beb7313aa 100644 --- a/bin/xcm-tools/src/cli.rs +++ b/bin/xcm-tools/src/cli.rs @@ -68,33 +68,27 @@ pub struct RemoteAccountCmd { pub account_key: AccountWrapper, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Copy)] pub struct AccountWrapper { account: [u8; 32], is_32: bool, } -impl AccountWrapper { - /// Get AccountId32 public key (SS58) or error if it is not 32 bytes long. - pub fn get_account_id_32(&self) -> Result<[u8; 32], &str> { - if self.is_32 { - Ok(self.account) - } else { - Err("Account is not 32 bytes long") - } +impl Into<[u8; 32]> for AccountWrapper { + fn into(self) -> [u8; 32] { + self.account } +} - /// Get AccountKey20 public key (H160) or error if it is not 20 bytes long. - pub fn get_account_key_20(&self) -> Result<[u8; 20], &str> { - if !self.is_32 { - let mut account = [0u8; 20]; - account.copy_from_slice(&self.account[0..20]); - Ok(account) - } else { - Err("Account is not 20 bytes long") - } +impl Into<[u8; 20]> for AccountWrapper { + fn into(self) -> [u8; 20] { + self.account[0..20] + .try_into() + .expect("Slice is of length 20; qed.") } +} +impl AccountWrapper { /// `true` if AccountId32, `false` if AccountKey20. pub fn is_32_bytes(&self) -> bool { self.is_32 diff --git a/bin/xcm-tools/src/command.rs b/bin/xcm-tools/src/command.rs index feff5593bd..c283fa404b 100644 --- a/bin/xcm-tools/src/command.rs +++ b/bin/xcm-tools/src/command.rs @@ -78,7 +78,7 @@ pub fn run() -> Result<(), Error> { if cmd.account_key.is_32_bytes() { sender_multilocation .append_with(X1(AccountId32 { - id: cmd.account_key.get_account_id_32().unwrap(), + id: cmd.account_key.into(), // network is not relevant for account derivation network: None, })) @@ -86,7 +86,7 @@ pub fn run() -> Result<(), Error> { } else { sender_multilocation .append_with(X1(AccountKey20 { - key: cmd.account_key.get_account_key_20().unwrap(), + key: cmd.account_key.into(), // network is not relevant for account derivation network: None, })) From 04333074d5f0fe77714f0df81cd0fff12a4c7d71 Mon Sep 17 00:00:00 2001 From: Dino Pacandi Date: Tue, 25 Jul 2023 17:27:10 +0200 Subject: [PATCH 31/31] PR comments --- bin/xcm-tools/src/cli.rs | 50 ++++++++++-------------------------- bin/xcm-tools/src/command.rs | 35 +++++++++++++------------ 2 files changed, 33 insertions(+), 52 deletions(-) diff --git a/bin/xcm-tools/src/cli.rs b/bin/xcm-tools/src/cli.rs index 1beb7313aa..8bbd3cbe4f 100644 --- a/bin/xcm-tools/src/cli.rs +++ b/bin/xcm-tools/src/cli.rs @@ -69,30 +69,9 @@ pub struct RemoteAccountCmd { } #[derive(Debug, Clone, Copy)] -pub struct AccountWrapper { - account: [u8; 32], - is_32: bool, -} - -impl Into<[u8; 32]> for AccountWrapper { - fn into(self) -> [u8; 32] { - self.account - } -} - -impl Into<[u8; 20]> for AccountWrapper { - fn into(self) -> [u8; 20] { - self.account[0..20] - .try_into() - .expect("Slice is of length 20; qed.") - } -} - -impl AccountWrapper { - /// `true` if AccountId32, `false` if AccountKey20. - pub fn is_32_bytes(&self) -> bool { - self.is_32 - } +pub enum AccountWrapper { + SS58([u8; 32]), + H160([u8; 20]), } impl std::str::FromStr for AccountWrapper { @@ -106,20 +85,19 @@ impl std::str::FromStr for AccountWrapper { 2 + pos, )) } else { + let account = hex::decode(rest).expect("Ensured in previous check it's hex; QED"); if rest.len() == 40 { - let mut account = [0u8; 32]; - account[0..20].copy_from_slice(&hex::decode(rest).unwrap()); - Ok(AccountWrapper { - account, - is_32: false, - }) + Ok(AccountWrapper::H160( + account + .try_into() + .expect("Ensured length in previous check; QED"), + )) } else if rest.len() == 64 { - let mut account = [0u8; 32]; - account.copy_from_slice(&hex::decode(rest).unwrap()); - Ok(AccountWrapper { - account, - is_32: true, - }) + Ok(AccountWrapper::SS58( + account + .try_into() + .expect("Ensured length in previous check; QED"), + )) } else { Err("Account key should be 20 or 32 bytes long".into()) } diff --git a/bin/xcm-tools/src/command.rs b/bin/xcm-tools/src/command.rs index c283fa404b..9ad9fa8458 100644 --- a/bin/xcm-tools/src/command.rs +++ b/bin/xcm-tools/src/command.rs @@ -75,22 +75,25 @@ pub fn run() -> Result<(), Error> { .expect("infallible, short sequence"); } - if cmd.account_key.is_32_bytes() { - sender_multilocation - .append_with(X1(AccountId32 { - id: cmd.account_key.into(), - // network is not relevant for account derivation - network: None, - })) - .expect("infallible, short sequence"); - } else { - sender_multilocation - .append_with(X1(AccountKey20 { - key: cmd.account_key.into(), - // network is not relevant for account derivation - network: None, - })) - .expect("infallible, short sequence"); + match cmd.account_key { + AccountWrapper::SS58(id) => { + sender_multilocation + .append_with(X1(AccountId32 { + id, + // network is not relevant for account derivation + network: None, + })) + .expect("infallible, short sequence"); + } + AccountWrapper::H160(key) => { + sender_multilocation + .append_with(X1(AccountKey20 { + key, + // network is not relevant for account derivation + network: None, + })) + .expect("infallible, short sequence"); + } } let derived_acc =