diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 3134714845..0c71ebad42 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -18,6 +18,15 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest steps: + - name: Free disk space + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + df -h + - name: Checkout the source code uses: actions/checkout@v3 diff --git a/Cargo.lock b/Cargo.lock index dedb95240f..a674417852 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" @@ -410,7 +404,7 @@ dependencies = [ [[package]] name = "astar-collator" -version = "5.13.0" +version = "5.15.0" dependencies = [ "astar-primitives", "astar-runtime", @@ -519,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", @@ -533,7 +529,7 @@ dependencies = [ [[package]] name = "astar-runtime" -version = "5.13.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -554,7 +550,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", @@ -589,7 +585,6 @@ dependencies = [ "pallet-multisig", "pallet-proxy", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -665,6 +660,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 +758,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 +793,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 +810,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 +820,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 +1120,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 +1338,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", + "unicode-width", "windows-sys 0.45.0", ] @@ -1413,28 +1421,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 +1450,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 +1486,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 +1503,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 +1612,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 +1676,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 +1691,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 +1714,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 +1743,8 @@ dependencies = [ "sp-inherents", "sp-keystore", "sp-runtime", + "sp-state-machine", + "sp-timestamp", "substrate-prometheus-endpoint", "tracing", ] @@ -1724,7 +1752,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 +1768,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 +1816,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 +1839,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 +1863,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 +1898,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 +1914,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 +1931,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 +1960,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 +1987,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 +2007,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 +2024,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 +2047,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 +2060,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 +2078,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 +2103,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 +2121,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 +2130,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 +2159,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 +2189,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 +2366,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 +2501,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 +2609,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 +2635,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 +2678,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", ] @@ -2785,8 +2879,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "evm" version = "0.39.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49a4e11987c51220aa89dbe1a5cc877f5079fa6864c0a5b4533331db44e9365" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ "auto_impl", "environmental", @@ -2806,8 +2899,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1f13264b044cb66f0602180f0bc781c29accb41ff560669a3ec15858d5b606" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2818,8 +2910,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d43eadc395bd1a52990787ca1495c26b0248165444912be075c28909a853b8c" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ "environmental", "evm-core", @@ -2830,8 +2921,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aa5b32f59ec582a5651978004e5c784920291263b7dcb6de418047438e37f4f" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ "auto_impl", "environmental", @@ -2885,7 +2975,6 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 1.0.109", ] [[package]] @@ -2901,6 +2990,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 +3058,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 +3074,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 +3094,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,7 +3115,7 @@ 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", @@ -3046,6 +3148,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "serde", "sp-api", "sp-block-builder", "sp-blockchain", @@ -3062,7 +3165,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 +3178,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 +3212,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 +3313,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 +3330,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 +3342,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 +3361,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 +3375,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", "frame-support", "parity-scale-codec", + "scale-info", "serde", "sp-core", "sp-runtime", @@ -3275,7 +3390,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 +3407,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 +3419,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 +3434,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 +3459,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 +3506,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 +3534,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 +3563,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 +3603,7 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", + "sp-debug-derive", "sp-inherents", "sp-io", "sp-runtime", @@ -3497,45 +3618,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 +3675,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 +3690,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 +3699,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 +3895,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3828,21 +3952,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 +3986,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 +4110,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 +4259,7 @@ dependencies = [ "rustls-native-certs", "tokio", "tokio-rustls", + "webpki-roots", ] [[package]] @@ -4282,6 +4406,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 +4575,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 +4632,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 +4714,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 +4736,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 +4748,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 +4770,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nis", "pallet-nomination-pools", @@ -4638,7 +4797,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 +4835,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 +4868,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 +4925,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,44 +4953,32 @@ dependencies = [ "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.16.0", - "parking_lot 0.12.1", + "multiaddr", "pin-project", - "smallvec", ] [[package]] -name = "libp2p-core" -version = "0.38.0" +name = "libp2p-allow-block-list" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures 0.3.28", - "futures-timer", - "instant", - "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", + "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", - "zeroize", ] [[package]] @@ -4845,7 +4994,7 @@ dependencies = [ "instant", "libp2p-identity", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "multistream-select", "once_cell", @@ -4862,12 +5011,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 +5025,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 +5054,7 @@ dependencies = [ "bs58", "ed25519-dalek", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", @@ -4915,9 +5065,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 +5077,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 +5093,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 +5114,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", @@ -4976,37 +5127,19 @@ dependencies = [ ] [[package]] -name = "libp2p-mplex" -version = "0.38.0" +name = "libp2p-noise" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ - "asynchronous-codec", "bytes", + "curve25519-dalek 3.2.0", "futures 0.3.28", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "log", - "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "unsigned-varint", -] - -[[package]] -name = "libp2p-noise" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" -dependencies = [ - "bytes", - "curve25519-dalek 3.2.0", - "futures 0.3.28", - "libp2p-core 0.38.0", - "log", - "once_cell", - "prost", - "prost-build", + "once_cell", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", "snow", @@ -5018,14 +5151,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 +5168,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 +5190,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 +5238,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 +5260,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 +5273,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 +5287,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 +5298,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 +5318,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 +5337,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", @@ -5344,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", @@ -5454,6 +5585,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" @@ -5492,6 +5632,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" @@ -5565,6 +5711,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" @@ -5641,7 +5796,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", @@ -5660,7 +5815,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", @@ -5805,7 +5960,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", @@ -5846,6 +6001,7 @@ version = "0.6.0" dependencies = [ "ethereum", "parity-scale-codec", + "scale-info", "sp-api", "sp-io", "sp-runtime", @@ -5907,24 +6063,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" @@ -5979,7 +6117,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", ] @@ -6261,7 +6401,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]] @@ -6276,14 +6425,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", ] @@ -6341,9 +6508,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", @@ -6358,12 +6525,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", @@ -6384,7 +6550,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", @@ -6403,7 +6569,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", @@ -6417,7 +6583,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", @@ -6431,14 +6597,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", @@ -6455,8 +6621,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", ] @@ -6466,8 +6632,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", ] @@ -6484,7 +6650,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", @@ -6499,7 +6665,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", @@ -6515,7 +6681,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", @@ -6531,7 +6697,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", @@ -6545,7 +6711,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", @@ -6558,7 +6724,7 @@ dependencies = [ "scale-info", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", + "sp-core", "sp-io", "sp-runtime", "sp-session", @@ -6569,7 +6735,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", @@ -6589,7 +6755,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", @@ -6604,7 +6770,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", @@ -6618,7 +6784,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", @@ -6637,7 +6803,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", @@ -6680,7 +6846,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", @@ -6755,7 +6921,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", @@ -6800,7 +6966,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", @@ -6817,9 +6983,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#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" dependencies = [ "bitflags 1.3.2", + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -6839,7 +7006,7 @@ dependencies = [ "sp-runtime", "sp-std", "wasm-instrument 0.4.0", - "wasmi 0.20.0", + "wasmi 0.28.0", "wasmparser-nostd", ] @@ -6860,7 +7027,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#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -6873,17 +7040,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#3cf04f2d82a9305bf2e0bd74886c27c1c60c287e" 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", @@ -6904,7 +7071,7 @@ dependencies = [ "assert_matches", "frame-support", "frame-system", - "hex-literal 0.4.1", + "hex-literal", "libsecp256k1", "pallet-balances", "parity-scale-codec", @@ -6943,7 +7110,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", @@ -6961,7 +7128,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", @@ -6984,7 +7151,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", @@ -6997,7 +7164,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", @@ -7015,9 +7182,8 @@ 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", @@ -7063,7 +7229,7 @@ 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", @@ -7073,6 +7239,7 @@ dependencies = [ "frame-support", "frame-system", "hex", + "hex-literal", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -7087,7 +7254,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", @@ -7104,7 +7271,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "num_enum", + "num_enum 0.5.11", "pallet-assets", "pallet-balances", "pallet-evm", @@ -7124,7 +7291,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", ] @@ -7132,7 +7299,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", @@ -7148,7 +7315,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "num_enum", + "num_enum 0.5.11", "pallet-balances", "pallet-dapps-staking", "pallet-evm", @@ -7167,7 +7334,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", @@ -7177,7 +7344,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", @@ -7186,7 +7353,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", @@ -7195,7 +7362,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", @@ -7204,7 +7371,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", @@ -7219,9 +7386,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", @@ -7239,13 +7406,14 @@ dependencies = [ name = "pallet-evm-precompile-substrate-ecdsa" version = "1.2.2" dependencies = [ + "assert_matches", "derive_more", "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", @@ -7263,13 +7431,14 @@ dependencies = [ name = "pallet-evm-precompile-xcm" version = "0.9.0" dependencies = [ + "assert_matches", "derive_more", "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", @@ -7298,9 +7467,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", @@ -7317,7 +7486,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", @@ -7335,7 +7504,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", @@ -7358,7 +7527,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", @@ -7374,7 +7543,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", @@ -7394,7 +7563,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", @@ -7411,7 +7580,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", @@ -7425,7 +7594,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", @@ -7439,10 +7608,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", @@ -7459,7 +7647,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", @@ -7475,7 +7663,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", @@ -7491,7 +7679,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", @@ -7508,7 +7696,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", @@ -7528,7 +7716,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", @@ -7539,7 +7727,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", @@ -7556,7 +7744,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", @@ -7580,7 +7768,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", @@ -7597,7 +7785,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", @@ -7612,7 +7800,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", @@ -7630,7 +7818,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", @@ -7645,7 +7833,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", @@ -7664,7 +7852,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", @@ -7681,7 +7869,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", @@ -7702,7 +7890,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", @@ -7718,7 +7906,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", @@ -7732,7 +7920,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", @@ -7755,18 +7943,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", @@ -7775,7 +7963,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", @@ -7784,7 +7972,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", @@ -7801,8 +7989,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", @@ -7815,7 +8004,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", @@ -7833,7 +8022,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", @@ -7852,7 +8041,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", @@ -7868,7 +8057,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", @@ -7884,7 +8073,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", @@ -7896,7 +8085,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", @@ -7913,7 +8102,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", @@ -7929,7 +8118,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", @@ -7944,7 +8133,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", @@ -8002,8 +8191,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", @@ -8023,8 +8212,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", @@ -8067,7 +8256,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", @@ -8189,6 +8378,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" @@ -8341,8 +8536,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]] @@ -8365,10 +8570,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", @@ -8380,8 +8586,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", @@ -8394,8 +8600,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", @@ -8417,8 +8623,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", @@ -8438,15 +8644,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", @@ -8459,6 +8665,7 @@ dependencies = [ "sp-core", "sp-io", "sp-keyring", + "sp-maybe-compressed-blob", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -8466,8 +8673,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", @@ -8508,8 +8715,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", @@ -8530,8 +8737,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", @@ -8542,8 +8749,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", @@ -8567,8 +8774,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", @@ -8581,8 +8788,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", @@ -8601,8 +8808,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", @@ -8624,8 +8831,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", @@ -8642,8 +8849,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", @@ -8671,8 +8878,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", @@ -8692,8 +8899,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", @@ -8711,8 +8918,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", @@ -8726,8 +8933,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", @@ -8746,8 +8953,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", @@ -8761,8 +8968,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", @@ -8778,8 +8985,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", @@ -8797,8 +9004,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", @@ -8814,8 +9021,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", @@ -8832,12 +9039,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", @@ -8849,27 +9054,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", @@ -8882,10 +9080,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", @@ -8899,8 +9126,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", @@ -8917,8 +9144,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", @@ -8936,9 +9163,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", @@ -8958,8 +9186,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", @@ -8970,19 +9198,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", @@ -8991,8 +9218,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", @@ -9014,8 +9241,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", @@ -9047,8 +9274,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", @@ -9070,8 +9297,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", @@ -9087,27 +9314,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", @@ -9129,8 +9358,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", @@ -9161,8 +9390,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", @@ -9173,7 +9402,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", @@ -9183,6 +9412,7 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", @@ -9193,6 +9423,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -9201,6 +9432,7 @@ dependencies = [ "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -9214,7 +9446,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", @@ -9226,6 +9459,7 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -9251,8 +9485,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", @@ -9297,8 +9531,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", @@ -9311,8 +9545,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", @@ -9323,8 +9557,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", @@ -9337,6 +9571,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-message-queue", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -9367,15 +9602,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", @@ -9476,8 +9711,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", @@ -9497,8 +9732,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", @@ -9556,6 +9791,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" @@ -9571,10 +9812,10 @@ dependencies = [ "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", @@ -9591,7 +9832,7 @@ dependencies = [ name = "precompile-utils-macro" version = "0.1.0" dependencies = [ - "num_enum", + "num_enum 0.5.11", "proc-macro2", "quote", "sha3", @@ -9638,6 +9879,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" @@ -9654,11 +9905,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", @@ -9703,6 +9953,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" @@ -9728,21 +9989,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", @@ -9772,7 +10033,7 @@ dependencies = [ "log", "multimap", "petgraph", - "prettyplease", + "prettyplease 0.1.25", "prost", "prost-types", "regex", @@ -9781,19 +10042,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" @@ -9840,6 +10088,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" @@ -10081,9 +10342,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", @@ -10130,22 +10391,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags 1.3.2", - "libc", - "mach", - "winapi", -] +name = "regex-syntax" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" [[package]] name = "resolv-conf" @@ -10163,11 +10412,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" @@ -10216,9 +10475,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", @@ -10226,8 +10485,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", @@ -10237,7 +10496,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", @@ -10255,6 +10514,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -10275,7 +10535,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", @@ -10312,8 +10572,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", @@ -10570,7 +10830,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", @@ -10581,7 +10841,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", @@ -10589,6 +10849,7 @@ dependencies = [ "ip_network", "libp2p", "log", + "multihash 0.17.0", "parity-scale-codec", "prost", "prost-build", @@ -10609,7 +10870,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", @@ -10632,7 +10893,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", @@ -10647,7 +10908,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", @@ -10666,25 +10927,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", @@ -10717,7 +10978,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", @@ -10736,6 +10997,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-statement-store", "sp-storage", "substrate-prometheus-endpoint", ] @@ -10743,7 +11005,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", @@ -10769,12 +11031,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", @@ -10794,7 +11056,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", @@ -10823,13 +11085,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", @@ -10842,7 +11103,6 @@ dependencies = [ "sc-keystore", "sc-telemetry", "scale-info", - "schnorrkel", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -10850,7 +11110,6 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -10862,7 +11121,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", @@ -10884,9 +11143,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", @@ -10919,7 +11179,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", @@ -10938,7 +11198,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", @@ -10951,7 +11211,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", @@ -10991,7 +11251,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", @@ -11011,7 +11271,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", @@ -11034,13 +11294,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", @@ -11052,39 +11311,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", @@ -11102,7 +11346,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", @@ -11118,10 +11362,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", @@ -11133,7 +11376,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", @@ -11163,6 +11406,7 @@ dependencies = [ "serde", "serde_json", "smallvec", + "snow", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -11177,11 +11421,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", @@ -11197,7 +11442,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", @@ -11205,7 +11450,7 @@ dependencies = [ "bytes", "futures 0.3.28", "futures-timer", - "libp2p", + "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", @@ -11225,7 +11470,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", @@ -11244,11 +11489,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", @@ -11266,9 +11512,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", @@ -11300,7 +11547,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", @@ -11320,7 +11567,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", @@ -11351,20 +11598,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", @@ -11373,7 +11623,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", @@ -11396,6 +11646,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", + "sp-statement-store", "sp-version", "tokio", ] @@ -11403,7 +11654,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", @@ -11422,7 +11673,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", @@ -11437,7 +11688,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", @@ -11463,7 +11714,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", @@ -11529,7 +11780,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", @@ -11540,7 +11791,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", @@ -11556,7 +11807,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", @@ -11575,7 +11826,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", @@ -11594,7 +11845,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", @@ -11613,7 +11864,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", @@ -11644,18 +11895,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", @@ -11682,7 +11933,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", @@ -11696,7 +11947,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", @@ -11822,10 +12073,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", ] @@ -11944,6 +12209,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" @@ -12025,7 +12299,7 @@ dependencies = [ [[package]] name = "shibuya-runtime" -version = "5.14.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -12046,7 +12320,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", @@ -12094,7 +12368,6 @@ dependencies = [ "pallet-proxy", "pallet-scheduler", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12134,7 +12407,7 @@ dependencies = [ [[package]] name = "shiden-runtime" -version = "5.13.0" +version = "5.15.0" dependencies = [ "array-bytes 6.1.0", "astar-primitives", @@ -12155,7 +12428,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", @@ -12194,7 +12467,6 @@ dependencies = [ "pallet-multisig", "pallet-proxy", "pallet-session", - "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12255,6 +12527,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" @@ -12323,8 +12605,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", @@ -12411,13 +12693,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", @@ -12429,7 +12713,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", @@ -12437,13 +12721,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", @@ -12456,7 +12740,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", @@ -12470,7 +12754,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", @@ -12483,7 +12767,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", @@ -12495,7 +12779,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", @@ -12513,7 +12797,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", @@ -12528,7 +12812,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", @@ -12546,10 +12830,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", @@ -12557,7 +12840,6 @@ dependencies = [ "sp-application-crypto", "sp-consensus", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -12569,7 +12851,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", @@ -12588,7 +12870,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", @@ -12606,7 +12888,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", @@ -12615,29 +12897,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", @@ -12650,6 +12919,7 @@ dependencies = [ "merlin", "parity-scale-codec", "parking_lot 0.12.1", + "paste", "primitive-types", "rand 0.8.5", "regex", @@ -12674,7 +12944,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", @@ -12688,18 +12958,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", @@ -12708,17 +12978,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", @@ -12729,7 +12999,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", @@ -12744,7 +13014,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", @@ -12753,6 +13023,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", + "rustversion", "secp256k1", "sp-core", "sp-externalities", @@ -12769,7 +13040,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", @@ -12780,14 +13051,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", @@ -12797,16 +13065,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", @@ -12824,7 +13103,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", @@ -12838,7 +13117,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", @@ -12848,7 +13127,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", @@ -12858,7 +13137,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", @@ -12868,7 +13147,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", @@ -12890,7 +13169,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", @@ -12908,19 +13187,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", @@ -12934,10 +13213,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", @@ -12946,7 +13226,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", @@ -12963,15 +13243,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", @@ -12984,7 +13282,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", @@ -12999,7 +13297,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", @@ -13011,7 +13309,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", @@ -13020,7 +13318,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", @@ -13036,11 +13334,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", @@ -13059,7 +13357,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", @@ -13076,18 +13374,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", @@ -13101,7 +13399,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", @@ -13125,6 +13423,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" @@ -13132,7 +13441,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]] @@ -13291,7 +13610,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", ] @@ -13299,7 +13618,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", @@ -13318,7 +13637,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", @@ -13330,7 +13649,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", @@ -13343,7 +13662,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", @@ -13362,7 +13681,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", @@ -13371,7 +13690,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml", + "toml 0.7.6", "walkdir", "wasm-opt", ] @@ -13688,6 +14007,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" @@ -13735,11 +14065,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" @@ -13748,6 +14093,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78" dependencies = [ "indexmap 2.0.0", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -13765,11 +14112,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", @@ -13839,8 +14186,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", @@ -13850,14 +14197,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]] @@ -13991,7 +14338,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", @@ -14022,7 +14369,7 @@ dependencies = [ "sp-version", "sp-weights", "substrate-rpc-client", - "zstd", + "zstd 0.12.3+zstd.1.5.2", ] [[package]] @@ -14351,9 +14698,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", @@ -14367,9 +14714,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", @@ -14379,15 +14726,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]] @@ -14418,13 +14764,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", ] @@ -14439,9 +14785,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" @@ -14454,25 +14800,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", @@ -14480,18 +14826,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", @@ -14499,7 +14845,7 @@ dependencies = [ "indexmap 1.9.3", "libc", "log", - "object 0.29.0", + "object 0.30.4", "once_cell", "paste", "psm", @@ -14512,26 +14858,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", @@ -14539,16 +14885,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", @@ -14556,27 +14902,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", @@ -14586,18 +14948,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", @@ -14605,36 +14967,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", @@ -14644,21 +15006,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", @@ -14776,7 +15138,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", @@ -14788,11 +15150,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", @@ -14916,8 +15278,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", @@ -14928,7 +15290,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", @@ -14946,6 +15308,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -14970,7 +15333,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", @@ -15008,8 +15371,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", @@ -15100,21 +15463,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" @@ -15366,8 +15714,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", @@ -15382,8 +15730,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", @@ -15397,14 +15745,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", @@ -15423,19 +15772,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", @@ -15446,6 +15795,7 @@ dependencies = [ "sp-io", "sp-std", "xcm", + "xcm-builder", "xcm-executor", ] @@ -15467,6 +15817,7 @@ dependencies = [ "pallet-contracts-primitives", "pallet-dapps-staking", "pallet-insecure-randomness-collective-flip", + "pallet-message-queue", "pallet-proxy", "pallet-timestamp", "pallet-utility", @@ -15494,12 +15845,12 @@ dependencies = [ name = "xcm-tools" version = "0.6.0" dependencies = [ + "astar-primitives", "clap", "cumulus-primitives-core", "hex", "polkadot-parachain", "polkadot-primitives", - "regex", "sp-core", "sp-runtime", "substrate-build-script-utils", @@ -15568,7 +15919,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]] @@ -15581,6 +15941,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 f0d46ab663..566fadbe41 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 "] @@ -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 } @@ -68,7 +68,7 @@ hex = { version = "0.4.3", 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" @@ -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" } @@ -91,180 +90,181 @@ 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-message-queue = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } # 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 } +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) -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) @@ -320,5 +320,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" } 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/bin/collator/res/astar.json b/bin/collator/res/astar.json index 596118fe0d..8eae801a4c 100644 --- a/bin/collator/res/astar.json +++ b/bin/collator/res/astar.json @@ -3,11 +3,12 @@ "id": "astar", "chainType": "Live", "bootNodes": [ - "/dnsaddr/bootnode.astar.network/p2p/12D3KooWMaG4prEjqt1C6Mfas8LCFs31f5k11jw4nRuV52KR3yaB", - "/ip4/51.91.105.142/tcp/30333/ws/p2p/12D3KooWGrSwcPyA5V9qCR4RiiXZ7ErERiZ6jnpp1PhjYgxP8qSL", - "/ip4/35.197.38.107/tcp/30333/ws/p2p/12D3KooWHV4YxifTpBkLWPPaF8EfoMSXeGNWWxXqUokGsBGxwioK", - "/dns/wss-bootnode-02.astar.network/tcp/443/wss/p2p/12D3KooWGrSwcPyA5V9qCR4RiiXZ7ErERiZ6jnpp1PhjYgxP8qSL", - "/dns/wss-bootnode-03.astar.network/tcp/443/wss/p2p/12D3KooWHV4YxifTpBkLWPPaF8EfoMSXeGNWWxXqUokGsBGxwioK", + "/ip4/109.238.14.102/tcp/30333/ws/p2p/12D3KooWPH9bkXRkPcHGKd7DSgYfLLVE1Cw7QNr2M4kKwdVwGZXN", + "/ip4/199.85.208.179/tcp/30333/ws/p2p/12D3KooWMwrAXhSuzCrtiwfVQuB4oLAZj3CLxVzMrqBJB4GKjnQa", + "/ip4/131.153.79.50/tcp/30333/ws/p2p/12D3KooWB2XY9Uw1ZR8qtD5DQ4TKivJkQdqM5c6hyY9ixSDAASBa", + "/dns/bootnode-01.astar.network/tcp/443/wss/p2p/12D3KooWPH9bkXRkPcHGKd7DSgYfLLVE1Cw7QNr2M4kKwdVwGZXN", + "/dns/bootnode-02.astar.network/tcp/443/wss/p2p/12D3KooWMwrAXhSuzCrtiwfVQuB4oLAZj3CLxVzMrqBJB4GKjnQa", + "/dns/bootnode-03.astar.network/tcp/443/wss/p2p/12D3KooWB2XY9Uw1ZR8qtD5DQ4TKivJkQdqM5c6hyY9ixSDAASBa", "/dns4/astar-bootnode-1-tls.p2p.onfinality.io/tcp/443/wss/p2p/12D3KooWERrQFE8ss7zYfcHp8ULVCc1N7gur7GqZ8ESuZB1Nmioh" ], "telemetryEndpoints": null, diff --git a/bin/collator/res/astar.raw.json b/bin/collator/res/astar.raw.json index 41fbebc793..475cc7e0f7 100644 --- a/bin/collator/res/astar.raw.json +++ b/bin/collator/res/astar.raw.json @@ -3,11 +3,12 @@ "id": "astar", "chainType": "Live", "bootNodes": [ - "/dnsaddr/bootnode.astar.network/p2p/12D3KooWMaG4prEjqt1C6Mfas8LCFs31f5k11jw4nRuV52KR3yaB", - "/ip4/51.91.105.142/tcp/30333/ws/p2p/12D3KooWGrSwcPyA5V9qCR4RiiXZ7ErERiZ6jnpp1PhjYgxP8qSL", - "/ip4/35.197.38.107/tcp/30333/ws/p2p/12D3KooWHV4YxifTpBkLWPPaF8EfoMSXeGNWWxXqUokGsBGxwioK", - "/dns/wss-bootnode-02.astar.network/tcp/443/wss/p2p/12D3KooWGrSwcPyA5V9qCR4RiiXZ7ErERiZ6jnpp1PhjYgxP8qSL", - "/dns/wss-bootnode-03.astar.network/tcp/443/wss/p2p/12D3KooWHV4YxifTpBkLWPPaF8EfoMSXeGNWWxXqUokGsBGxwioK", + "/ip4/109.238.14.102/tcp/30333/ws/p2p/12D3KooWPH9bkXRkPcHGKd7DSgYfLLVE1Cw7QNr2M4kKwdVwGZXN", + "/ip4/199.85.208.179/tcp/30333/ws/p2p/12D3KooWMwrAXhSuzCrtiwfVQuB4oLAZj3CLxVzMrqBJB4GKjnQa", + "/ip4/131.153.79.50/tcp/30333/ws/p2p/12D3KooWB2XY9Uw1ZR8qtD5DQ4TKivJkQdqM5c6hyY9ixSDAASBa", + "/dns/bootnode-01.astar.network/tcp/443/wss/p2p/12D3KooWPH9bkXRkPcHGKd7DSgYfLLVE1Cw7QNr2M4kKwdVwGZXN", + "/dns/bootnode-02.astar.network/tcp/443/wss/p2p/12D3KooWMwrAXhSuzCrtiwfVQuB4oLAZj3CLxVzMrqBJB4GKjnQa", + "/dns/bootnode-03.astar.network/tcp/443/wss/p2p/12D3KooWB2XY9Uw1ZR8qtD5DQ4TKivJkQdqM5c6hyY9ixSDAASBa", "/dns4/astar-bootnode-1-tls.p2p.onfinality.io/tcp/443/wss/p2p/12D3KooWERrQFE8ss7zYfcHp8ULVCc1N7gur7GqZ8ESuZB1Nmioh" ], "telemetryEndpoints": null, diff --git a/bin/collator/res/shiden.json b/bin/collator/res/shiden.json index dd7e2ebb37..9decaadd9b 100644 --- a/bin/collator/res/shiden.json +++ b/bin/collator/res/shiden.json @@ -3,11 +3,12 @@ "id": "shiden", "chainType": "Live", "bootNodes": [ - "/ip4/54.64.145.3/tcp/30333/ws/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", - "/ip4/54.38.192.54/tcp/30333/ws/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS", - "/ip4/34.168.164.206/tcp/30333/p2p/12D3KooWAQhseqYAL3NfqS38151wVbABeogWB3AbfnzvBUic2ozp", - "/dns/wss-bootnode-01.shiden.astar.network/tcp/443/wss/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", - "/dns/wss-bootnode-02.shiden.astar.network/tcp/443/wss/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS" + "/ip4/199.85.208.173/tcp/30333/ws/p2p/12D3KooWFPzN2cH31unDY8Wx7x2XpnsYBJWfFJNL9HGLida1dZY1", + "/ip4/51.89.41.58/tcp/30333/ws/p2p/12D3KooWJwbUzXmA46QA71UkzgVnvSd9Nx4HhY48HLCwWcHYiC9d", + "/ip4/131.153.79.58/tcp/30333/ws/p2p/12D3KooWCzR5i4pYhc1SXEEwViasCmn8HkTwo1zK7h8TiUUp2eLX", + "/dns/bootnode-01.shiden.astar.network/tcp/443/wss/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", + "/dns/bootnode-02.shiden.astar.network/tcp/443/wss/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS", + "/dns/bootnode-03.shiden.astar.network/tcp/443/wss/p2p/12D3KooWCzR5i4pYhc1SXEEwViasCmn8HkTwo1zK7h8TiUUp2eLX" ], "telemetryEndpoints": null, "protocolId": "shiden", diff --git a/bin/collator/res/shiden.raw.json b/bin/collator/res/shiden.raw.json index 1df3665bdb..9d47524baf 100644 --- a/bin/collator/res/shiden.raw.json +++ b/bin/collator/res/shiden.raw.json @@ -3,11 +3,12 @@ "id": "shiden", "chainType": "Live", "bootNodes": [ - "/ip4/54.64.145.3/tcp/30333/ws/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", - "/ip4/54.38.192.54/tcp/30333/ws/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS", - "/ip4/34.168.164.206/tcp/30333/p2p/12D3KooWAQhseqYAL3NfqS38151wVbABeogWB3AbfnzvBUic2ozp", - "/dns/wss-bootnode-01.shiden.astar.network/tcp/443/wss/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", - "/dns/wss-bootnode-02.shiden.astar.network/tcp/443/wss/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS" + "/ip4/199.85.208.173/tcp/30333/ws/p2p/12D3KooWFPzN2cH31unDY8Wx7x2XpnsYBJWfFJNL9HGLida1dZY1", + "/ip4/51.89.41.58/tcp/30333/ws/p2p/12D3KooWJwbUzXmA46QA71UkzgVnvSd9Nx4HhY48HLCwWcHYiC9d", + "/ip4/131.153.79.58/tcp/30333/ws/p2p/12D3KooWCzR5i4pYhc1SXEEwViasCmn8HkTwo1zK7h8TiUUp2eLX", + "/dns/bootnode-01.shiden.astar.network/tcp/443/wss/p2p/12D3KooWDYfspdMj1tQJZuiecmKKaQjGuSX2cy5rExtqcMqmiNrR", + "/dns/bootnode-02.shiden.astar.network/tcp/443/wss/p2p/12D3KooWAgdZ27WhBzLRinaE7iTR1pXxKTsSJniXYu1xAEJD7LzS", + "/dns/bootnode-03.shiden.astar.network/tcp/443/wss/p2p/12D3KooWCzR5i4pYhc1SXEEwViasCmn8HkTwo1zK7h8TiUUp2eLX" ], "telemetryEndpoints": null, "protocolId": "shiden", 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/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 3597f6278f..ad7ae3971c 100644 --- a/bin/collator/src/local/service.rs +++ b/bin/collator/src/local/service.rs @@ -79,17 +79,11 @@ pub fn new_partial( >, sc_consensus_grandpa::LinkHalf, Option, - Arc>, + Arc>, ), >, ServiceError, > { - if config.keystore_remote.is_some() { - return Err(ServiceError::Other( - "Remote Keystores are not supported.".to_string(), - )); - } - let telemetry = config .telemetry_endpoints .clone() @@ -100,12 +94,8 @@ pub fn new_partial( Ok((worker, telemetry)) }) .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::( @@ -135,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 { @@ -208,10 +195,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(), @@ -268,7 +257,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(), @@ -368,7 +357,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 +400,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 +420,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 }; @@ -501,10 +490,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(), @@ -540,7 +531,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(), @@ -630,7 +621,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 +664,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 +684,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..f8c0816080 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}; @@ -155,7 +155,7 @@ pub fn new_partial( >, Option, Option, - Arc>, + Arc>, ), >, sc_service::Error, @@ -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::( @@ -242,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()); @@ -382,7 +376,7 @@ where >, >, Arc>, - SyncCryptoStorePtr, + KeystorePtr, bool, ) -> Result>, sc_service::Error>, { @@ -391,6 +385,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(); @@ -414,6 +409,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(), @@ -441,7 +437,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(), @@ -527,7 +523,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, @@ -556,8 +552,8 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service, - params.keystore_container.sync_keystore(), + sync_service.clone(), + params.keystore_container.keystore(), force_authoring, )?; @@ -576,6 +572,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 +586,7 @@ where relay_chain_slot_duration, import_queue: import_queue_service, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_full_node(params)?; @@ -698,7 +696,7 @@ where >, >, Arc>, - SyncCryptoStorePtr, + KeystorePtr, bool, ) -> Result>, sc_service::Error>, { @@ -707,6 +705,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(); @@ -730,6 +729,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(), @@ -778,7 +778,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(), @@ -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, @@ -903,8 +903,8 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service, - params.keystore_container.sync_keystore(), + sync_service.clone(), + params.keystore_container.keystore(), force_authoring, )?; @@ -923,6 +923,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 +937,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/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 09d292102d..5516b1cc25 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,8 +46,9 @@ 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}; +use moonbeam_rpc_txpool::{TxPool as MoonbeamTxPool, TxPoolServer}; use astar_primitives::*; @@ -66,22 +68,16 @@ 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::DatabaseSettings { + &fc_db::kv::DatabaseSettings { source: fc_db::DatabaseSource::RocksDb { path, cache_size: 0, @@ -107,7 +103,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. @@ -165,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 { @@ -299,16 +295,19 @@ where fee_history_limit, // Allow 10x max allowed weight for non-transactional calls 10, + None, ) .into_rpc(), )?; 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, @@ -333,5 +332,7 @@ where .into_rpc(), )?; + io.merge(tx_pool.into_rpc())?; + Ok(io) } 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>, } diff --git a/bin/xcm-tools/Cargo.toml b/bin/xcm-tools/Cargo.toml index ac987d6dc3..3b90bc2df1 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"] } @@ -24,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 ae0c072898..8bbd3cbe4f 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 Account32Hash 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), + /// 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, @@ -61,38 +57,53 @@ 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 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], - /// NetworkId of the AccountId32 - if not provided, will be set to `Any` + /// Public key (SS58 or H160) in hex format. Must be either 32 or 20 bytes long. #[clap(short, long)] - pub network_id: Option, + pub account_key: AccountWrapper, } -/// 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(), - ); - } +#[derive(Debug, Clone, Copy)] +pub enum AccountWrapper { + SS58([u8; 32]), + H160([u8; 20]), +} - 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."); +impl std::str::FromStr for AccountWrapper { + type Err = String; - TryInto::<[u8; 32]>::try_into(decoded_hex) - .map_err(|_| "Failed to create [u8; 32] array from received account Id string.".into()) + 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 { + let account = hex::decode(rest).expect("Ensured in previous check it's hex; QED"); + if rest.len() == 40 { + Ok(AccountWrapper::H160( + account + .try_into() + .expect("Ensured length in previous check; QED"), + )) + } else if rest.len() == 64 { + 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()) + } + } + } 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 7bbc86793f..9ad9fa8458 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; @@ -43,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, @@ -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::RemoteAccount(cmd)) => { let mut sender_multilocation = MultiLocation::parent(); if let Some(parachain_id) = cmd.parachain_id { @@ -84,24 +75,36 @@ pub fn run() -> Result<(), Error> { .expect("infallible, short sequence"); } - sender_multilocation - .append_with(X1(AccountId32 { - network, - id: cmd.account_id_32, - })) - .expect("infallible, short sequence"); - - // Not important for the functionality, totally redundant - struct AnyNetwork; - impl Get> for AnyNetwork { - fn get() -> Option { - None + 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 = - 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 => {} } diff --git a/chain-extensions/pallet-assets/src/lib.rs b/chain-extensions/pallet-assets/src/lib.rs index f4ff4695e9..5c7de57c9f 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::{ @@ -91,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, @@ -362,7 +365,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); env.write(&name.encode(), false, None)?; } AssetsFunc::MetadataSymbol => { @@ -371,7 +374,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); env.write(&symbol.encode(), false, None)?; } AssetsFunc::MetadataDecimals => { @@ -380,7 +383,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); 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 7f9231ac86..84b8dd2994 100644 --- a/chain-extensions/xvm/src/lib.rs +++ b/chain-extensions/xvm/src/lib.rs @@ -20,7 +20,7 @@ use astar_primitives::xvm::{Context, VmId, XvmCall}; use frame_support::dispatch::Encode; -use pallet_contracts::chain_extension::{ChainExtension, Environment, Ext, InitState, RetVal}; +use pallet_contracts::{chain_extension::{ChainExtension, Environment, Ext, InitState, RetVal}, Origin}; use sp_runtime::DispatchError; use sp_std::marker::PhantomData; use xvm_chain_extension_types::{XvmCallArgs, XvmExecutionResult}; @@ -73,7 +73,17 @@ where // So we will charge a 32KB dummy value as a temporary replacement. let charged_weight = env.charge_weight(weight_limit.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" + ); + // TODO: expand XvmErrors with BadOrigin + 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/block-reward/src/mock.rs b/pallets/block-reward/src/mock.rs index d2ded0fbdd..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; @@ -101,6 +105,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + 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..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; @@ -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/contracts-migration/src/lib.rs b/pallets/contracts-migration/src/lib.rs index 5596b9a819..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: Determinism::Deterministic, + determinism: Determinism::Enforced, }) }); @@ -294,10 +294,10 @@ 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::Deterministic, + value.determinism == Determinism::Enforced, "All pre-existing codes need to be deterministic." ); } 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 56eb68737b..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; @@ -111,6 +111,10 @@ impl pallet_balances::Config for Runtime { type MaxLocks = (); type MaxReserves = (); type ReserveIdentifier = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } const MAGIC_NUMBER: u16 = 0xff50; @@ -269,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 fbe027910a..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; @@ -122,6 +122,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -193,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/lib.rs b/pallets/ethereum-checked/src/lib.rs index c627f141b8..506bcf5fdd 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,6 +216,8 @@ impl Pallet { is_transactional: true, }, tx_data.into(), + weight_limit, + proof_size_base_cost, ) // Gas limit validation. The fee payment has been validated as the tx is `checked`. .validate_common() @@ -229,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/ethereum-checked/src/mock.rs b/pallets/ethereum-checked/src/mock.rs index 44faf667b0..b63a34c23d 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 = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } impl pallet_timestamp::Config for TestRuntime { @@ -166,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/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..9f1f335b47 100644 --- a/pallets/pallet-xcm/src/lib.rs +++ b/pallets/pallet-xcm/src/lib.rs @@ -55,29 +55,13 @@ use frame_system::pallet_prelude::*; pub use pallet::*; use xcm_executor::{ traits::{ - ClaimAssets, DropAssets, MatchesFungible, OnResponse, VersionChangeNotifier, WeightBounds, + CheckSuspension, ClaimAssets, DropAssets, MatchesFungible, OnResponse, + VersionChangeNotifier, WeightBounds, }, 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 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; @@ -114,6 +98,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 +245,9 @@ 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 +614,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 +936,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 +958,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 +973,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 +998,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 +1113,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 +2371,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/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/pallet-xcm/src/mock.rs b/pallets/pallet-xcm/src/mock.rs index c10d2df4f1..4fb5bfcec1 100644 --- a/pallets/pallet-xcm/src/mock.rs +++ b/pallets/pallet-xcm/src/mock.rs @@ -18,9 +18,10 @@ use frame_support::{ construct_runtime, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, 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 = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } 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-xcm/src/weights.rs b/pallets/pallet-xcm/src/weights.rs index bc5c452d85..9dd9325d81 100644 --- a/pallets/pallet-xcm/src/weights.rs +++ b/pallets/pallet-xcm/src/weights.rs @@ -20,15 +20,16 @@ //! 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,398 +45,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)) + // Proof Size summary in bytes: + // 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)) + // Proof Size summary in bytes: + // 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)) } } 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/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index 143ddf8e87..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; @@ -97,6 +97,10 @@ impl pallet_balances::Config for Test { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } type AssetId = u128; diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index 0471098d8a..3c7eb308ad 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; @@ -53,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, @@ -144,7 +143,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, @@ -221,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 = @@ -234,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)?; @@ -254,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)?; @@ -297,14 +309,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()), }, )?; @@ -436,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() @@ -453,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( @@ -471,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( @@ -487,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/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 9a33b8cb78..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 { @@ -218,6 +218,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -246,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/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 55cc8e39c7..c6a371d53a 100644 --- a/precompiles/dapps-staking/src/lib.rs +++ b/precompiles/dapps-staking/src/lib.rs @@ -19,10 +19,9 @@ //! 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}; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}, @@ -71,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::(12)?; let current_era = pallet_dapps_staking::CurrentEra::::get(); @@ -79,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( @@ -91,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)?; @@ -110,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()?; @@ -128,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)?; @@ -148,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)?; @@ -171,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/mock.rs b/precompiles/dapps-staking/src/mock.rs index 3be46b8e0c..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, }; @@ -195,6 +195,10 @@ impl pallet_balances::Config for TestRuntime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = (); + type MaxFreezes = (); } pub fn precompile_address() -> H160 { @@ -249,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/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 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 7303be80dc..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 { @@ -182,6 +186,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -210,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 06a1a9f4dc..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 { @@ -182,6 +186,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -210,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/utils/src/lib.rs b/precompiles/utils/src/lib.rs index f36412a21b..1b67c7ea24 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 expected key & value data length should be provided. + #[must_use] + fn record_db_read( + &mut self, + data_length: usize, + ) -> Result<(), 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_length: usize, + ) -> Result<(), ExitError> { + self.record_cost(RuntimeHelper::::db_read_gas_cost())?; + self.record_external_cost(None, Some(data_length as u64)) + } } #[must_use] 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/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 e85ba0c29f..85f1ddf094 100644 --- a/precompiles/xcm/src/mock.rs +++ b/precompiles/xcm/src/mock.rs @@ -23,9 +23,10 @@ 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; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -220,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 { @@ -233,6 +234,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + 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 @@ -314,6 +319,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } parameter_types! { @@ -451,6 +457,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/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 231ebf8b0f..2ee025be30 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 astar_primitives::xvm::{Context, VmId, XvmCall}; use fp_evm::{PrecompileHandle, PrecompileOutput}; diff --git a/precompiles/xvm/src/mock.rs b/precompiles/xvm/src/mock.rs index 4e591f4268..6829093ebd 100644 --- a/precompiles/xvm/src/mock.rs +++ b/precompiles/xvm/src/mock.rs @@ -22,7 +22,7 @@ use super::*; use fp_evm::IsPrecompileResult; use frame_support::{ - construct_runtime, ensure, parameter_types, traits::Everything, weights::Weight, + construct_runtime, ensure, parameter_types, traits::{ConstU32, ConstU64, Everything}, weights::Weight, }; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; @@ -186,7 +186,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 { @@ -199,6 +199,10 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -227,6 +231,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = (); type OnCreate = (); type WeightInfo = (); + type GasLimitPovSizeRatio = ConstU64<4>; } struct MockXvmWithArgsCheck; diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index bdfb1b8e1a..4c8eef897c 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 d3dbb04706..f8ce3e4eb0 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}; @@ -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", @@ -281,13 +282,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 +312,122 @@ impl> ShouldExecute for AllowPaidExecWithDescendOrigi Ok(()) } - _ => return Err(()), + _ => return Err(ProcessMessageError::Unsupported), + } + } +} + +// 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 8d2b3c1298..faef681aaf 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,51 @@ 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)); +} + +// 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/astar/Cargo.toml b/runtime/astar/Cargo.toml index 2ff481ed93..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 @@ -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 } @@ -139,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", @@ -165,7 +165,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 +257,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 40584ecfe4..242a4dfd9a 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::{ @@ -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, }; @@ -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, @@ -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 { @@ -603,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(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -635,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 }>; @@ -782,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 { @@ -803,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; } @@ -821,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; @@ -844,27 +855,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 +1041,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,38 +1078,23 @@ 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, + frame_support::migrations::RemovePallet, + pallet_contracts::Migration, ); -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(()) - } -} +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1220,6 +1192,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 { @@ -1371,7 +1351,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(); @@ -1383,6 +1363,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, @@ -1395,6 +1411,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1411,7 +1429,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(); @@ -1423,6 +1441,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, @@ -1435,6 +1489,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1480,6 +1536,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 { @@ -1492,11 +1563,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, @@ -1504,9 +1571,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::Deterministic) + 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( @@ -1517,10 +1594,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/astar/src/xcm_config.rs b/runtime/astar/src/xcm_config.rs index 616aaac796..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; } @@ -310,6 +309,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/Cargo.toml b/runtime/local/Cargo.toml index cb6451ba73..d17e7d55a7 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/local/src/lib.rs b/runtime/local/src/lib.rs index 99c166aee8..9b5cffbc0f 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}, @@ -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}; @@ -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; @@ -293,6 +290,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! { @@ -541,6 +542,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 { @@ -562,6 +570,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -628,6 +637,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; @@ -641,6 +651,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! { @@ -658,6 +669,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! { @@ -789,9 +801,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 = deposit(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -810,6 +821,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; @@ -818,8 +830,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 }>; @@ -831,6 +841,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. @@ -1047,6 +1058,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; @@ -1141,6 +1157,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 { @@ -1322,7 +1346,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(); @@ -1334,6 +1358,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, @@ -1346,6 +1406,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1362,7 +1424,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(); @@ -1374,6 +1436,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, @@ -1386,6 +1484,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1431,6 +1531,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 { @@ -1443,11 +1558,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, @@ -1455,9 +1566,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::Deterministic) + 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( @@ -1468,10 +1589,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/Cargo.toml b/runtime/shibuya/Cargo.toml index bfdcbf913d..b8c8d6843b 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 @@ -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 } @@ -208,7 +207,6 @@ std = [ "pallet-xvm/std", "pallet-ethereum-checked/std", "pallet-scheduler/std", - "pallet-state-trie-migration/std", "parachain-info/std", "polkadot-parachain/std", "polkadot-primitives/std", @@ -304,7 +302,6 @@ try-runtime = [ "pallet-preimage/try-runtime", "pallet-base-fee/try-runtime", "pallet-evm/try-runtime", - "pallet-state-trie-migration/try-runtime", "pallet-ethereum-checked/try-runtime", "orml-xtokens/try-runtime", ] diff --git a/runtime/shibuya/src/lib.rs b/runtime/shibuya/src/lib.rs index d5ae642d1a..af8fc1f2fd 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::{ @@ -45,7 +46,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, }; @@ -114,7 +115,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 } @@ -165,7 +166,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, @@ -597,6 +598,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! { @@ -652,9 +657,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(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -673,6 +677,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; @@ -681,8 +686,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 }>; @@ -848,6 +851,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 { @@ -871,6 +881,7 @@ impl pallet_evm::Config for Runtime { type Timestamp = Timestamp; type OnCreate = (); type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type WeightInfo = pallet_evm::weights::SubstrateWeight; } @@ -890,6 +901,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; @@ -903,6 +915,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! { @@ -920,6 +933,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! { @@ -1032,6 +1046,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! { @@ -1227,28 +1242,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, @@ -1305,9 +1298,6 @@ construct_runtime!( Xvm: pallet_xvm = 90, Sudo: pallet_sudo = 99, - - // TODO: remove this after migration is finished - StateTrieMigration: pallet_state_trie_migration = 200, } ); @@ -1345,10 +1335,23 @@ 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, + pallet_contracts::Migration, +); + +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1448,6 +1451,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 { @@ -1599,7 +1610,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(); @@ -1611,6 +1622,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, @@ -1623,6 +1670,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1639,7 +1688,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(); @@ -1651,6 +1700,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, @@ -1663,6 +1748,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1708,6 +1795,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 { @@ -1720,11 +1822,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, @@ -1732,9 +1830,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::Deterministic) + 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( @@ -1745,10 +1853,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/xcm_config.rs b/runtime/shibuya/src/xcm_config.rs index efb107360c..a7e7fb2911 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. @@ -135,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; } @@ -247,6 +250,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/Cargo.toml b/runtime/shiden/Cargo.toml index 65499074c7..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 @@ -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 3ea2c58424..6a87d6f7e6 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::{ @@ -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, }; @@ -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 } @@ -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, @@ -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 { @@ -607,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(16, 16 * 1024); pub Schedule: pallet_contracts::Schedule = Default::default(); } @@ -628,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 }>; @@ -770,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 { @@ -791,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; } @@ -809,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; @@ -975,28 +986,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 +1031,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 +1068,23 @@ 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, + pallet_contracts::Migration, +); + +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -1183,6 +1182,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 { @@ -1334,7 +1341,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(); @@ -1346,6 +1353,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, @@ -1358,6 +1401,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or_else(|| ::config()), @@ -1374,7 +1419,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(); @@ -1386,6 +1431,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, @@ -1398,6 +1479,8 @@ impl_runtime_apis! { Vec::new(), is_transactional, validate, + weight_limit, + proof_size_base_cost, config .as_ref() .unwrap_or(::config()), @@ -1443,6 +1526,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 { @@ -1455,11 +1553,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, @@ -1467,9 +1561,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::Deterministic) + 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( @@ -1480,10 +1584,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/xcm_config.rs b/runtime/shiden/src/xcm_config.rs index 1f21f75716..ab2d7d2b90 100644 --- a/runtime/shiden/src/xcm_config.rs +++ b/runtime/shiden/src/xcm_config.rs @@ -34,12 +34,12 @@ 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, 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. @@ -135,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; } @@ -223,6 +226,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. @@ -318,6 +323,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/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); 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 d9d37f83e5..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::Deterministic, + 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 c6d5ad269d..8be1841ff6 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, 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 { @@ -140,7 +144,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>; @@ -206,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(); } @@ -245,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 }>; @@ -391,7 +392,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 +589,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..bfd62548f8 100644 --- a/tests/xcm-simulator/src/mocks/relay_chain.rs +++ b/tests/xcm-simulator/src/mocks/relay_chain.rs @@ -18,14 +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, @@ -85,6 +90,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 {} @@ -185,25 +194,58 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } 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 = frame_system::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, @@ -213,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 6f47ed74de..6665d17efc 100644 --- a/tests/xcm-simulator/src/tests/experimental.rs +++ b/tests/xcm-simulator/src/tests/experimental.rs @@ -283,14 +283,13 @@ 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, sibling_para_account_account_id(1, contract_id.clone()) ), INITIAL_BALANCE, - 100_000 )); contract_id @@ -298,11 +297,10 @@ 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, - 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 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 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, 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