From 4c47cc0ad0ff5e4c8931cc6efe38b0e85c8f62e6 Mon Sep 17 00:00:00 2001 From: Igor Papandinas <26460174+ipapandinas@users.noreply.github.com> Date: Fri, 9 Jan 2026 14:08:52 +0100 Subject: [PATCH 1/3] chore: remove local runtime --- .github/ISSUE_TEMPLATE/release_checklist.md | 1 - CONTRIBUTING.md | 2 +- Cargo.lock | 1144 +++++----- Cargo.toml | 2 - bin/collator/Cargo.toml | 3 - bin/collator/src/command.rs | 104 +- bin/collator/src/lib.rs | 2 - bin/collator/src/local/chain_spec.rs | 49 - bin/collator/src/local/mod.rs | 28 - bin/collator/src/local/service.rs | 603 ----- primitives/src/lib.rs | 2 +- runtime/local/Cargo.toml | 289 --- runtime/local/build.rs | 39 - runtime/local/src/chain_extensions.rs | 40 - runtime/local/src/genesis_config.rs | 188 -- runtime/local/src/lib.rs | 2129 ------------------ runtime/local/src/precompiles.rs | 169 -- runtime/local/src/weights/mod.rs | 20 - runtime/local/src/weights/pallet_assets.rs | 573 ----- runtime/local/src/weights/pallet_balances.rs | 187 -- tarpaulin.toml | 2 +- 21 files changed, 563 insertions(+), 5013 deletions(-) delete mode 100644 bin/collator/src/local/chain_spec.rs delete mode 100644 bin/collator/src/local/mod.rs delete mode 100644 bin/collator/src/local/service.rs delete mode 100644 runtime/local/Cargo.toml delete mode 100644 runtime/local/build.rs delete mode 100644 runtime/local/src/chain_extensions.rs delete mode 100644 runtime/local/src/genesis_config.rs delete mode 100644 runtime/local/src/lib.rs delete mode 100644 runtime/local/src/precompiles.rs delete mode 100644 runtime/local/src/weights/mod.rs delete mode 100644 runtime/local/src/weights/pallet_assets.rs delete mode 100644 runtime/local/src/weights/pallet_balances.rs diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md index e3c9803fe8..d4375adaf1 100644 --- a/.github/ISSUE_TEMPLATE/release_checklist.md +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -19,7 +19,6 @@ All the preparation specific for this release, for example - `astar-runtime` - `shiden-runtime` - `shibuya-runtime` - - `local-runtime` - `astar-collator` - `xcm-tools` (if needed) - [ ] Check Spec Version bumped for all runtimes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8b1fe4ee0c..a23f1d2133 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,7 +45,7 @@ Some notes: ### Mandatory PR Labels When submitting a Pull Request (PR), please make sure to include the necessary labels to help us categorize and prioritize your changes. PRs should contain at least one of the following mandatory labels: -- **runtime**: Use this label for changes or additions to the code that relate to runtime **(shiden, astar, shibuya, local)** +- **runtime**: Use this label for changes or additions to the code that relate to runtime **(shiden, astar, shibuya)** - **client**: PRs related to client. - **ci**: PRs related to CI (workflows). - **tests**: PRs related to xcm-simulator tests,rpc-tests or any other kind of test. diff --git a/Cargo.lock b/Cargo.lock index 21bfeffcd8..74416b3ab7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -153,7 +153,7 @@ dependencies = [ "derive_more 2.1.1", "foldhash 0.2.0", "hashbrown 0.16.1", - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "k256", "keccak-asm", @@ -189,7 +189,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -201,11 +201,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "syn-solidity", "tiny-keccak", ] @@ -222,7 +222,7 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "syn-solidity", ] @@ -339,7 +339,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -521,7 +521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -559,7 +559,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -644,7 +644,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -787,7 +787,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -799,7 +799,7 @@ checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -811,7 +811,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -875,7 +875,6 @@ dependencies = [ "frame-try-runtime", "futures 0.3.31", "jsonrpsee", - "local-runtime", "log", "moonbeam-primitives-ext", "moonbeam-rpc-debug", @@ -1343,7 +1342,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1434,7 +1433,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1506,9 +1505,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" +checksum = "7d809780667f4410e7c41b07f52439b94d2bdf8528eeedc287fa38d3b7f95d82" [[package]] name = "bech32" @@ -1519,7 +1518,7 @@ checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "hash-db", "log", @@ -1553,7 +1552,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1711,15 +1710,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.4.2", + "cpufeatures", ] [[package]] @@ -1777,7 +1777,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -1929,9 +1929,9 @@ checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" [[package]] name = "cc" -version = "1.2.50" +version = "1.2.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" dependencies = [ "find-msvc-tools", "jobserver", @@ -2087,9 +2087,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" dependencies = [ "clap_builder", "clap_derive", @@ -2097,9 +2097,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" dependencies = [ "anstream", "anstyle", @@ -2117,7 +2117,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2330,6 +2330,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "convert_case" version = "0.4.0" @@ -2655,7 +2661,7 @@ dependencies = [ [[package]] name = "cumulus-client-bootnodes" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -2681,7 +2687,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "clap", "parity-scale-codec", @@ -2698,7 +2704,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2721,7 +2727,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-client-collator", @@ -2768,7 +2774,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2800,7 +2806,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "anyhow", "async-trait", @@ -2815,7 +2821,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -2838,7 +2844,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2865,7 +2871,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2886,7 +2892,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2914,7 +2920,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.25.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-channel 1.9.0", "cumulus-client-cli", @@ -2954,7 +2960,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2971,7 +2977,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.21.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -3009,18 +3015,18 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "cumulus-pallet-xcm" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3035,7 +3041,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.21.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "approx", "bounded-collections", @@ -3061,7 +3067,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-api", "sp-consensus-aura", @@ -3070,7 +3076,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -3087,7 +3093,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3101,7 +3107,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -3111,7 +3117,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -3128,7 +3134,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3145,7 +3151,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -3173,7 +3179,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3193,7 +3199,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -3229,7 +3235,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.24.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3270,7 +3276,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-streams" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-relay-chain-interface", "futures 0.3.31", @@ -3284,7 +3290,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -3318,7 +3324,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3357,11 +3363,11 @@ checksum = "af9efde466c5d532d57efd92f861da3bdb7f61e369128ce8b4c3fe0c9de4fa4d" dependencies = [ "cc", "codespan-reporting", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", "scratch", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3372,10 +3378,10 @@ checksum = "3efb93799095bccd4f763ca07997dc39a69e5e61ab52d2c407d4988d21ce144d" dependencies = [ "clap", "codespan-reporting", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3390,10 +3396,10 @@ version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31d72ebfcd351ae404fb00ff378dfc9571827a00722c9e735c9181aec320ba0a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3436,7 +3442,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3450,7 +3456,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3461,7 +3467,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3472,7 +3478,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3511,7 +3517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3603,7 +3609,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3614,7 +3620,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3627,7 +3633,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3656,7 +3662,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "unicode-xid", ] @@ -3670,7 +3676,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.111", + "syn 2.0.114", "unicode-xid", ] @@ -3763,7 +3769,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3787,7 +3793,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.111", + "syn 2.0.114", "termcolor", "toml 0.8.23", "walkdir", @@ -3813,9 +3819,9 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" [[package]] name = "dunce" @@ -3841,7 +3847,7 @@ checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3915,7 +3921,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3989,7 +3995,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4009,7 +4015,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4029,7 +4035,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4040,7 +4046,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4205,7 +4211,7 @@ dependencies = [ [[package]] name = "ethereum-standards" version = "0.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "alloy-core", ] @@ -4304,7 +4310,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.111", + "syn 2.0.114", "toml 0.8.23", "walkdir", ] @@ -4322,7 +4328,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4348,7 +4354,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.111", + "syn 2.0.114", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -4563,7 +4569,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4648,11 +4654,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4899,9 +4905,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" [[package]] name = "fixed-hash" @@ -4974,7 +4980,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", ] @@ -5101,7 +5107,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "41.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-support-procedural", @@ -5125,7 +5131,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "49.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -5204,18 +5210,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "frame-election-provider-support" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -5232,7 +5238,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "41.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "aquamarine", "frame-support", @@ -5285,7 +5291,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -5301,7 +5307,7 @@ dependencies = [ [[package]] name = "frame-storage-access-test-runtime" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-pallet-parachain-system", "parity-scale-codec", @@ -5314,8 +5320,8 @@ dependencies = [ [[package]] name = "frame-support" -version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +version = "41.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -5356,7 +5362,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "Inflector", "cfg-expr", @@ -5370,35 +5376,35 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2506)", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "frame-system" version = "41.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cfg-if", "docify", @@ -5417,7 +5423,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -5431,7 +5437,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "parity-scale-codec", @@ -5441,7 +5447,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "parity-scale-codec", @@ -5606,7 +5612,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -5835,7 +5841,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -5844,9 +5850,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -5854,7 +5860,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -6270,7 +6276,7 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "httparse", @@ -6579,7 +6585,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6620,9 +6626,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -6837,15 +6843,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" +checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" dependencies = [ "jiff-static", "log", @@ -6856,13 +6862,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" +checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6982,7 +6988,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -7162,9 +7168,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libloading" @@ -7515,7 +7521,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -7608,13 +7614,13 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.10.0", "libc", - "redox_syscall 0.6.0", + "redox_syscall 0.7.0", ] [[package]] @@ -7791,7 +7797,7 @@ dependencies = [ "futures 0.3.31", "futures-timer", "hickory-resolver 0.25.2", - "indexmap 2.12.1", + "indexmap 2.13.0", "libc", "mockall", "multiaddr 0.17.1", @@ -7824,97 +7830,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "local-runtime" -version = "5.48.0" -dependencies = [ - "array-bytes 6.2.3", - "astar-primitives", - "dapp-staking-runtime-api", - "ethereum", - "fp-evm", - "fp-rpc", - "fp-self-contained", - "frame-benchmarking", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "log", - "moonbeam-evm-tracer", - "moonbeam-rpc-primitives-debug", - "moonbeam-rpc-primitives-txpool", - "num_enum 0.5.11", - "pallet-assets", - "pallet-aura", - "pallet-balances", - "pallet-chain-extension-assets", - "pallet-chain-extension-unified-accounts", - "pallet-collective", - "pallet-collective-proxy", - "pallet-contracts", - "pallet-dapp-staking", - "pallet-democracy", - "pallet-dynamic-evm-base-fee", - "pallet-ethereum", - "pallet-ethereum-checked", - "pallet-evm", - "pallet-evm-precompile-assets-erc20", - "pallet-evm-precompile-blake2", - "pallet-evm-precompile-bn128", - "pallet-evm-precompile-dapp-staking", - "pallet-evm-precompile-dispatch", - "pallet-evm-precompile-dispatch-lockdrop", - "pallet-evm-precompile-ed25519", - "pallet-evm-precompile-modexp", - "pallet-evm-precompile-sha3fips", - "pallet-evm-precompile-simple", - "pallet-evm-precompile-sr25519", - "pallet-evm-precompile-substrate-ecdsa", - "pallet-evm-precompile-unified-accounts", - "pallet-grandpa", - "pallet-inflation", - "pallet-insecure-randomness-collective-flip", - "pallet-membership", - "pallet-preimage", - "pallet-proxy", - "pallet-safe-mode", - "pallet-scheduler", - "pallet-static-price-provider", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury 37.0.0", - "pallet-tx-pause", - "pallet-unified-accounts", - "pallet-utility", - "pallet-vesting", - "parity-scale-codec", - "precompile-utils", - "scale-info", - "serde_json", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", -] - [[package]] name = "lock_api" version = "0.4.14" @@ -7996,7 +7911,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8008,7 +7923,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8022,7 +7937,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8033,7 +7948,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8044,7 +7959,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8216,7 +8131,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "log", @@ -8235,7 +8150,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8270,7 +8185,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8620,7 +8535,7 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.1.6", "openssl-sys", "schannel", "security-framework 2.11.1", @@ -8694,9 +8609,9 @@ dependencies = [ [[package]] name = "network-interface" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e79101e6efcffacab279462884a7eebf65ea5f4ac2cc727b60c715a9aa04722" +checksum = "4ddcb8865ad3d9950f22f42ffa0ef0aecbfbf191867b3122413602b0a360b2a6" dependencies = [ "cc", "libc", @@ -8838,7 +8753,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8942,7 +8857,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -9078,7 +8993,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -9087,6 +9002,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-probe" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" + [[package]] name = "openssl-sys" version = "0.9.111" @@ -9129,7 +9050,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43dfaf083aef571385fccfdc3a2f8ede8d0a1863160455d4f2b014d8f7d04a3f" dependencies = [ "expander", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools 0.11.0", "petgraph 0.6.5", "proc-macro-crate 3.4.0", @@ -9230,7 +9151,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9248,7 +9169,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9262,7 +9183,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9278,7 +9199,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "ethereum-standards", "frame-benchmarking", @@ -9296,7 +9217,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -9312,7 +9233,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -9327,7 +9248,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -9340,7 +9261,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9363,7 +9284,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "aquamarine", "docify", @@ -9384,7 +9305,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -9400,7 +9321,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -9419,7 +9340,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -9444,7 +9365,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9461,7 +9382,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "frame-benchmarking", @@ -9521,7 +9442,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9565,7 +9486,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9584,7 +9505,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -9621,7 +9542,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "environmental", "frame-benchmarking", @@ -9652,17 +9573,17 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "23.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "pallet-contracts-uapi" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -9673,7 +9594,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9712,7 +9633,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -9727,7 +9648,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -9764,7 +9685,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9785,7 +9706,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9798,7 +9719,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10164,7 +10085,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10182,7 +10103,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10204,7 +10125,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10220,7 +10141,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10239,7 +10160,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10273,7 +10194,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10284,7 +10205,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10300,7 +10221,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "environmental", "frame-benchmarking", @@ -10319,7 +10240,7 @@ dependencies = [ [[package]] name = "pallet-meta-tx" version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10337,7 +10258,7 @@ dependencies = [ [[package]] name = "pallet-migrations" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10356,7 +10277,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "parity-scale-codec", @@ -10368,7 +10289,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "parity-scale-codec", @@ -10379,7 +10300,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10389,7 +10310,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10407,7 +10328,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10427,7 +10348,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -10437,7 +10358,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10452,7 +10373,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10475,7 +10396,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10492,7 +10413,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10530,7 +10451,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10540,7 +10461,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "41.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10558,7 +10479,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10568,7 +10489,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "assert_matches", "frame-benchmarking", @@ -10586,7 +10507,7 @@ dependencies = [ [[package]] name = "pallet-revive" version = "0.7.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "alloy-core", "derive_more 0.99.20", @@ -10632,7 +10553,7 @@ dependencies = [ [[package]] name = "pallet-revive-fixtures" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "anyhow", "cargo_metadata 0.15.4", @@ -10646,17 +10567,17 @@ dependencies = [ [[package]] name = "pallet-revive-proc-macro" version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "pallet-revive-uapi" version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitflags 1.3.2", "pallet-revive-proc-macro", @@ -10668,7 +10589,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10681,7 +10602,7 @@ dependencies = [ [[package]] name = "pallet-safe-mode" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "pallet-balances", @@ -10695,7 +10616,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10712,7 +10633,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10733,7 +10654,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10749,7 +10670,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10766,7 +10687,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10788,7 +10709,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-ah-client" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10807,7 +10728,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-rc-client" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -10824,7 +10745,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "sp-arithmetic", @@ -10833,7 +10754,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "sp-api", @@ -10843,7 +10764,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10879,7 +10800,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10894,7 +10815,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -10912,7 +10833,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10930,7 +10851,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -10945,7 +10866,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -10961,7 +10882,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -10992,7 +10913,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -11011,7 +10932,7 @@ dependencies = [ [[package]] name = "pallet-tx-pause" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "parity-scale-codec", @@ -11047,7 +10968,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -11062,7 +10983,7 @@ dependencies = [ [[package]] name = "pallet-verify-signature" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -11077,7 +10998,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -11091,7 +11012,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -11121,7 +11042,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "20.1.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -11147,7 +11068,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-benchmarking", "frame-support", @@ -11164,7 +11085,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -11250,7 +11171,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11398,9 +11319,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "2c9eb05c21a464ea704b53158d358a31e6425db2f63a1a7312268b05fe2b75f7" dependencies = [ "memchr", "ucd-trie", @@ -11408,9 +11329,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.4" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" +checksum = "68f9dbced329c441fa79d80472764b1a2c7e57123553b8519b36663a2fb234ed" dependencies = [ "pest", "pest_generator", @@ -11418,22 +11339,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.4" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" +checksum = "3bb96d5051a78f44f43c8f712d8e810adb0ebf923fc9ed2655a7f66f63ba8ee5" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "pest_meta" -version = "2.8.4" +version = "2.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" +checksum = "602113b5b5e8621770cfd490cfd90b9f84ab29bd2b0e49ad83eb6d186cef2365" dependencies = [ "pest", "sha2 0.10.9", @@ -11446,7 +11367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.12.1", + "indexmap 2.13.0", ] [[package]] @@ -11456,7 +11377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset 0.5.7", - "indexmap 2.12.1", + "indexmap 2.13.0", ] [[package]] @@ -11486,7 +11407,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11531,7 +11452,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11549,7 +11470,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11564,7 +11485,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fatality", "futures 0.3.31", @@ -11587,7 +11508,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "fatality", @@ -11620,7 +11541,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "clap", "frame-benchmarking-cli", @@ -11644,7 +11565,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "fatality", @@ -11667,7 +11588,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -11678,12 +11599,12 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fatality", "futures 0.3.31", "futures-timer", - "indexmap 2.12.1", + "indexmap 2.13.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -11700,7 +11621,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -11714,7 +11635,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11735,7 +11656,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "always-assert", "async-trait", @@ -11758,7 +11679,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "parity-scale-codec", @@ -11776,7 +11697,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "bitvec", @@ -11808,7 +11729,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -11832,7 +11753,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "futures 0.3.31", @@ -11851,7 +11772,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "fatality", @@ -11872,7 +11793,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "polkadot-node-subsystem", @@ -11887,7 +11808,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -11909,7 +11830,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "polkadot-node-metrics", @@ -11923,7 +11844,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "futures-timer", @@ -11939,7 +11860,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fatality", "futures 0.3.31", @@ -11957,7 +11878,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -11974,7 +11895,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fatality", "futures 0.3.31", @@ -11988,7 +11909,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "fatality", @@ -12005,7 +11926,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -12033,7 +11954,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "polkadot-node-subsystem", @@ -12046,7 +11967,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cpu-time", "futures 0.3.31", @@ -12072,7 +11993,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "polkadot-node-metrics", @@ -12087,7 +12008,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bs58", "futures 0.3.31", @@ -12104,7 +12025,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -12129,7 +12050,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "20.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "bounded-vec", @@ -12153,7 +12074,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -12162,7 +12083,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -12190,7 +12111,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fatality", "futures 0.3.31", @@ -12221,7 +12142,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -12241,7 +12162,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -12257,7 +12178,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "bounded-collections", @@ -12286,7 +12207,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -12319,7 +12240,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "frame-benchmarking", @@ -12369,7 +12290,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bs58", "frame-benchmarking", @@ -12381,7 +12302,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "20.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -12429,7 +12350,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-benchmarking", @@ -12464,7 +12385,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "frame-benchmarking", @@ -12572,7 +12493,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitvec", "fatality", @@ -12592,7 +12513,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -12691,7 +12612,7 @@ dependencies = [ "polkavm-common 0.21.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -12703,7 +12624,7 @@ dependencies = [ "polkavm-common 0.24.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -12713,7 +12634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36837f6b7edfd6f4498f8d25d81da16cf03bd6992c3e56f3d477dfc90f4fefca" dependencies = [ "polkavm-derive-impl 0.21.0", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -12723,7 +12644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba0ef0f17ad81413ea1ca5b1b67553aedf5650c88269b673d3ba015c83bc2651" dependencies = [ "polkavm-derive-impl 0.24.0", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -12825,9 +12746,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd" +checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" [[package]] name = "portable-atomic-util" @@ -12902,7 +12823,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2506)", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -12938,7 +12859,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13048,7 +12969,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13059,14 +12980,14 @@ checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -13105,7 +13026,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13163,7 +13084,7 @@ dependencies = [ "prost 0.13.5", "prost-types", "regex", - "syn 2.0.111", + "syn 2.0.114", "tempfile", ] @@ -13177,7 +13098,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13190,7 +13111,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13313,9 +13234,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] @@ -13497,9 +13418,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5" +checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" dependencies = [ "bitflags 2.10.0", ] @@ -13544,7 +13465,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13732,7 +13653,7 @@ checksum = "652db34deaaa57929e10ca18e5454a32cb0efc351ae80d320334bbf907b908b3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -13748,7 +13669,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "binary-merkle-tree", "bitvec", @@ -13846,7 +13767,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "polkadot-primitives", @@ -13906,9 +13827,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.17.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -14054,9 +13975,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "log", "once_cell", @@ -14069,11 +13990,11 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.0", "rustls-pki-types", "schannel", "security-framework 3.5.1", @@ -14189,9 +14110,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "safe-mix" @@ -14232,7 +14153,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "sp-core", @@ -14243,7 +14164,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -14274,7 +14195,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "log", @@ -14295,7 +14216,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "sp-api", @@ -14310,7 +14231,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "docify", @@ -14336,18 +14257,18 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sc-cli" version = "0.53.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -14389,7 +14310,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fnv", "futures 0.3.31", @@ -14415,7 +14336,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "hash-db", "kvdb", @@ -14443,7 +14364,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -14466,7 +14387,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -14495,7 +14416,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "fork-tree", @@ -14531,7 +14452,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -14553,7 +14474,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14587,7 +14508,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -14607,7 +14528,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "fork-tree", "parity-scale-codec", @@ -14620,7 +14541,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "ahash", "array-bytes 6.2.3", @@ -14664,7 +14585,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "finality-grandpa", "futures 0.3.31", @@ -14684,7 +14605,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "assert_matches", "async-trait", @@ -14719,7 +14640,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -14742,7 +14663,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -14765,7 +14686,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.39.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "polkavm 0.24.0", "sc-allocator", @@ -14778,7 +14699,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "polkavm 0.24.0", @@ -14789,7 +14710,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.39.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "anyhow", "log", @@ -14805,7 +14726,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "console", "futures 0.3.31", @@ -14821,7 +14742,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.5", @@ -14835,7 +14756,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "arrayvec 0.7.6", @@ -14863,7 +14784,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.51.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14913,7 +14834,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -14923,7 +14844,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "ahash", "futures 0.3.31", @@ -14942,7 +14863,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14963,7 +14884,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14998,7 +14919,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "futures 0.3.31", @@ -15017,7 +14938,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bs58", "bytes", @@ -15038,7 +14959,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bytes", "fnv", @@ -15072,7 +14993,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -15081,7 +15002,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "jsonrpsee", @@ -15113,7 +15034,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.50.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15133,7 +15054,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -15157,7 +15078,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "futures 0.3.31", @@ -15190,7 +15111,7 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "sc-executor", @@ -15205,7 +15126,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "directories", @@ -15269,7 +15190,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.39.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "parity-scale-codec", @@ -15280,7 +15201,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "clap", "fs4", @@ -15293,7 +15214,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15312,7 +15233,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "derive_more 0.99.20", "futures 0.3.31", @@ -15332,7 +15253,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "chrono", "futures 0.3.31", @@ -15350,8 +15271,8 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "40.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +version = "40.0.2" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "chrono", "console", @@ -15381,23 +15302,23 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sc-transaction-pool" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", "futures-timer", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools 0.11.0", "linked-hash-map", "parity-scale-codec", @@ -15423,11 +15344,11 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", - "indexmap 2.12.1", + "indexmap 2.13.0", "log", "parity-scale-codec", "serde", @@ -15440,7 +15361,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-channel 1.9.0", "futures 0.3.31", @@ -15487,7 +15408,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -15515,7 +15436,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -15541,7 +15462,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -15563,7 +15484,7 @@ dependencies = [ "proc-macro2", "quote", "scale-info", - "syn 2.0.111", + "syn 2.0.114", "thiserror 2.0.17", ] @@ -15912,20 +15833,20 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.146" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217ca874ae0207aac254aa02c957ded05585a90892cc8d87f9e5fa49669dadd8" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -15973,7 +15894,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -16308,10 +16229,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -16424,7 +16346,7 @@ dependencies = [ [[package]] name = "slot-range-helper" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "enumn", "parity-scale-codec", @@ -16748,7 +16670,7 @@ dependencies = [ [[package]] name = "sp-api" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "hash-db", @@ -16770,7 +16692,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "Inflector", "blake2 0.10.6", @@ -16778,13 +16700,13 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sp-application-crypto" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -16796,7 +16718,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "integer-sqrt", @@ -16810,7 +16732,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -16822,7 +16744,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-api", "sp-inherents", @@ -16832,7 +16754,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "futures 0.3.31", "parity-scale-codec", @@ -16851,7 +16773,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "futures 0.3.31", @@ -16865,7 +16787,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "parity-scale-codec", @@ -16881,7 +16803,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "parity-scale-codec", @@ -16899,7 +16821,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -16919,7 +16841,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "finality-grandpa", "log", @@ -16936,7 +16858,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -16947,7 +16869,7 @@ dependencies = [ [[package]] name = "sp-core" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "ark-vrf", "array-bytes 6.2.3", @@ -17009,7 +16931,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "blake2b_simd", "byteorder", @@ -17022,17 +16944,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2506)", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "kvdb", "parking_lot 0.12.5", @@ -17041,17 +16963,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "environmental", "parity-scale-codec", @@ -17061,7 +16983,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -17073,7 +16995,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -17086,7 +17008,7 @@ dependencies = [ [[package]] name = "sp-io" version = "41.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bytes", "docify", @@ -17112,7 +17034,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-core", "sp-runtime", @@ -17122,7 +17044,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -17133,7 +17055,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -17141,8 +17063,8 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +version = "0.11.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-metadata 23.0.1", "parity-scale-codec", @@ -17152,7 +17074,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -17163,7 +17085,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "log", "parity-scale-codec", @@ -17180,7 +17102,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -17193,7 +17115,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-api", "sp-core", @@ -17203,7 +17125,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "backtrace", "regex", @@ -17212,7 +17134,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -17222,7 +17144,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "binary-merkle-tree", "docify", @@ -17251,7 +17173,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -17270,20 +17192,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "Inflector", "expander", "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sp-session" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "scale-info", @@ -17297,7 +17219,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -17310,7 +17232,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "hash-db", "log", @@ -17330,7 +17252,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "21.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -17354,12 +17276,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -17371,7 +17293,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "parity-scale-codec", @@ -17383,7 +17305,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "tracing", @@ -17394,7 +17316,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "sp-api", "sp-runtime", @@ -17403,7 +17325,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "async-trait", "parity-scale-codec", @@ -17417,7 +17339,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "ahash", "foldhash 0.1.5", @@ -17442,7 +17364,7 @@ dependencies = [ [[package]] name = "sp-version" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -17459,19 +17381,19 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "parity-scale-codec", "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sp-wasm-interface" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -17483,7 +17405,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -17570,7 +17492,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.12.1", + "indexmap 2.13.0", "log", "memchr", "native-tls", @@ -17672,7 +17594,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "staging-parachain-info" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -17685,7 +17607,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -17706,7 +17628,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "environmental", "frame-support", @@ -17730,7 +17652,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "20.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "environmental", "frame-benchmarking", @@ -17836,13 +17758,13 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -17867,12 +17789,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" [[package]] name = "substrate-frame-rpc-system" version = "45.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -17892,7 +17814,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.6" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "http-body-util", "hyper 1.8.1", @@ -17906,7 +17828,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -17922,8 +17844,8 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +version = "27.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -18016,7 +17938,7 @@ dependencies = [ "scale-info", "scale-typegen", "subxt-metadata", - "syn 2.0.111", + "syn 2.0.114", "thiserror 2.0.17", ] @@ -18080,7 +18002,7 @@ dependencies = [ "scale-typegen", "subxt-codegen", "subxt-utils-fetchmetadata", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18175,9 +18097,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -18193,7 +18115,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18222,7 +18144,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18302,9 +18224,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.23.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" dependencies = [ "fastrand 2.3.0", "getrandom 0.3.4", @@ -18373,7 +18295,7 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18384,7 +18306,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18395,7 +18317,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18510,9 +18432,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -18533,7 +18455,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18548,9 +18470,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -18576,9 +18498,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -18633,7 +18555,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -18647,7 +18569,7 @@ version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "winnow", @@ -18731,7 +18653,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -18757,7 +18679,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "coarsetime", "polkadot-primitives", @@ -18768,13 +18690,13 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "expander", "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -19017,9 +18939,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -19288,7 +19210,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "wasm-bindgen-shared", ] @@ -19676,14 +19598,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.4", + "webpki-root-certs 1.0.5", ] [[package]] name = "webpki-root-certs" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" +checksum = "36a29fc0408b113f68cf32637857ab740edfafdf460c326cd2afaa2d84cc05dc" dependencies = [ "rustls-pki-types", ] @@ -19697,7 +19619,7 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime" version = "24.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "binary-merkle-tree", "bitvec", @@ -19804,7 +19726,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "polkadot-primitives", @@ -19924,7 +19846,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -19935,7 +19857,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -20376,18 +20298,18 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "xcm-runtime-apis" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "parity-scale-codec", @@ -20401,7 +20323,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#dc937dd74221e38ce4c184be27b6cdcf36de0452" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2506#d173a5f32494b0b281a92b370f67fe803fc0ce47" dependencies = [ "frame-support", "frame-system", @@ -20560,28 +20482,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -20601,7 +20523,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -20616,13 +20538,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -20655,9 +20577,15 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] +[[package]] +name = "zmij" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" + [[package]] name = "zstd" version = "0.11.2+zstd.1.5.2" diff --git a/Cargo.toml b/Cargo.toml index 8eb6d54a13..1e912db29f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,6 @@ members = [ "bin/collator", "bin/xcm-tools", - "runtime/local", "runtime/astar", "runtime/shiden", "runtime/shibuya", @@ -349,7 +348,6 @@ pallet-chain-extension-unified-accounts = { path = "./chain-extensions/unified-a assets-chain-extension-types = { path = "./chain-extensions/types/assets", default-features = false } unified-accounts-chain-extension-types = { path = "./chain-extensions/types/unified-accounts", default-features = false } -local-runtime = { path = "./runtime/local", default-features = false } shibuya-runtime = { path = "./runtime/shibuya", default-features = false } shiden-runtime = { path = "./runtime/shiden", default-features = false } astar-runtime = { path = "./runtime/astar", default-features = false } diff --git a/bin/collator/Cargo.toml b/bin/collator/Cargo.toml index aa332a1b5f..39c792cc1f 100644 --- a/bin/collator/Cargo.toml +++ b/bin/collator/Cargo.toml @@ -100,7 +100,6 @@ frame-system-rpc-runtime-api = { workspace = true } # astar-specific dependencies astar-runtime = { workspace = true, features = ["std"] } -local-runtime = { workspace = true, features = ["std"] } shibuya-runtime = { workspace = true, features = ["std"] } shiden-runtime = { workspace = true, features = ["std"] } @@ -168,7 +167,6 @@ substrate-build-script-utils = { workspace = true } [features] default = ["sc-cli", "polkadot-cli", "sc-service", "sc-service/rocksdb"] runtime-benchmarks = [ - "local-runtime/runtime-benchmarks", "shibuya-runtime/runtime-benchmarks", "shiden-runtime/runtime-benchmarks", "astar-runtime/runtime-benchmarks", @@ -194,7 +192,6 @@ runtime-benchmarks = [ "pallet-transaction-payment/runtime-benchmarks", ] try-runtime = [ - "local-runtime/try-runtime", "astar-primitives/try-runtime", "astar-runtime/try-runtime", "frame-system/try-runtime", diff --git a/bin/collator/src/command.rs b/bin/collator/src/command.rs index cac73eb8a9..d8806453e7 100644 --- a/bin/collator/src/command.rs +++ b/bin/collator/src/command.rs @@ -19,7 +19,6 @@ //! Astar collator CLI handlers. use crate::{ cli::{Cli, RelayChainCli, Subcommand}, - local::{self, development_config}, parachain::{self, chain_spec, service::AdditionalConfig}, }; use cumulus_primitives_core::ParaId; @@ -37,7 +36,6 @@ use sp_runtime::traits::AccountIdConversion; trait IdentifyChain { fn is_astar(&self) -> bool; - fn is_dev(&self) -> bool; fn is_shiden(&self) -> bool; fn is_shibuya(&self) -> bool; } @@ -46,9 +44,6 @@ impl IdentifyChain for dyn sc_service::ChainSpec { fn is_astar(&self) -> bool { self.id().starts_with("astar") } - fn is_dev(&self) -> bool { - self.id().starts_with("dev") - } fn is_shiden(&self) -> bool { self.id().starts_with("shiden") } @@ -61,9 +56,6 @@ impl IdentifyChain for T { fn is_astar(&self) -> bool { ::is_astar(self) } - fn is_dev(&self) -> bool { - ::is_dev(self) - } fn is_shiden(&self) -> bool { ::is_shiden(self) } @@ -74,7 +66,6 @@ impl IdentifyChain for T { fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "dev" => Box::new(development_config()), "astar-dev" => Box::new(chain_spec::astar::get_chain_spec()), "shibuya-dev" => Box::new(chain_spec::shibuya::get_chain_spec()), "shiden-dev" => Box::new(chain_spec::shiden::get_chain_spec()), @@ -252,33 +243,16 @@ pub fn run() -> Result<()> { } Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; - let chain_spec = &runner.config().chain_spec; let rpc_config = cli.eth_api_options.new_rpc_config(); - if chain_spec.is_dev() { - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - backend, - .. - } = local::new_partial(&config, &rpc_config)?; - let aux_revert = Box::new(|client, _, blocks| { - sc_consensus_grandpa::revert(client, blocks)?; - Ok(()) - }); - Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) - }) - } else { - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - backend, - .. - } = parachain::new_partial(&config, &rpc_config)?; - Ok((cmd.run(client, backend, None), task_manager)) - }) - } + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + backend, + .. + } = parachain::new_partial(&config, &rpc_config)?; + Ok((cmd.run(client, backend, None), task_manager)) + }) } Some(Subcommand::ExportGenesisState(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -331,45 +305,23 @@ pub fn run() -> Result<()> { ) }) } else { - runner.sync_run(|config| { - cmd.run_with_spec::, local::HostFunctions>( - Some(config.chain_spec), - ) - }) - } - } - BenchmarkCmd::Block(cmd) => { - if chain_spec.is_dev() { - runner.sync_run(|config| { - let params = local::new_partial(&config, &rpc_config)?; - cmd.run(params.client) - }) - } else { - runner.sync_run(|config| { - let params = parachain::new_partial(&config, &rpc_config)?; - cmd.run(params.client) - }) - } - } - BenchmarkCmd::Storage(cmd) => { - if chain_spec.is_dev() { - runner.sync_run(|config| { - let params = local::new_partial(&config, &rpc_config)?; - let db = params.backend.expose_db(); - let storage = params.backend.expose_storage(); - - cmd.run(config, params.client, db, storage, None) - }) - } else { - runner.sync_run(|config| { - let params = parachain::new_partial(&config, &rpc_config)?; - let db = params.backend.expose_db(); - let storage = params.backend.expose_storage(); - - cmd.run(config, params.client, db, storage, None) - }) + Err(format!( + "Unknown chain '{}' for benchmarking. Use --chain astar, shiden, shibuya, astar-dev, shiden-dev, or shibuya-dev", + chain_spec.id() + ).into()) } } + BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { + let params = parachain::new_partial(&config, &rpc_config)?; + cmd.run(params.client) + }), + BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { + let params = local::new_partial(&config, &rpc_config)?; + let db = params.backend.expose_db(); + let storage = params.backend.expose_storage(); + + cmd.run(config, params.client, db, storage, None) + }), BenchmarkCmd::Overhead(_) => { todo!("Overhead benchmarking is not supported. Use 'frame-omni-bencher' tool instead."); } @@ -388,14 +340,6 @@ pub fn run() -> Result<()> { let evm_tracing_config = cli.eth_api_options.new_rpc_config(); runner.run_node_until_exit(|config| async move { - if config.chain_spec.is_dev() { - return local::start_node::>( - config, - evm_tracing_config, - ) - .map_err(Into::into); - } - let polkadot_cli = RelayChainCli::new( &config, [RelayChainCli::executable_name()] diff --git a/bin/collator/src/lib.rs b/bin/collator/src/lib.rs index f5abe7142d..0002e6567b 100644 --- a/bin/collator/src/lib.rs +++ b/bin/collator/src/lib.rs @@ -21,8 +21,6 @@ #![warn(missing_docs)] #![warn(unused_extern_crates)] -/// Development node support. -pub mod local; /// Parachain node support. pub mod parachain; diff --git a/bin/collator/src/local/chain_spec.rs b/bin/collator/src/local/chain_spec.rs deleted file mode 100644 index b5c449604f..0000000000 --- a/bin/collator/src/local/chain_spec.rs +++ /dev/null @@ -1,49 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -use local_runtime::wasm_binary_unwrap; -use sc_service::ChainType; - -/// Specialized `ChainSpec` for local network. -pub type ChainSpec = sc_service::GenericChainSpec; - -/// Development config. -pub fn development_config() -> ChainSpec { - let mut properties = serde_json::map::Map::new(); - properties.insert("tokenSymbol".into(), "LOC".into()); - properties.insert("tokenDecimals".into(), 18.into()); - - ChainSpec::builder(wasm_binary_unwrap(), None) - .with_name("Development") - .with_id("dev") - .with_chain_type(ChainType::Development) - .with_properties(properties) - .with_genesis_config(local_runtime::genesis_config::default_config()) - .build() -} - -#[cfg(test)] -pub(crate) mod tests { - use super::*; - use sp_runtime::BuildStorage; - - #[test] - fn test_create_development_chain_spec() { - development_config().build_storage().unwrap(); - } -} diff --git a/bin/collator/src/local/mod.rs b/bin/collator/src/local/mod.rs deleted file mode 100644 index 859723fd15..0000000000 --- a/bin/collator/src/local/mod.rs +++ /dev/null @@ -1,28 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! Support for local development node. - -/// Local development service. -mod service; - -/// Development chain specs. -mod chain_spec; - -pub use chain_spec::*; -pub use service::{new_partial, start_node, HostFunctions, RuntimeApi}; diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs deleted file mode 100644 index a1956eb7a2..0000000000 --- a/bin/collator/src/local/service.rs +++ /dev/null @@ -1,603 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! Local Service and ServiceFactory implementation. Specialized wrapper over substrate service. - -use crate::{ - evm_tracing_types::{EthApi as EthApiCmd, FrontierConfig}, - rpc::tracing, -}; -use fc_consensus::FrontierBlockImport; -use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; -use fc_storage::StorageOverrideHandler; -use futures::{FutureExt, StreamExt}; -use sc_client_api::{Backend, BlockBackend, BlockchainEvents}; -use sc_consensus_grandpa::SharedVoterState; -use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; -use sc_network::NetworkBackend; -use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; -use sc_telemetry::{Telemetry, TelemetryWorker}; -use sc_transaction_pool_api::OffchainTransactionPoolFactory; -#[cfg(not(feature = "manual-seal"))] -use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; -use sp_runtime::traits::Block as BlockT; -use std::{collections::BTreeMap, sync::Arc, time::Duration}; - -pub use local_runtime::RuntimeApi; - -use astar_primitives::*; - -/// The minimum period of blocks on which justifications will be -/// imported and generated. -const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; - -/// Parachain host functions -#[cfg(feature = "runtime-benchmarks")] -pub type HostFunctions = ( - frame_benchmarking::benchmarking::HostFunctions, - cumulus_client_service::ParachainHostFunctions, - moonbeam_primitives_ext::moonbeam_ext::HostFunctions, -); - -/// Parachain host functions -#[cfg(not(feature = "runtime-benchmarks"))] -pub type HostFunctions = ( - cumulus_client_service::ParachainHostFunctions, - moonbeam_primitives_ext::moonbeam_ext::HostFunctions, -); - -type ParachainExecutor = WasmExecutor; - -type FullClient = sc_service::TFullClient; -type FullBackend = sc_service::TFullBackend; -type FullSelectChain = sc_consensus::LongestChain; - -/// Build a partial chain component config -pub fn new_partial( - config: &Configuration, - evm_tracing_config: &FrontierConfig, -) -> Result< - sc_service::PartialComponents< - FullClient, - FullBackend, - FullSelectChain, - sc_consensus::DefaultImportQueue, - sc_transaction_pool::TransactionPoolHandle, - ( - FrontierBlockImport< - Block, - sc_consensus_grandpa::GrandpaBlockImport< - FullBackend, - Block, - FullClient, - FullSelectChain, - >, - FullClient, - >, - sc_consensus_grandpa::LinkHalf, - Option, - Arc>, - ), - >, - ServiceError, -> { - let telemetry = config - .telemetry_endpoints - .clone() - .filter(|x| !x.is_empty()) - .map(|endpoints| -> Result<_, sc_telemetry::Error> { - let worker = TelemetryWorker::new(16)?; - let telemetry = worker.handle().new_telemetry(endpoints); - Ok((worker, telemetry)) - }) - .transpose()?; - - let heap_pages = config - .executor - .default_heap_pages - .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { - extra_pages: h as _, - }); - - let executor = ParachainExecutor::builder() - .with_execution_method(config.executor.wasm_method) - .with_onchain_heap_alloc_strategy(heap_pages) - .with_offchain_heap_alloc_strategy(heap_pages) - .with_max_runtime_instances(config.executor.max_runtime_instances) - .with_runtime_cache_size(config.executor.runtime_cache_size) - .build(); - - let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts_record_import::( - config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - true, - )?; - let client = Arc::new(client); - let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager - .spawn_handle() - .spawn("telemetry", None, worker.run()); - telemetry - }); - let select_chain = sc_consensus::LongestChain::new(backend.clone()); - let transaction_pool = sc_transaction_pool::Builder::new( - task_manager.spawn_essential_handle(), - client.clone(), - config.role.is_authority().into(), - ) - .with_options(config.transaction_pool.clone()) - .with_prometheus(config.prometheus_registry()) - .build(); - let (grandpa_block_import, grandpa_link) = sc_consensus_grandpa::block_import( - client.clone(), - GRANDPA_JUSTIFICATION_PERIOD, - &(client.clone() as Arc<_>), - select_chain.clone(), - telemetry.as_ref().map(|x| x.handle()), - )?; - let frontier_backend = Arc::new(crate::rpc::open_frontier_backend( - client.clone(), - config, - evm_tracing_config, - )?); - let frontier_block_import = - FrontierBlockImport::new(grandpa_block_import.clone(), client.clone()); - - #[cfg(feature = "manual-seal")] - let import_queue = sc_consensus_manual_seal::import_queue( - Box::new(client.clone()), - &task_manager.spawn_essential_handle(), - config.prometheus_registry(), - ); - - #[cfg(not(feature = "manual-seal"))] - let import_queue = { - let slot_duration = sc_consensus_aura::slot_duration(&*client)?; - sc_consensus_aura::import_queue::( - sc_consensus_aura::ImportQueueParams { - block_import: frontier_block_import.clone(), - justification_import: Some(Box::new(grandpa_block_import)), - client: client.clone(), - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - Ok((slot, timestamp)) - }, - spawner: &task_manager.spawn_essential_handle(), - registry: config.prometheus_registry(), - check_for_equivocation: Default::default(), - telemetry: telemetry.as_ref().map(|x| x.handle()), - compatibility_mode: Default::default(), - }, - )? - }; - - Ok(sc_service::PartialComponents { - client, - backend, - task_manager, - import_queue, - keystore_container, - select_chain, - transaction_pool: transaction_pool.into(), - other: ( - frontier_block_import, - grandpa_link, - telemetry, - frontier_backend, - ), - }) -} - -/// Builds a new service. -pub fn start_node( - config: Configuration, - evm_tracing_config: FrontierConfig, -) -> Result -where - N: NetworkBackend::Hash>, -{ - let sc_service::PartialComponents { - client, - backend, - mut task_manager, - import_queue, - keystore_container, - select_chain, - transaction_pool, - other: (block_import, grandpa_link, mut telemetry, frontier_backend), - } = new_partial(&config, &evm_tracing_config)?; - - let protocol_name = sc_consensus_grandpa::protocol_standard_name( - &client - .block_hash(0) - .ok() - .flatten() - .expect("Genesis block exists; qed"), - &config.chain_spec, - ); - let mut net_config = sc_network::config::FullNetworkConfiguration::<_, _, N>::new( - &config.network, - config.prometheus_registry().cloned(), - ); - - let metrics = N::register_notification_metrics( - config.prometheus_config.as_ref().map(|cfg| &cfg.registry), - ); - let peer_store_handle = net_config.peer_store_handle(); - - let (grandpa_protocol_config, grandpa_notification_service) = - sc_consensus_grandpa::grandpa_peers_set_config::<_, N>( - protocol_name.clone(), - metrics.clone(), - Arc::clone(&peer_store_handle), - ); - net_config.add_notification_protocol(grandpa_protocol_config); - - let (network, system_rpc_tx, tx_handler_controller, 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(), - import_queue, - block_announce_validator_builder: None, - warp_sync_config: None, - block_relay: None, - metrics, - })?; - - if config.offchain_worker.enabled { - task_manager.spawn_handle().spawn( - "offchain-workers-runner", - "offchain-work", - sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { - runtime_api_provider: client.clone(), - keystore: Some(keystore_container.keystore()), - offchain_db: backend.offchain_storage(), - transaction_pool: Some(OffchainTransactionPoolFactory::new( - transaction_pool.clone(), - )), - network_provider: Arc::new(network.clone()), - is_validator: config.role.is_authority(), - enable_http_requests: true, - custom_extensions: move |_| vec![], - })? - .run(client.clone(), task_manager.spawn_handle()) - .boxed(), - ); - } - - let filter_pool: FilterPool = Arc::new(std::sync::Mutex::new(BTreeMap::new())); - let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); - let storage_override = Arc::new(StorageOverrideHandler::new(client.clone())); - - // Sinks for pubsub notifications. - // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. - // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. - // This way we avoid race conditions when using native substrate block import notification stream. - let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - > = Default::default(); - let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); - - let ethapi_cmd = evm_tracing_config.ethapi.clone(); - - let tracing_requesters = - if ethapi_cmd.contains(&EthApiCmd::Debug) || ethapi_cmd.contains(&EthApiCmd::Trace) { - tracing::spawn_tracing_tasks( - &evm_tracing_config, - config.prometheus_registry().cloned(), - tracing::SpawnTasksParams { - task_manager: &task_manager, - client: client.clone(), - substrate_backend: backend.clone(), - frontier_backend: frontier_backend.clone(), - storage_override: storage_override.clone(), - }, - ) - } else { - tracing::RpcRequesters { - debug: None, - trace: None, - } - }; - - // Frontier offchain DB task. Essential. - // Maps emulated ethereum data to substrate native data. - match frontier_backend.as_ref() { - fc_db::Backend::KeyValue(ref b) => { - task_manager.spawn_essential_handle().spawn( - "frontier-mapping-sync-worker", - Some("frontier"), - fc_mapping_sync::kv::MappingSyncWorker::new( - client.import_notification_stream(), - Duration::new(6, 0), - client.clone(), - backend.clone(), - storage_override.clone(), - b.clone(), - 3, - 0, - fc_mapping_sync::SyncStrategy::Parachain, - sync_service.clone(), - pubsub_notification_sinks.clone(), - ) - .for_each(|()| futures::future::ready(())), - ); - } - fc_db::Backend::Sql(ref b) => { - task_manager.spawn_essential_handle().spawn_blocking( - "frontier-mapping-sync-worker", - Some("frontier"), - fc_mapping_sync::sql::SyncWorker::run( - client.clone(), - backend.clone(), - b.clone(), - client.import_notification_stream(), - fc_mapping_sync::sql::SyncWorkerConfig { - read_notification_timeout: Duration::from_secs(10), - check_indexed_blocks_interval: Duration::from_secs(60), - }, - fc_mapping_sync::SyncStrategy::Parachain, - sync_service.clone(), - pubsub_notification_sinks.clone(), - ), - ); - } - } - - // Frontier `EthFilterApi` maintenance. Manages the pool of user-created Filters. - // Each filter is allowed to stay in the pool for 100 blocks. - const FILTER_RETAIN_THRESHOLD: u64 = 100; - task_manager.spawn_essential_handle().spawn( - "frontier-filter-pool", - Some("frontier"), - fc_rpc::EthTask::filter_pool_task( - client.clone(), - filter_pool.clone(), - FILTER_RETAIN_THRESHOLD, - ), - ); - - const FEE_HISTORY_LIMIT: u64 = 2048; - task_manager.spawn_essential_handle().spawn( - "frontier-fee-history", - Some("frontier"), - fc_rpc::EthTask::fee_history_task( - client.clone(), - storage_override.clone(), - fee_history_cache.clone(), - FEE_HISTORY_LIMIT, - ), - ); - - #[cfg(not(feature = "manual-seal"))] - let force_authoring = config.force_authoring; - #[cfg(not(feature = "manual-seal"))] - let backoff_authoring_blocks: Option<()> = None; - - let role = config.role.clone(); - let name = config.network.node_name.clone(); - let enable_grandpa = !config.disable_grandpa; - let prometheus_registry = config.prometheus_registry().cloned(); - let is_authority = config.role.is_authority(); - - let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( - task_manager.spawn_handle(), - storage_override.clone(), - 50, - 50, - prometheus_registry.clone(), - )); - - // Channel for the rpc handler to communicate with the authorship task. - #[cfg(feature = "manual-seal")] - let (command_sink, commands_stream) = futures::channel::mpsc::channel(1024); - - let rpc_extensions_builder = { - let client = client.clone(); - let network = network.clone(); - let transaction_pool = transaction_pool.clone(); - let sync = sync_service.clone(); - let pubsub_notification_sinks = pubsub_notification_sinks.clone(); - - Box::new(move |subscription| { - let deps = crate::rpc::FullDeps { - client: client.clone(), - pool: transaction_pool.clone(), - graph: transaction_pool.clone(), - network: network.clone(), - sync: sync.clone(), - is_authority, - frontier_backend: match *frontier_backend { - fc_db::Backend::KeyValue(ref b) => b.clone(), - fc_db::Backend::Sql(ref b) => b.clone(), - }, - filter_pool: filter_pool.clone(), - fee_history_limit: FEE_HISTORY_LIMIT, - fee_history_cache: fee_history_cache.clone(), - block_data_cache: block_data_cache.clone(), - storage_override: storage_override.clone(), - enable_evm_rpc: true, // enable EVM RPC for dev node by default - #[cfg(feature = "manual-seal")] - command_sink: Some(command_sink.clone()), - }; - - crate::rpc::create_full( - deps, - subscription, - pubsub_notification_sinks.clone(), - crate::rpc::EvmTracingConfig { - tracing_requesters: tracing_requesters.clone(), - trace_filter_max_count: evm_tracing_config.ethapi_trace_max_count, - enable_txpool: ethapi_cmd.contains(&EthApiCmd::TxPool), - }, - ) - .map_err::(Into::into) - }) - }; - - let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { - network: network.clone(), - client: client.clone(), - keystore: keystore_container.keystore(), - task_manager: &mut task_manager, - transaction_pool: transaction_pool.clone(), - rpc_builder: rpc_extensions_builder, - backend, - system_rpc_tx, - tx_handler_controller, - sync_service: sync_service.clone(), - config, - telemetry: telemetry.as_mut(), - })?; - - if role.is_authority() { - let proposer_factory = sc_basic_authorship::ProposerFactory::new( - task_manager.spawn_handle(), - client.clone(), - transaction_pool.clone(), - prometheus_registry.as_ref(), - telemetry.as_ref().map(|x| x.handle()), - ); - - let slot_duration = sc_consensus_aura::slot_duration(&*client)?; - - #[cfg(feature = "manual-seal")] - let aura = sc_consensus_manual_seal::run_manual_seal( - sc_consensus_manual_seal::ManualSealParams { - block_import, - env: proposer_factory, - client: client.clone(), - pool: transaction_pool.clone(), - commands_stream, - select_chain, - consensus_data_provider: Some(Box::new( - sc_consensus_manual_seal::consensus::aura::AuraConsensusDataProvider::new( - client.clone(), - ), - )), - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration.clone(), - ); - Ok((slot, timestamp)) - }, - }, - ); - - #[cfg(not(feature = "manual-seal"))] - let aura = sc_consensus_aura::start_aura::( - sc_consensus_aura::StartAuraParams { - slot_duration, - client, - select_chain, - block_import, - proposer_factory, - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - - Ok((slot, timestamp)) - }, - force_authoring, - backoff_authoring_blocks, - keystore: keystore_container.keystore(), - sync_oracle: sync_service.clone(), - justification_sync_link: sync_service.clone(), - block_proposal_slot_portion: sc_consensus_aura::SlotProportion::new(2f32 / 3f32), - max_block_proposal_slot_portion: None, - telemetry: telemetry.as_ref().map(|x| x.handle()), - compatibility_mode: Default::default(), - }, - )?; - - // the AURA authoring task is considered essential, i.e. if it - // fails we take down the service with it. - task_manager - .spawn_essential_handle() - .spawn_blocking("aura", Some("block-authoring"), aura); - } - - // 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.keystore()) - } else { - None - }; - - let grandpa_config = sc_consensus_grandpa::Config { - // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), - justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, - name: Some(name), - observer_enabled: false, - keystore, - local_role: role, - telemetry: telemetry.as_ref().map(|x| x.handle()), - protocol_name, - }; - - if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. - let grandpa_config = sc_consensus_grandpa::GrandpaParams { - config: grandpa_config, - link: grandpa_link, - network, - sync: Arc::new(sync_service), - notification_service: grandpa_notification_service, - voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), - prometheus_registry, - shared_voter_state: SharedVoterState::empty(), - telemetry: telemetry.as_ref().map(|x| x.handle()), - offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool), - }; - - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking( - "grandpa-voter", - None, - sc_consensus_grandpa::run_grandpa_voter(grandpa_config)?, - ); - } - - Ok(task_manager) -} diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index e67d8059b2..f4caab74cd 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -20,7 +20,7 @@ //! Core Astar types. //! -//! These core Astar types are used by the Shiden, Shibuya, Astar and Local runtime. +//! These core Astar types are used by the Shiden, Shibuya and Astar runtimes. pub mod xcm; /// Checked Ethereum transaction primitives. diff --git a/runtime/local/Cargo.toml b/runtime/local/Cargo.toml deleted file mode 100644 index 03fd387308..0000000000 --- a/runtime/local/Cargo.toml +++ /dev/null @@ -1,289 +0,0 @@ -[package] -name = "local-runtime" -version = "5.48.0" -build = "build.rs" -authors.workspace = true -edition.workspace = true -homepage.workspace = true -repository.workspace = true - -[lints] -workspace = true - -[dependencies] -ethereum = { workspace = true } -log = { workspace = true, optional = true } -num_enum = { workspace = true } -parity-scale-codec = { workspace = true } -scale-info = { workspace = true } -serde_json = { workspace = true } -smallvec = { workspace = true } - -fp-evm = { workspace = true } -fp-rpc = { workspace = true } -fp-self-contained = { workspace = true } -frame-executive = { workspace = true } -frame-metadata-hash-extension = { workspace = true } -frame-support = { workspace = true } -frame-system = { workspace = true } -pallet-assets = { workspace = true } -pallet-aura = { workspace = true } -pallet-balances = { workspace = true } -pallet-collective = { workspace = true } -pallet-contracts = { workspace = true } -pallet-democracy = { workspace = true } -pallet-ethereum = { workspace = true } -pallet-ethereum-checked = { workspace = true } -pallet-evm = { workspace = true } -pallet-evm-precompile-blake2 = { workspace = true } -pallet-evm-precompile-bn128 = { workspace = true } -pallet-evm-precompile-dispatch = { workspace = true } -pallet-evm-precompile-ed25519 = { workspace = true } -pallet-evm-precompile-modexp = { workspace = true } -pallet-evm-precompile-sha3fips = { workspace = true } -pallet-evm-precompile-simple = { workspace = true } -pallet-grandpa = { workspace = true } -pallet-insecure-randomness-collective-flip = { workspace = true } -pallet-membership = { workspace = true } -pallet-preimage = { workspace = true } -pallet-proxy = { workspace = true } -pallet-safe-mode = { workspace = true } -pallet-scheduler = { workspace = true } -pallet-sudo = { workspace = true } -pallet-timestamp = { workspace = true } -pallet-transaction-payment = { workspace = true } -pallet-treasury = { workspace = true } -pallet-tx-pause = { workspace = true } -pallet-utility = { workspace = true } -pallet-vesting = { workspace = true } -sp-api = { workspace = true } -sp-arithmetic = { workspace = true } -sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } -sp-genesis-builder = { workspace = true } -sp-inherents = { workspace = true } -sp-io = { workspace = true } -sp-offchain = { workspace = true } -sp-runtime = { workspace = true } -sp-session = { workspace = true } -sp-std = { workspace = true } -sp-transaction-pool = { workspace = true } -sp-version = { workspace = true } - -# Used for the node template's RPCs -frame-system-rpc-runtime-api = { workspace = true } -pallet-transaction-payment-rpc-runtime-api = { workspace = true } - -# Astar pallets -astar-primitives = { workspace = true } -pallet-chain-extension-unified-accounts = { workspace = true } -pallet-collective-proxy = { workspace = true } -pallet-dapp-staking = { workspace = true } -pallet-dynamic-evm-base-fee = { workspace = true } -pallet-evm-precompile-assets-erc20 = { workspace = true } -pallet-evm-precompile-dapp-staking = { workspace = true } -pallet-evm-precompile-dispatch-lockdrop = { workspace = true } -pallet-evm-precompile-sr25519 = { workspace = true } -pallet-evm-precompile-substrate-ecdsa = { workspace = true } -pallet-evm-precompile-unified-accounts = { workspace = true } -pallet-inflation = { workspace = true } -pallet-static-price-provider = { workspace = true } -pallet-unified-accounts = { workspace = true } - -dapp-staking-runtime-api = { workspace = true } - -precompile-utils = { workspace = true } - -# Moonbeam tracing -moonbeam-evm-tracer = { workspace = true, optional = true } -moonbeam-rpc-primitives-debug = { workspace = true, optional = true } -moonbeam-rpc-primitives-txpool = { workspace = true, optional = true } - -# chain-extensions -pallet-chain-extension-assets = { workspace = true } - -# benchmarking -array-bytes = { workspace = true } -frame-benchmarking = { workspace = true, optional = true } -frame-system-benchmarking = { workspace = true, optional = true } - -# try-runtime -frame-try-runtime = { workspace = true, optional = true } - -[build-dependencies] -substrate-wasm-builder = { workspace = true, optional = true } - -[features] -default = ["std"] -std = [ - "parity-scale-codec/std", - "serde_json/std", - "fp-rpc/std", - "fp-evm/std", - "fp-self-contained/std", - "frame-executive/std", - "frame-support/std", - "frame-system-rpc-runtime-api/std", - "pallet-collective-proxy/std", - "frame-system/std", - "pallet-assets/std", - "pallet-aura/std", - "pallet-membership/std", - "pallet-balances/std", - "pallet-contracts/std", - "pallet-chain-extension-unified-accounts/std", - "pallet-dapp-staking/std", - "dapp-staking-runtime-api/std", - "pallet-inflation/std", - "pallet-static-price-provider/std", - "pallet-dynamic-evm-base-fee/std", - "pallet-ethereum/std", - "pallet-evm/std", - "sp-genesis-builder/std", - "pallet-evm-precompile-blake2/std", - "pallet-evm-precompile-simple/std", - "pallet-evm-precompile-bn128/std", - "pallet-evm-precompile-dispatch/std", - "pallet-evm-precompile-ed25519/std", - "pallet-evm-precompile-modexp/std", - "pallet-evm-precompile-sha3fips/std", - "pallet-evm-precompile-dapp-staking/std", - "pallet-evm-precompile-sr25519/std", - "pallet-evm-precompile-substrate-ecdsa/std", - "pallet-evm-precompile-unified-accounts/std", - "pallet-evm-precompile-dispatch-lockdrop/std", - "pallet-grandpa/std", - "pallet-insecure-randomness-collective-flip/std", - "pallet-preimage/std", - "pallet-collective/std", - "pallet-democracy/std", - "pallet-sudo/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-treasury/std", - "pallet-utility/std", - "pallet-vesting/std", - "pallet-proxy/std", - "pallet-safe-mode/std", - "pallet-tx-pause/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-inherents/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-arithmetic/std", - "sp-std/std", - "sp-transaction-pool/std", - "sp-version/std", - "sp-io/std", - "frame-benchmarking/std", - "frame-try-runtime/std", - "frame-metadata-hash-extension/std", - "pallet-scheduler/std", - "pallet-unified-accounts/std", - "pallet-ethereum-checked/std", - "moonbeam-evm-tracer/std", - "moonbeam-rpc-primitives-debug/std", - "moonbeam-rpc-primitives-txpool/std", - "substrate-wasm-builder", - "pallet-chain-extension-assets/std", - "astar-primitives/std", - "frame-system-benchmarking?/std", - "log?/std", - "num_enum/std", - "pallet-evm-precompile-assets-erc20/std", - "precompile-utils/std", - "scale-info/std", - "ethereum/std", -] -runtime-benchmarks = [ - "frame-benchmarking", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "pallet-collective-proxy/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-transaction-payment/runtime-benchmarks", - "pallet-treasury/runtime-benchmarks", - "pallet-ethereum/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks", - "pallet-democracy/runtime-benchmarks", - "pallet-collective/runtime-benchmarks", - "pallet-ethereum-checked/runtime-benchmarks", - "pallet-unified-accounts/runtime-benchmarks", - "astar-primitives/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-dapp-staking/runtime-benchmarks", - "pallet-inflation/runtime-benchmarks", - "pallet-membership/runtime-benchmarks", - "pallet-dynamic-evm-base-fee/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "pallet-chain-extension-assets/runtime-benchmarks", - "pallet-contracts/runtime-benchmarks", - "pallet-evm/runtime-benchmarks", - "pallet-evm-precompile-assets-erc20/runtime-benchmarks", - "pallet-evm-precompile-dapp-staking/runtime-benchmarks", - "pallet-grandpa/runtime-benchmarks", - "pallet-proxy/runtime-benchmarks", - "pallet-safe-mode/runtime-benchmarks", - "pallet-scheduler/runtime-benchmarks", - "pallet-static-price-provider/runtime-benchmarks", - "pallet-sudo/runtime-benchmarks", - "pallet-tx-pause/runtime-benchmarks", - "pallet-utility/runtime-benchmarks", - "pallet-vesting/runtime-benchmarks", -] -try-runtime = [ - "fp-self-contained/try-runtime", - "log", - "frame-try-runtime/try-runtime", - "frame-executive/try-runtime", - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-aura/try-runtime", - "pallet-balances/try-runtime", - "pallet-contracts/try-runtime", - "pallet-collective-proxy/try-runtime", - "pallet-dapp-staking/try-runtime", - "pallet-treasury/try-runtime", - "pallet-inflation/try-runtime", - "pallet-membership/try-runtime", - "pallet-grandpa/try-runtime", - "pallet-insecure-randomness-collective-flip/try-runtime", - "pallet-sudo/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-tx-pause/try-runtime", - "pallet-utility/try-runtime", - "pallet-vesting/try-runtime", - "pallet-unified-accounts/try-runtime", - "pallet-ethereum/try-runtime", - "pallet-assets/try-runtime", - "pallet-safe-mode/try-runtime", - "pallet-scheduler/try-runtime", - "pallet-proxy/try-runtime", - "pallet-preimage/try-runtime", - "pallet-collective/try-runtime", - "pallet-democracy/try-runtime", - "pallet-dynamic-evm-base-fee/try-runtime", - "pallet-evm/try-runtime", - "pallet-ethereum-checked/try-runtime", - "pallet-static-price-provider/try-runtime", - "astar-primitives/try-runtime", - "pallet-chain-extension-assets/try-runtime", - "sp-runtime/try-runtime", -] - -# Enable metadata hash generation at compile time for the `CheckMetadataHash` extension. -metadata-hash = ["substrate-wasm-builder?/metadata-hash"] - -# A feature that should be enabled when the runtime should be built for on-chain -# deployment. This will disable stuff that shouldn't be part of the on-chain wasm -on-chain-release-build = ["metadata-hash"] diff --git a/runtime/local/build.rs b/runtime/local/build.rs deleted file mode 100644 index acb0392d54..0000000000 --- a/runtime/local/build.rs +++ /dev/null @@ -1,39 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -#[cfg(all(feature = "std", not(feature = "metadata-hash")))] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build(); -} - -#[cfg(all(feature = "std", feature = "metadata-hash"))] -fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .enable_metadata_hash("LOC", 18) - .build(); -} - -#[cfg(not(feature = "std"))] -fn main() {} diff --git a/runtime/local/src/chain_extensions.rs b/runtime/local/src/chain_extensions.rs deleted file mode 100644 index b08131be29..0000000000 --- a/runtime/local/src/chain_extensions.rs +++ /dev/null @@ -1,40 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -use super::{Runtime, UnifiedAccounts}; - -/// Registered WASM contracts chain extensions. -pub use pallet_chain_extension_assets::AssetsExtension; -use pallet_contracts::chain_extension::RegisteredChainExtension; - -pub use pallet_chain_extension_unified_accounts::UnifiedAccountsExtension; - -// Following impls defines chain extension IDs. - -impl RegisteredChainExtension for AssetsExtension { - const ID: u16 = 02; -} - -impl RegisteredChainExtension for UnifiedAccountsExtension { - const ID: u16 = 03; -} - -pub type LocalChainExtensions = ( - AssetsExtension, - UnifiedAccountsExtension, -); diff --git a/runtime/local/src/genesis_config.rs b/runtime/local/src/genesis_config.rs deleted file mode 100644 index 2e3706c962..0000000000 --- a/runtime/local/src/genesis_config.rs +++ /dev/null @@ -1,188 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -use crate::*; -use astar_primitives::{ - evm::EVM_REVERT_CODE, - genesis::{get_from_seed, GenesisAccount}, -}; -use sp_core::crypto::Ss58Codec; - -/// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { - let genesis = match id.as_str() { - "development" => default_config(), - _ => return None, - }; - Some( - serde_json::to_string(&genesis) - .expect("serialization to json is expected to work. qed.") - .into_bytes(), - ) -} - -/// Get the default genesis config for the local runtime. -pub fn default_config() -> serde_json::Value { - let alice = GenesisAccount::::from_seed("Alice"); - let bob = GenesisAccount::::from_seed("Bob"); - let charlie = GenesisAccount::::from_seed("Charlie"); - let dave = GenesisAccount::::from_seed("Dave"); - let eve = GenesisAccount::::from_seed("Eve"); - - let accounts = vec![&alice, &bob, &charlie, &dave, &eve] - .iter() - .map(|x| x.account_id()) - .collect::>(); - - let balances = accounts - .iter() - .chain( - vec![ - TreasuryPalletId::get().into_account_truncating(), - CommunityTreasuryPalletId::get().into_account_truncating(), - // Private key: 0x01ab6e801c06e59ca97a14fc0a1978b27fa366fc87450e0b65459dd3515b7391 - // H160 public address: 0xaaafB3972B05630fCceE866eC69CdADd9baC2771 - AccountId::from_ss58check("5FQedkNQcF2fJPwkB6Z1ZcMgGti4vcJQNs6x85YPv3VhjBBT") - .expect("Invalid SS58 address"), - ] - .iter(), - ) - .map(|x| (x.clone(), 1_000_000_000 * AST)) - .collect::>(); - - let config = RuntimeGenesisConfig { - system: Default::default(), - sudo: SudoConfig { - key: Some(alice.account_id()), - }, - balances: BalancesConfig { - balances, - ..Default::default() - }, - vesting: VestingConfig { vesting: vec![] }, - aura: AuraConfig { - authorities: vec![get_from_seed::("Alice")], - }, - grandpa: GrandpaConfig { - authorities: vec![(get_from_seed::("Alice"), 1)], - ..Default::default() - }, - evm: EVMConfig { - // We need _some_ code inserted at the precompile address so that - // the evm will actually call the address. - accounts: Precompiles::used_addresses_h160() - .map(|addr| { - ( - addr, - fp_evm::GenesisAccount { - nonce: Default::default(), - balance: Default::default(), - storage: Default::default(), - code: EVM_REVERT_CODE.into(), - }, - ) - }) - .collect(), - ..Default::default() - }, - ethereum: Default::default(), - assets: Default::default(), - transaction_payment: Default::default(), - dapp_staking: DappStakingConfig { - reward_portion: vec![ - Permill::from_percent(40), - Permill::from_percent(30), - Permill::from_percent(20), - Permill::from_percent(10), - ], - slot_distribution: vec![ - Permill::from_percent(10), - Permill::from_percent(20), - Permill::from_percent(30), - Permill::from_percent(40), - ], - tier_thresholds: vec![ - TierThreshold::DynamicPercentage { - percentage: Perbill::from_parts(35_700_000), // 3.57% - minimum_required_percentage: Perbill::from_parts(23_800_000), // 2.38% - maximum_possible_percentage: Perbill::from_percent(100), - }, - TierThreshold::DynamicPercentage { - percentage: Perbill::from_parts(8_900_000), // 0.89% - minimum_required_percentage: Perbill::from_parts(6_000_000), // 0.6% - maximum_possible_percentage: Perbill::from_percent(100), - }, - TierThreshold::DynamicPercentage { - percentage: Perbill::from_parts(23_800_000), // 2.38% - minimum_required_percentage: Perbill::from_parts(17_900_000), // 1.79% - maximum_possible_percentage: Perbill::from_percent(100), - }, - TierThreshold::FixedPercentage { - required_percentage: Perbill::from_parts(600_000), // 0.06% - }, - ], - slots_per_tier: vec![10, 20, 30, 40], - safeguard: Some(false), - ..Default::default() - }, - inflation: InflationConfig { - params: InflationParameters { - max_inflation_rate: Perquintill::from_percent(7), - treasury_part: Perquintill::from_percent(5), - collators_part: Perquintill::from_percent(3), - dapps_part: Perquintill::from_percent(20), - base_stakers_part: Perquintill::from_percent(25), - adjustable_stakers_part: Perquintill::from_percent(35), - bonus_part: Perquintill::from_percent(12), - ideal_staking_rate: Perquintill::from_percent(50), - decay_rate: Perquintill::one(), - }, - ..Default::default() - }, - council_membership: CouncilMembershipConfig { - members: accounts - .clone() - .try_into() - .expect("Should support at least 5 members."), - phantom: Default::default(), - }, - technical_committee_membership: TechnicalCommitteeMembershipConfig { - members: accounts[..3] - .to_vec() - .try_into() - .expect("Should support at least 3 members."), - phantom: Default::default(), - }, - community_council_membership: CommunityCouncilMembershipConfig { - members: accounts - .try_into() - .expect("Should support at least 5 members."), - phantom: Default::default(), - }, - council: Default::default(), - technical_committee: Default::default(), - community_council: Default::default(), - democracy: Default::default(), - treasury: Default::default(), - community_treasury: Default::default(), - safe_mode: Default::default(), - tx_pause: Default::default(), - }; - - serde_json::to_value(&config).expect("Could not build genesis config.") -} diff --git a/runtime/local/src/lib.rs b/runtime/local/src/lib.rs deleted file mode 100644 index aae135fcea..0000000000 --- a/runtime/local/src/lib.rs +++ /dev/null @@ -1,2129 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -#![cfg_attr(not(feature = "std"), no_std)] -// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] - -// Make the WASM binary available. -#[cfg(feature = "std")] -include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); - -extern crate alloc; -extern crate core; - -use alloc::{borrow::Cow, collections::btree_map::BTreeMap, vec, vec::Vec}; -use core::marker::PhantomData; - -use ethereum::AuthorizationList; -use frame_support::{ - construct_runtime, genesis_builder_helper, parameter_types, - traits::{ - fungible::{Balanced, Credit, HoldConsideration}, - AsEnsureOriginWithArg, ConstU128, ConstU32, ConstU64, ConstU8, Contains, - EqualPrivilegeOnly, FindAuthor, Get, InsideBoth, InstanceFilter, LinearStoragePrice, - Nothing, OnFinalize, WithdrawReasons, - }, - weights::{ - constants::{ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, - ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, - WeightToFeePolynomial, - }, - ConsensusEngineId, PalletId, -}; -use frame_system::{ - limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureSigned, EnsureWithSuccess, -}; -use pallet_ethereum::PostLogContent; -use pallet_evm::{FeeCalculator, GasWeightMapping, Runner}; -use pallet_evm_precompile_assets_erc20::AddressToAssetId; -use pallet_grandpa::{fg_primitives, AuthorityList as GrandpaAuthorityList}; -use pallet_transaction_payment::{FungibleAdapter, Multiplier, TargetedFeeAdjustment}; -use parity_scale_codec::{Compact, Decode, Encode, MaxEncodedLen}; -use sp_api::impl_runtime_apis; -use sp_core::{ - crypto::KeyTypeId, sr25519, ConstBool, DecodeWithMemTracking, OpaqueMetadata, H160, H256, U256, -}; -use sp_runtime::{ - generic, impl_opaque_keys, - traits::{ - AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, - DispatchInfoOf, Dispatchable, NumberFor, PostDispatchInfoOf, UniqueSaturatedInto, - }, - transaction_validity::{TransactionSource, TransactionValidity, TransactionValidityError}, - ApplyExtrinsicResult, FixedPointNumber, FixedU128, Perbill, Permill, Perquintill, RuntimeDebug, -}; - -use astar_primitives::{ - dapp_staking::{ - CycleConfiguration, DAppId, EraNumber, PeriodNumber, RankedTier, SmartContract, - StandardTierSlots, - }, - evm::{EvmRevertCodeHandler, HashedDefaultMappings}, - governance::{ - CommunityCouncilCollectiveInst, CommunityCouncilMembershipInst, CommunityTreasuryInst, - EnsureRootOrAllMainCouncil, EnsureRootOrAllTechnicalCommittee, - EnsureRootOrHalfTechnicalCommittee, EnsureRootOrTwoThirdsCommunityCouncil, - EnsureRootOrTwoThirdsMainCouncil, EnsureRootOrTwoThirdsTechnicalCommittee, - MainCouncilCollectiveInst, MainCouncilMembershipInst, MainTreasuryInst, - TechnicalCommitteeCollectiveInst, TechnicalCommitteeMembershipInst, - }, - Address, AssetId, Balance, BlockNumber, Hash, Header, Nonce, -}; - -pub use astar_primitives::{AccountId, Signature}; -pub use pallet_dapp_staking::TierThreshold; - -pub use crate::precompiles::WhitelistedCalls; -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; - -pub use frame_system::Call as SystemCall; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_grandpa::AuthorityId as GrandpaId; -pub use pallet_inflation::InflationParameters; -pub use pallet_timestamp::Call as TimestampCall; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; - -#[cfg(feature = "std")] -/// Wasm binary unwrapped. If built with `BUILD_DUMMY_WASM_BINARY`, the function panics. -pub fn wasm_binary_unwrap() -> &'static [u8] { - WASM_BINARY.expect( - "Development wasm binary is not available. This means the client is \ - built with `BUILD_DUMMY_WASM_BINARY` flag and it is only usable for \ - production chains. Please rebuild with the flag disabled.", - ) -} - -#[sp_version::runtime_version] -pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: Cow::Borrowed("local"), - impl_name: Cow::Borrowed("local"), - authoring_version: 1, - spec_version: 1, - impl_version: 1, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, - system_version: 1, -}; - -impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - pub grandpa: Grandpa, - } -} - -mod precompiles; -pub use precompiles::{LocalPrecompiles, ASSET_PRECOMPILE_ADDRESS_PREFIX}; -pub type Precompiles = LocalPrecompiles; - -mod chain_extensions; -pub use chain_extensions::LocalChainExtensions; - -pub mod genesis_config; -mod weights; - -/// Constant values used within the runtime. -pub const MICROAST: Balance = 1_000_000_000_000; -pub const MILLIAST: Balance = 1_000 * MICROAST; -pub const AST: Balance = 1_000 * MILLIAST; - -pub const STORAGE_BYTE_FEE: Balance = 100 * MICROAST; - -/// Charge fee for stored bytes and items. -pub const fn deposit(items: u32, bytes: u32) -> Balance { - items as Balance * 1 * AST + (bytes as Balance) * STORAGE_BYTE_FEE -} - -/// This determines the average expected block time that we are targeting. -/// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`. -/// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked -/// up by `pallet_aura` to implement `fn slot_duration()`. -/// -/// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 2000; -pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; - -// Time is measured by number of blocks. -pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); -pub const HOURS: BlockNumber = MINUTES * 60; -pub const DAYS: BlockNumber = HOURS * 24; - -impl AddressToAssetId for Runtime { - fn address_to_asset_id(address: H160) -> Option { - let mut data = [0u8; 16]; - let address_bytes: [u8; 20] = address.into(); - if ASSET_PRECOMPILE_ADDRESS_PREFIX.eq(&address_bytes[0..4]) { - data.copy_from_slice(&address_bytes[4..20]); - Some(u128::from_be_bytes(data)) - } else { - None - } - } - - fn asset_id_to_address(asset_id: AssetId) -> H160 { - let mut data = [0u8; 20]; - data[0..4].copy_from_slice(ASSET_PRECOMPILE_ADDRESS_PREFIX); - data[4..20].copy_from_slice(&asset_id.to_be_bytes()); - H160::from(data) - } -} - -/// The version information used to identify this runtime when compiled natively. -#[cfg(feature = "std")] -pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } -} - -/// 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); - -parameter_types! { - pub const Version: RuntimeVersion = VERSION; - pub const BlockHashCount: BlockNumber = 2400; - /// We allow for 1 seconds of compute with a 2 second average block time. - pub RuntimeBlockWeights: BlockWeights = BlockWeights - ::with_sensible_defaults(Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX), NORMAL_DISPATCH_RATIO); - pub RuntimeBlockLength: BlockLength = BlockLength - ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub const SS58Prefix: u8 = 5; -} - -// Configure FRAME pallets to include in runtime. -impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = InsideBoth; - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = (AccountIdLookup, UnifiedAccounts); - /// The nonce type for storing how many extrinsics an account has signed. - type Nonce = Nonce; - /// The type for blocks. - type Block = Block; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - /// The ubiquitous origin type. - type RuntimeOrigin = RuntimeOrigin; - /// The aggregated RuntimeTask type. - type RuntimeTask = RuntimeTask; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = pallet_unified_accounts::KillAccountMapping; - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = frame_system::weights::SubstrateWeight; - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - /// The set code logic, just the default since we're not a parachain. - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; - type SingleBlockMigrations = (); - type MultiBlockMigrator = (); - type PreInherents = (); - type PostInherents = (); - type PostTransactions = (); - type ExtensionsWeightInfo = (); -} - -impl pallet_aura::Config for Runtime { - type AuthorityId = AuraId; - type DisabledValidators = (); - type MaxAuthorities = ConstU32<50>; - type SlotDuration = pallet_aura::MinimumPeriodTimesTwo; - type AllowMultipleBlocksPerSlot = ConstBool; -} - -impl pallet_grandpa::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - - type KeyOwnerProof = sp_core::Void; - type EquivocationReportSystem = (); - - type WeightInfo = (); - type MaxAuthorities = ConstU32<50>; - type MaxSetIdSessionEntries = ConstU64<0>; - type MaxNominators = ConstU32<0>; -} - -parameter_types! { - pub const MinimumPeriod: u64 = SLOT_DURATION / 2; -} - -impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = Aura; - type MinimumPeriod = MinimumPeriod; - type WeightInfo = pallet_timestamp::weights::SubstrateWeight; -} - -impl pallet_insecure_randomness_collective_flip::Config for Runtime {} - -parameter_types! { - pub const ExistentialDeposit: u128 = 500; - pub const MaxLocks: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = weights::pallet_balances::SubstrateWeight; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = RuntimeFreezeReason; - type MaxFreezes = ConstU32<1>; - type DoneSlashHandler = (); -} - -parameter_types! { - pub const AssetDeposit: Balance = 1 * AST; - pub const AssetsStringLimit: u32 = 50; - /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) - // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 - pub const MetadataDepositBase: Balance = deposit(1, 68); - pub const MetadataDepositPerByte: Balance = deposit(0, 1); - pub const AssetAccountDeposit: Balance = deposit(1, 18); -} - -impl pallet_assets::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type AssetId = AssetId; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = EnsureRoot; - type AssetDeposit = AssetDeposit; - type MetadataDepositBase = MetadataDepositBase; - type MetadataDepositPerByte = MetadataDepositPerByte; - type AssetAccountDeposit = AssetAccountDeposit; - type ApprovalDeposit = ExistentialDeposit; - type StringLimit = AssetsStringLimit; - type Freezer = (); - type Extra = (); - type Holder = (); - type WeightInfo = weights::pallet_assets::SubstrateWeight; - type RemoveItemsLimit = ConstU32<1000>; - type AssetIdParameter = Compact; - type CallbackHandle = EvmRevertCodeHandler; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = astar_primitives::benchmarks::AssetsBenchmarkHelper; -} - -// These values are based on the Astar 2.0 Tokenomics Modeling report. -parameter_types! { - pub const TransactionLengthFeeFactor: Balance = 23_500_000_000_000; // 0.000_023_500_000_000_000 AST per byte - pub const WeightFeeFactor: Balance = 30_855_000_000_000_000; // Around 0.03 AST per unit of ref time. - pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(25); - pub const OperationalFeeMultiplier: u8 = 5; - pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(000_015, 1_000_000); // 0.000_015 - pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 10); // 0.1 - pub MaximumMultiplier: Multiplier = Multiplier::saturating_from_integer(10); // 10 -} - -/// Handles converting a weight scalar to a fee value, based on the scale and granularity of the -/// node's balance type. -/// -/// This should typically create a mapping between the following ranges: -/// - [0, MAXIMUM_BLOCK_WEIGHT] -/// - [Balance::min, Balance::max] -/// -/// Yet, it can be used for any other sort of change to weight-fee. Some examples being: -/// - Setting it to `0` will essentially disable the weight fee. -/// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged. -pub struct WeightToFee; -impl WeightToFeePolynomial for WeightToFee { - type Balance = Balance; - fn polynomial() -> WeightToFeeCoefficients { - let p = WeightFeeFactor::get(); - let q = Balance::from(ExtrinsicBaseWeight::get().ref_time()); - smallvec::smallvec![WeightToFeeCoefficient { - degree: 1, - negative: false, - coeff_frac: Perbill::from_rational(p % q, q), - coeff_integer: p / q, - }] - } -} - -impl pallet_transaction_payment::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = FungibleAdapter; - type WeightToFee = WeightToFee; - type OperationalFeeMultiplier = OperationalFeeMultiplier; - type FeeMultiplierUpdate = TargetedFeeAdjustment< - Self, - TargetBlockFullness, - AdjustmentVariable, - MinimumMultiplier, - MaximumMultiplier, - >; - type LengthToFee = ConstantMultiplier; - type WeightInfo = (); -} - -parameter_types! { - pub DefaultBaseFeePerGas: U256 = U256::from(1_470_000_000_000_u128); - pub MinBaseFeePerGas: U256 = U256::from(800_000_000_000_u128); - pub MaxBaseFeePerGas: U256 = U256::from(80_000_000_000_000_u128); - pub StepLimitRatio: Perquintill = Perquintill::from_rational(5_u128, 100_000); -} - -/// Simple wrapper for fetching current native transaction fee weight fee multiplier. -pub struct AdjustmentFactorGetter; -impl Get for AdjustmentFactorGetter { - fn get() -> Multiplier { - pallet_transaction_payment::NextFeeMultiplier::::get() - } -} - -impl pallet_dynamic_evm_base_fee::Config for Runtime { - type DefaultBaseFeePerGas = DefaultBaseFeePerGas; - type MinBaseFeePerGas = MinBaseFeePerGas; - type MaxBaseFeePerGas = MaxBaseFeePerGas; - type AdjustmentFactor = AdjustmentFactorGetter; - type WeightFactor = WeightFeeFactor; - type StepLimitRatio = StepLimitRatio; - type WeightInfo = pallet_dynamic_evm_base_fee::weights::SubstrateWeight; -} - -parameter_types! { - pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); - pub const DappsStakingPalletId: PalletId = PalletId(*b"py/dpsst"); -} - -impl pallet_static_price_provider::Config for Runtime {} - -#[cfg(feature = "runtime-benchmarks")] -pub struct BenchmarkHelper(PhantomData<(SC, ACC)>); -#[cfg(feature = "runtime-benchmarks")] -impl pallet_dapp_staking::BenchmarkHelper, AccountId> - for BenchmarkHelper, AccountId> -{ - fn get_smart_contract(id: u32) -> SmartContract { - SmartContract::Wasm(AccountId::from([id as u8; 32])) - } - - fn set_balance(account: &AccountId, amount: Balance) { - use frame_support::traits::fungible::Unbalanced as FunUnbalanced; - Balances::write_balance(account, amount) - .expect("Must succeed in test/benchmark environment."); - } -} - -parameter_types! { - pub const BaseNativeCurrencyPrice: FixedU128 = FixedU128::from_rational(5, 100); -} - -impl pallet_dapp_staking::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeFreezeReason = RuntimeFreezeReason; - type Currency = Balances; - type SmartContract = SmartContract; - type ContractRegisterOrigin = EnsureRootOrTwoThirdsCommunityCouncil; - type ContractUnregisterOrigin = EnsureRoot; - type ManagerOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type NativePriceProvider = StaticPriceProvider; - type StakingRewardHandler = Inflation; - type CycleConfiguration = InflationCycleConfig; - type Observers = Inflation; - type AccountCheck = (); - type TierSlots = StandardTierSlots; - type BaseNativeCurrencyPrice = BaseNativeCurrencyPrice; - type EraRewardSpanLength = ConstU32<8>; - type RewardRetentionInPeriods = ConstU32<2>; - type MaxNumberOfContracts = ConstU32<100>; - type MaxUnlockingChunks = ConstU32<5>; - type MinimumLockedAmount = ConstU128; - type UnlockingPeriod = ConstU32<2>; - type MaxNumberOfStakedContracts = ConstU32<3>; - type MinimumStakeAmount = ConstU128; - type NumberOfTiers = ConstU32<4>; - type RankingEnabled = ConstBool; - type MaxBonusSafeMovesPerPeriod = ConstU8<0>; - type WeightInfo = pallet_dapp_staking::weights::SubstrateWeight; - #[cfg(feature = "runtime-benchmarks")] - type BenchmarkHelper = BenchmarkHelper, AccountId>; -} - -pub struct InflationPayoutPerBlock; -impl pallet_inflation::PayoutPerBlock> for InflationPayoutPerBlock { - fn treasury(reward: Credit) { - let _ = Balances::resolve(&TreasuryPalletId::get().into_account_truncating(), reward); - } - - fn collators(_reward: Credit) { - // no collators for local dev node - } -} - -pub struct InflationCycleConfig; -impl CycleConfiguration for InflationCycleConfig { - fn periods_per_cycle() -> PeriodNumber { - 4 - } - - fn eras_per_voting_subperiod() -> EraNumber { - 2 - } - - fn eras_per_build_and_earn_subperiod() -> EraNumber { - 22 - } - - fn blocks_per_era() -> BlockNumber { - 30 - } -} - -impl pallet_inflation::Config for Runtime { - type Currency = Balances; - type PayoutPerBlock = InflationPayoutPerBlock; - type CycleConfiguration = InflationCycleConfig; - type WeightInfo = pallet_inflation::weights::SubstrateWeight; -} - -impl pallet_utility::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PalletsOrigin = OriginCaller; - type WeightInfo = pallet_utility::weights::SubstrateWeight; -} - -parameter_types! { - // 2 storage items with value size 20 and 32 - pub const AccountMappingStorageFee: u128 = deposit(2, 32 + 20); -} - -impl pallet_unified_accounts::Config for Runtime { - type Currency = Balances; - type DefaultMappings = HashedDefaultMappings; - type ChainId = ChainId; - type AccountMappingStorageFee = AccountMappingStorageFee; - type WeightInfo = pallet_unified_accounts::weights::SubstrateWeight; -} - -parameter_types! { - pub ReservedXcmpWeight: Weight = Weight::zero(); -} - -impl pallet_ethereum_checked::Config for Runtime { - type ReservedXcmpWeight = ReservedXcmpWeight; - type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; - type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; - type AddressMapper = UnifiedAccounts; - type XcmTransactOrigin = pallet_ethereum_checked::EnsureXcmEthereumTx; - type WeightInfo = pallet_ethereum_checked::weights::SubstrateWeight; -} - -/// Current approximation of the gas/s consumption considering -/// EVM execution over compiled WASM (on 4.4Ghz CPU). -/// Given the 500ms Weight, from which 75% only are used for transactions, -/// the total EVM execution gas limit is: GAS_PER_SECOND * 0.500 * 0.75 ~= 15_000_000. -pub const GAS_PER_SECOND: u64 = 40_000_000; - -/// Approximate ratio of the amount of Weight per Gas. -/// u64 works for approximations because Weight is a very small unit compared to gas. -pub const WEIGHT_PER_GAS: u64 = WEIGHT_REF_TIME_PER_SECOND.saturating_div(GAS_PER_SECOND); - -pub struct FindAuthorTruncated(PhantomData); -impl> FindAuthor for FindAuthorTruncated { - fn find_author<'a, I>(digests: I) -> Option - where - I: 'a + IntoIterator, - { - if let Some(author_index) = F::find_author(digests) { - let authority_id = - pallet_aura::Authorities::::get()[author_index as usize].clone(); - return Some(H160::from_slice(&authority_id.encode()[4..24])); - } - - None - } -} - -parameter_types! { - /// Ethereum-compatible chain_id: - /// * Dusty: 80 - /// * Shibuya: 81 - /// * Shiden: 336 - /// * Local: 4369 - pub ChainId: u64 = 0x1111; - /// EVM gas limit - pub BlockGasLimit: U256 = U256::from( - NORMAL_DISPATCH_RATIO * WEIGHT_REF_TIME_PER_SECOND / WEIGHT_PER_GAS - ); - pub PrecompilesValue: Precompiles = LocalPrecompiles::<_>::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 { - type FeeCalculator = DynamicEvmBaseFee; - type GasWeightMapping = pallet_evm::FixedGasWeightMapping; - type WeightPerGas = WeightPerGas; - type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; - type CallOrigin = pallet_evm::EnsureAddressRoot; - type WithdrawOrigin = pallet_evm::EnsureAddressTruncated; - type AddressMapping = UnifiedAccounts; - type Currency = Balances; - type Runner = pallet_evm::runner::stack::Runner; - type PrecompilesType = Precompiles; - type PrecompilesValue = PrecompilesValue; - type ChainId = ChainId; - type OnChargeTransaction = pallet_evm::EVMFungibleAdapter; - type BlockGasLimit = BlockGasLimit; - type Timestamp = Timestamp; - type OnCreate = (); - type FindAuthor = FindAuthorTruncated; - type GasLimitPovSizeRatio = GasLimitPovSizeRatio; - type AccountProvider = pallet_evm::FrameSystemAccountProvider; - // gas based storage limit not enabled - type GasLimitStorageGrowthRatio = ConstU64<0>; - type CreateOriginFilter = (); - type CreateInnerOriginFilter = (); - type WeightInfo = pallet_evm::weights::SubstrateWeight; -} - -parameter_types! { - pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; -} - -impl pallet_ethereum::Config for Runtime { - type StateRoot = - pallet_ethereum::IntermediateStateRoot<::Version>; - type PostLogContent = PostBlockAndTxnHashes; - // Maximum length (in bytes) of revert message to include in Executed event - type ExtraDataLength = ConstU32<30>; -} - -parameter_types! { - pub MaximumSchedulerWeight: Weight = NORMAL_DISPATCH_RATIO * RuntimeBlockWeights::get().max_block; -} - -impl pallet_scheduler::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type PalletsOrigin = OriginCaller; - type RuntimeCall = RuntimeCall; - type MaximumWeight = MaximumSchedulerWeight; - type ScheduleOrigin = EnsureRoot; - type MaxScheduledPerBlock = ConstU32<50>; - // TODO: re-bench pallet_scheduler weights or use default weights. - type WeightInfo = pallet_scheduler::weights::SubstrateWeight; - type OriginPrivilegeCmp = EqualPrivilegeOnly; - type Preimages = Preimage; - type BlockNumberProvider = System; -} - -parameter_types! { - pub const PreimageBaseDeposit: Balance = deposit(1, 0); - pub const PreimageByteDeposit: Balance = deposit(0, 1); - pub const PreimageHoldReason: RuntimeHoldReason = RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); -} - -impl pallet_preimage::Config for Runtime { - type WeightInfo = pallet_preimage::weights::SubstrateWeight; - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type ManagerOrigin = EnsureRoot; - type Consideration = HoldConsideration< - AccountId, - Balances, - PreimageHoldReason, - LinearStoragePrice, - >; -} - -parameter_types! { - pub const MinVestedTransfer: Balance = 1 * AST; - pub UnvestedFundsAllowedWithdrawReasons: WithdrawReasons = - WithdrawReasons::except(WithdrawReasons::TRANSFER | WithdrawReasons::RESERVE); -} - -impl pallet_vesting::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type BlockNumberToBalance = ConvertInto; - type MinVestedTransfer = MinVestedTransfer; - type WeightInfo = pallet_vesting::weights::SubstrateWeight; - type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; - type BlockNumberProvider = System; - // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the - // highest number of schedules that encodes less than 2^10. - const MAX_VESTING_SCHEDULES: u32 = 28; -} - -parameter_types! { - pub const DepositPerItem: Balance = deposit(1, 0); - pub const DepositPerByte: Balance = deposit(0, 1); - // Fallback value if storage deposit limit not set by the user - pub const DefaultDepositLimit: Balance = deposit(16, 16 * 1024); - pub const MaxDelegateDependencies: u32 = 32; - pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(10); - pub Schedule: pallet_contracts::Schedule = Default::default(); -} - -impl pallet_contracts::Config for Runtime { - type Time = Timestamp; - type Randomness = RandomnessCollectiveFlip; - type Currency = Balances; - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - /// The safest default is to allow no calls at all. - /// - /// Runtimes should whitelist dispatchables that are allowed to be called from contracts - /// and make sure they are stable. Dispatchables exposed to contracts are not allowed to - /// change because that would break already deployed contracts. The `Call` structure itself - /// is not allowed to change the indices of existing pallets, too. - 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 = LocalChainExtensions; - type Schedule = Schedule; - type AddressGenerator = pallet_contracts::DefaultAddressGenerator; - type MaxCodeLen = ConstU32<{ 123 * 1024 }>; - type MaxStorageKeyLen = ConstU32<128>; - type UnsafeUnstableInterface = ConstBool; - type MaxDebugBufferLen = ConstU32<{ 2 * 1024 * 1024 }>; - type MaxDelegateDependencies = MaxDelegateDependencies; - type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; - type RuntimeHoldReason = RuntimeHoldReason; - type Debug = (); - type Environment = (); - type Migrations = (); - type Xcm = (); - type UploadOrigin = EnsureSigned<::AccountId>; - type InstantiateOrigin = EnsureSigned<::AccountId>; - type ApiVersion = (); - type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; -} - -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. -#[derive( - Copy, - Clone, - Eq, - PartialEq, - Ord, - PartialOrd, - Encode, - Decode, - DecodeWithMemTracking, - RuntimeDebug, - MaxEncodedLen, - scale_info::TypeInfo, -)] -pub enum ProxyType { - /// Allows all runtime calls for proxy account - Any, - /// Allows only NonTransfer runtime calls for proxy account - /// To know exact calls check InstanceFilter implementation for ProxyTypes - NonTransfer, - /// All Runtime calls from Pallet Balances allowed for proxy account - Balances, - /// All Runtime calls from Pallet Assets allowed for proxy account - Assets, - /// Only reject_announcement call from pallet proxy allowed for proxy account - CancelProxy, - /// All runtime calls from pallet DappStaking allowed for proxy account - DappStaking, - /// Only claim_staker call from pallet DappStaking allowed for proxy account - StakerRewardClaim, - /// All governance related calls allowed for proxy account - Governance, -} - -impl Default for ProxyType { - fn default() -> Self { - Self::Any - } -} - -impl InstanceFilter for ProxyType { - fn filter(&self, c: &RuntimeCall) -> bool { - match self { - // Always allowed RuntimeCall::Utility no matter type. - // Only transactions allowed by Proxy.filter can be executed - _ if matches!(c, RuntimeCall::Utility(..)) => true, - // Allows all runtime calls for proxy account - ProxyType::Any => true, - // Allows only NonTransfer runtime calls for proxy account - ProxyType::NonTransfer => { - matches!( - c, - RuntimeCall::System(..) - | RuntimeCall::Proxy(..) - | RuntimeCall::Vesting( - pallet_vesting::Call::vest { .. } - | pallet_vesting::Call::vest_other { .. } - ) - | RuntimeCall::DappStaking(..) - ) - } - // All Runtime calls from Pallet Balances allowed for proxy account - ProxyType::Balances => { - matches!(c, RuntimeCall::Balances(..)) - } - // All Runtime calls from Pallet Assets allowed for proxy account - ProxyType::Assets => { - matches!(c, RuntimeCall::Assets(..)) - } - // Only reject_announcement call from pallet proxy allowed for proxy account - ProxyType::CancelProxy => { - matches!( - c, - RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) - ) - } - // All runtime calls from pallet DappStaking allowed for proxy account - ProxyType::DappStaking => { - matches!(c, RuntimeCall::DappStaking(..)) - } - ProxyType::StakerRewardClaim => { - matches!( - c, - RuntimeCall::DappStaking( - pallet_dapp_staking::Call::claim_staker_rewards { .. } - ) - ) - } - ProxyType::Governance => { - matches!( - c, - RuntimeCall::Democracy(..) - | RuntimeCall::Council(..) - | RuntimeCall::TechnicalCommittee(..) - | RuntimeCall::CommunityCouncil(..) - ) - } - } - } - - fn is_superset(&self, o: &Self) -> bool { - match (self, o) { - (x, y) if x == y => true, - (ProxyType::Any, _) => true, - (_, ProxyType::Any) => false, - (ProxyType::NonTransfer, _) => true, - (ProxyType::DappStaking, ProxyType::StakerRewardClaim) => true, - _ => false, - } - } -} - -impl pallet_proxy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type Currency = Balances; - type ProxyType = ProxyType; - // One storage item; key size 32, value size 8; . - type ProxyDepositBase = ConstU128<{ AST * 10 }>; - // Additional storage item size of 33 bytes. - type ProxyDepositFactor = ConstU128<{ MILLIAST * 330 }>; - type MaxProxies = ConstU32<32>; - type WeightInfo = pallet_proxy::weights::SubstrateWeight; - type MaxPending = ConstU32<32>; - type CallHasher = BlakeTwo256; - // Key size 32 + 1 item - type AnnouncementDepositBase = ConstU128<{ AST * 10 }>; - // Acc Id + Hash + block number - type AnnouncementDepositFactor = ConstU128<{ MILLIAST * 660 }>; - type BlockNumberProvider = System; -} - -parameter_types! { - pub const CouncilMaxMembers: u32 = 5; - pub const TechnicalCommitteeMaxMembers: u32 = 3; - pub const CommunityCouncilMaxMembers: u32 = 10; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsMainCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsMainCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsMainCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsMainCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsMainCouncil; - type MembershipInitialized = Council; - type MembershipChanged = Council; - type MaxMembers = CouncilMaxMembers; - type WeightInfo = pallet_membership::weights::SubstrateWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsMainCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsMainCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsMainCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsMainCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsMainCouncil; - type MembershipInitialized = TechnicalCommittee; - type MembershipChanged = TechnicalCommittee; - type MaxMembers = TechnicalCommitteeMaxMembers; - type WeightInfo = pallet_membership::weights::SubstrateWeight; -} - -impl pallet_membership::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type AddOrigin = EnsureRootOrTwoThirdsMainCouncil; - type RemoveOrigin = EnsureRootOrTwoThirdsMainCouncil; - type SwapOrigin = EnsureRootOrTwoThirdsMainCouncil; - type ResetOrigin = EnsureRootOrTwoThirdsMainCouncil; - type PrimeOrigin = EnsureRootOrTwoThirdsMainCouncil; - type MembershipInitialized = CommunityCouncil; - type MembershipChanged = CommunityCouncil; - type MaxMembers = CommunityCouncilMaxMembers; - type WeightInfo = pallet_membership::weights::SubstrateWeight; -} - -parameter_types! { - pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = ConstU32<{ 5 * MINUTES }>; - type MaxProposals = ConstU32<16>; - type MaxMembers = CouncilMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type MaxProposalWeight = MaxProposalWeight; - type KillOrigin = EnsureRoot; - type DisapproveOrigin = EnsureRoot; - type Consideration = (); - type WeightInfo = pallet_collective::weights::SubstrateWeight; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = ConstU32<{ 5 * MINUTES }>; - type MaxProposals = ConstU32<16>; - type MaxMembers = TechnicalCommitteeMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type MaxProposalWeight = MaxProposalWeight; - type KillOrigin = EnsureRoot; - type DisapproveOrigin = EnsureRoot; - type Consideration = (); - type WeightInfo = pallet_collective::weights::SubstrateWeight; -} - -impl pallet_collective::Config for Runtime { - type RuntimeOrigin = RuntimeOrigin; - type Proposal = RuntimeCall; - type RuntimeEvent = RuntimeEvent; - type MotionDuration = ConstU32<{ 5 * MINUTES }>; - type MaxProposals = ConstU32<16>; - type MaxMembers = CommunityCouncilMaxMembers; - type DefaultVote = pallet_collective::PrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; - type MaxProposalWeight = MaxProposalWeight; - type KillOrigin = EnsureRoot; - type DisapproveOrigin = EnsureRoot; - type Consideration = (); - type WeightInfo = pallet_collective::weights::SubstrateWeight; -} - -impl pallet_democracy::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type EnactmentPeriod = ConstU32<{ 5 * MINUTES }>; - type LaunchPeriod = ConstU32<{ 5 * MINUTES }>; - type VotingPeriod = ConstU32<{ 5 * MINUTES }>; - type VoteLockingPeriod = ConstU32<{ 2 * MINUTES }>; - type MinimumDeposit = ConstU128<{ 10 * AST }>; - type FastTrackVotingPeriod = ConstU32<{ MINUTES / 2 }>; - type CooloffPeriod = ConstU32<{ 2 * MINUTES }>; - - type MaxVotes = ConstU32<128>; - type MaxProposals = ConstU32<128>; - type MaxDeposits = ConstU32<128>; - type MaxBlacklisted = ConstU32<128>; - - /// A two third majority of the Council can choose the next external "super majority approve" proposal. - type ExternalOrigin = EnsureRootOrTwoThirdsMainCouncil; - /// A two third majority of the Council can choose the next external "majority approve" proposal. Also bypasses blacklist filter. - type ExternalMajorityOrigin = EnsureRootOrTwoThirdsMainCouncil; - /// Unanimous approval of the Council can choose the next external "super majority against" proposal. - type ExternalDefaultOrigin = EnsureRootOrAllMainCouncil; - /// A two third majority of the Technical Committee can have an external proposal tabled immediately - /// for a _fast track_ vote, and a custom enactment period. - type FastTrackOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - /// Unanimous approval of the Technical Committee can have an external proposal tabled immediately - /// for a completely custom _voting period length_ vote, and a custom enactment period. - type InstantOrigin = EnsureRootOrAllTechnicalCommittee; - type InstantAllowed = ConstBool; - - /// A two third majority of the Council can cancel a passed proposal. Can happen only once per unique proposal. - type CancellationOrigin = EnsureRootOrTwoThirdsMainCouncil; - /// Only a passed public referendum can permanently blacklist a proposal. - type BlacklistOrigin = EnsureRoot; - /// An unanimous Technical Committee can cancel a public proposal, slashing the deposit(s). - type CancelProposalOrigin = EnsureRootOrAllTechnicalCommittee; - /// Any member of the Technical Committee can veto Council's proposal. This can be only done once per proposal, and _veto_ lasts for a _cooloff_ period. - type VetoOrigin = pallet_collective::EnsureMember; - - type SubmitOrigin = EnsureSigned; - type PalletsOrigin = OriginCaller; - type Preimages = Preimage; - type Scheduler = Scheduler; - type Slash = (); - type WeightInfo = pallet_democracy::weights::SubstrateWeight; -} - -parameter_types! { - pub const ProposalBond: Permill = Permill::from_percent(5); - pub MainTreasuryAccount: AccountId = Treasury::account_id(); -} - -impl pallet_treasury::Config for Runtime { - type PalletId = TreasuryPalletId; - type Currency = Balances; - type RuntimeEvent = RuntimeEvent; - - // Two origins which can either approve or reject the spending proposal - type ApproveOrigin = EnsureRootOrTwoThirdsMainCouncil; - type RejectOrigin = EnsureRootOrTwoThirdsMainCouncil; - - type OnSlash = Treasury; - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ConstU128<{ 10 * AST }>; - type ProposalBondMaximum = ConstU128<{ 100 * AST }>; - type SpendPeriod = ConstU32<{ 1 * MINUTES }>; - - // We don't do periodic burns of the treasury - type Burn = (); - type BurnDestination = (); - type SpendFunds = (); - type MaxApprovals = ConstU32<64>; - - type WeightInfo = pallet_treasury::weights::SubstrateWeight; -} - -parameter_types! { - pub const CommunityTreasuryPalletId: PalletId = PalletId(*b"py/comtr"); -} - -impl pallet_treasury::Config for Runtime { - type PalletId = CommunityTreasuryPalletId; - type Currency = Balances; - type RuntimeEvent = RuntimeEvent; - - // Two origins which can either approve or reject the spending proposal - type ApproveOrigin = EnsureRootOrTwoThirdsCommunityCouncil; - type RejectOrigin = EnsureRootOrTwoThirdsCommunityCouncil; - - type OnSlash = CommunityTreasury; - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ConstU128<{ 10 * AST }>; - type ProposalBondMaximum = ConstU128<{ 100 * AST }>; - type SpendPeriod = ConstU32<{ 1 * MINUTES }>; - - // We don't do periodic burns of the community treasury - type Burn = (); - type BurnDestination = (); - type SpendFunds = (); - type MaxApprovals = ConstU32<64>; - - type WeightInfo = pallet_treasury::weights::SubstrateWeight; -} - -parameter_types! { - pub CommunityTreasuryAccountId: AccountId = CommunityTreasuryPalletId::get().into_account_truncating(); -} - -#[derive(Default)] -pub struct CommunityCouncilCallFilter; -impl InstanceFilter for CommunityCouncilCallFilter { - fn filter(&self, c: &RuntimeCall) -> bool { - matches!( - c, - RuntimeCall::DappStaking(..) - | RuntimeCall::System(frame_system::Call::remark { .. }) - | RuntimeCall::Utility(pallet_utility::Call::batch { .. }) - | RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) - ) - } -} - -impl pallet_collective_proxy::Config for Runtime { - type RuntimeCall = RuntimeCall; - type CollectiveProxy = EnsureRootOrTwoThirdsCommunityCouncil; - type ProxyAccountId = CommunityTreasuryAccountId; - type CallFilter = CommunityCouncilCallFilter; - type WeightInfo = pallet_collective_proxy::weights::SubstrateWeight; -} - -/// Calls that can bypass the safe-mode pallet. -pub struct SafeModeWhitelistedCalls; -impl Contains for SafeModeWhitelistedCalls { - fn contains(call: &RuntimeCall) -> bool { - match call { - // System and Timestamp are required for block production - RuntimeCall::System(_) - | RuntimeCall::Timestamp(_) - | RuntimeCall::Sudo(_) - | RuntimeCall::TxPause(_) => true, - _ => false, - } - } -} - -impl pallet_safe_mode::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type WhitelistedCalls = SafeModeWhitelistedCalls; - type EnterDuration = ConstU32<{ 5 * MINUTES }>; - type EnterDepositAmount = (); - type ExtendDuration = ConstU32<{ 2 * MINUTES }>; - type ExtendDepositAmount = (); - // The 'Success' values below represent the number of blocks that the origin may induce safe mode - type ForceEnterOrigin = - EnsureWithSuccess>; - type ForceExtendOrigin = - EnsureWithSuccess>; - type ForceExitOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type ForceDepositOrigin = EnsureRootOrTwoThirdsTechnicalCommittee; - type ReleaseDelay = (); - type Notify = DappStaking; - type WeightInfo = pallet_safe_mode::weights::SubstrateWeight; -} - -impl pallet_tx_pause::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type RuntimeCall = RuntimeCall; - type PauseOrigin = EnsureRootOrHalfTechnicalCommittee; - type UnpauseOrigin = EnsureRootOrHalfTechnicalCommittee; - type WhitelistedCalls = (); - type MaxNameLen = ConstU32<256>; - type WeightInfo = pallet_tx_pause::weights::SubstrateWeight; -} - -construct_runtime!( - pub struct Runtime { - System: frame_system = 10, - Utility: pallet_utility = 11, - Timestamp: pallet_timestamp = 13, - RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip = 16, - Scheduler: pallet_scheduler = 17, - Proxy: pallet_proxy = 18, - - TransactionPayment: pallet_transaction_payment = 30, - Balances: pallet_balances = 31, - Vesting: pallet_vesting = 32, - DappStaking: pallet_dapp_staking = 34, - Inflation: pallet_inflation = 35, - Assets: pallet_assets = 36, - StaticPriceProvider: pallet_static_price_provider = 37, - - Aura: pallet_aura = 43, - Grandpa: pallet_grandpa = 44, - - EVM: pallet_evm = 60, - Ethereum: pallet_ethereum = 61, - DynamicEvmBaseFee: pallet_dynamic_evm_base_fee = 62, - EthereumChecked: pallet_ethereum_checked = 64, - UnifiedAccounts: pallet_unified_accounts = 65, - - Contracts: pallet_contracts = 70, - - Preimage: pallet_preimage = 84, - - // skip 90 - for runtimes consistency (pallet_xvm previously) - - // Governance - Sudo: pallet_sudo = 99, - CouncilMembership: pallet_membership:: = 100, - TechnicalCommitteeMembership: pallet_membership:: = 101, - CommunityCouncilMembership: pallet_membership:: = 102, - Council: pallet_collective:: = 103, - TechnicalCommittee: pallet_collective:: = 104, - CommunityCouncil: pallet_collective:: = 105, - Democracy: pallet_democracy = 106, - Treasury: pallet_treasury:: = 107, - CommunityTreasury: pallet_treasury:: = 108, - CollectiveProxy: pallet_collective_proxy = 109, - SafeMode: pallet_safe_mode = 110, - TxPause: pallet_tx_pause = 111, - } -); - -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, - frame_metadata_hash_extension::CheckMetadataHash, -); -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = - fp_self_contained::UncheckedExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = - fp_self_contained::CheckedExtrinsic; -/// The payload being signed in transactions. -pub type SignedPayload = generic::SignedPayload; -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPalletsWithSystem, - Migrations, ->; - -pub type Migrations = (); - -type EventRecord = frame_system::EventRecord< - ::RuntimeEvent, - ::Hash, ->; - -impl fp_self_contained::SelfContainedCall for RuntimeCall { - type SignedInfo = H160; - - fn is_self_contained(&self) -> bool { - match self { - RuntimeCall::Ethereum(call) => call.is_self_contained(), - _ => false, - } - } - - fn check_self_contained(&self) -> Option> { - match self { - RuntimeCall::Ethereum(call) => call.check_self_contained(), - _ => None, - } - } - - fn validate_self_contained( - &self, - info: &Self::SignedInfo, - dispatch_info: &DispatchInfoOf, - len: usize, - ) -> Option { - match self { - RuntimeCall::Ethereum(call) => call.validate_self_contained(info, dispatch_info, len), - _ => None, - } - } - - fn pre_dispatch_self_contained( - &self, - info: &Self::SignedInfo, - dispatch_info: &DispatchInfoOf, - len: usize, - ) -> Option> { - match self { - RuntimeCall::Ethereum(call) => { - call.pre_dispatch_self_contained(info, dispatch_info, len) - } - _ => None, - } - } - - fn apply_self_contained( - self, - info: Self::SignedInfo, - ) -> Option>> { - match self { - call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => { - Some(call.dispatch(RuntimeOrigin::from( - pallet_ethereum::RawOrigin::EthereumTransaction(info), - ))) - } - _ => None, - } - } -} - -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - -#[cfg(feature = "runtime-benchmarks")] -mod benches { - define_benchmarks!( - [frame_benchmarking, BaselineBench::] - [pallet_assets, pallet_assets::Pallet::] - [frame_system, SystemBench::] - [frame_system_extensions, SystemExtensionsBench::] - [pallet_balances, Balances] - [pallet_timestamp, Timestamp] - [pallet_transaction_payment, TransactionPayment] - [pallet_ethereum_checked, EthereumChecked] - [pallet_dapp_staking, DappStaking] - [pallet_inflation, Inflation] - [pallet_dynamic_evm_base_fee, DynamicEvmBaseFee] - [pallet_tx_pause, TxPause] - [pallet_safe_mode, SafeMode] - ); -} - -impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block); - } - - fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - OpaqueMetadata::new(Runtime::metadata().into()) - } - - fn metadata_at_version(version: u32) -> Option { - Runtime::metadata_at_version(version) - } - - fn metadata_versions() -> Vec { - Runtime::metadata_versions() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - block_hash: ::Hash, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx, block_hash) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(SLOT_DURATION) - } - - fn authorities() -> Vec { - pallet_aura::Authorities::::get().into_inner() - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl fg_primitives::GrandpaApi for Runtime { - fn grandpa_authorities() -> GrandpaAuthorityList { - Grandpa::grandpa_authorities() - } - - fn current_set_id() -> fg_primitives::SetId { - Grandpa::current_set_id() - } - - fn submit_report_equivocation_unsigned_extrinsic( - _equivocation_proof: fg_primitives::EquivocationProof< - ::Hash, - NumberFor, - >, - _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, - ) -> Option<()> { - None - } - - fn generate_key_ownership_proof( - _set_id: fg_primitives::SetId, - _authority_id: GrandpaId, - ) -> Option { - // NOTE: this is the only implementation possible since we've - // defined our key owner proof type as a bottom type (i.e. a type - // with no values). - None - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Nonce { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi - for Runtime - { - fn query_call_info( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::RuntimeDispatchInfo { - TransactionPayment::query_call_info(call, len) - } - fn query_call_fee_details( - call: RuntimeCall, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_call_fee_details(call, len) - } - fn query_weight_to_fee(weight: Weight) -> Balance { - TransactionPayment::weight_to_fee(weight) - } - - fn query_length_to_fee(length: u32) -> Balance { - TransactionPayment::length_to_fee(length) - } - } - - impl fp_rpc::EthereumRuntimeRPCApi for Runtime { - fn chain_id() -> u64 { - ChainId::get() - } - - fn account_basic(address: H160) -> pallet_evm::Account { - let (account, _) = EVM::account_basic(&address); - account - } - - fn gas_price() -> U256 { - let (gas_price, _) = ::FeeCalculator::min_gas_price(); - gas_price - } - - fn account_code_at(address: H160) -> Vec { - pallet_evm::AccountCodes::::get(address) - } - - fn author() -> H160 { - >::find_author() - } - - fn storage_at(address: H160, index: U256) -> H256 { - let tmp: [u8; 32] = index.to_big_endian(); - pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) - } - - fn call( - from: H160, - to: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - authorization_list: Option, - ) -> Result { - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - 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, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - authorization_list.unwrap_or_default(), - is_transactional, - validate, - weight_limit, - proof_size_base_cost, - config - .as_ref() - .unwrap_or_else(|| ::config()), - ) - .map_err(|err| err.error.into()) - } - - fn create( - from: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - authorization_list: Option, - ) -> Result { - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - 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, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - authorization_list.unwrap_or_default(), - is_transactional, - validate, - weight_limit, - proof_size_base_cost, - config - .as_ref() - .unwrap_or(::config()), - ) - .map_err(|err| err.error.into()) - } - - fn current_transaction_statuses() -> Option> { - pallet_ethereum::CurrentTransactionStatuses::::get() - } - - fn current_block() -> Option { - pallet_ethereum::CurrentBlock::::get() - } - - fn current_receipts() -> Option> { - pallet_ethereum::CurrentReceipts::::get() - } - - fn current_all() -> ( - Option, - Option>, - Option>, - ) { - ( - pallet_ethereum::CurrentBlock::::get(), - pallet_ethereum::CurrentReceipts::::get(), - pallet_ethereum::CurrentTransactionStatuses::::get() - ) - } - - fn extrinsic_filter( - xts: Vec<::Extrinsic>, - ) -> Vec { - xts.into_iter().filter_map(|xt| match xt.0.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => Some(transaction), - _ => None - }).collect::>() - } - - fn elasticity() -> Option { - Some(Permill::zero()) - } - - 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() - ) - } - - fn initialize_pending_block(header: &::Header) { - Executive::initialize_block(header); - } - } - - impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { - fn convert_transaction( - transaction: pallet_ethereum::Transaction - ) -> ::Extrinsic { - UncheckedExtrinsic::new_bare( - pallet_ethereum::Call::::transact { transaction }.into(), - ) - } - } - - impl pallet_contracts::ContractsApi for Runtime { - fn call( - origin: AccountId, - dest: AccountId, - value: Balance, - gas_limit: Option, - storage_deposit_limit: Option, - input_data: Vec, - ) -> pallet_contracts::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, - pallet_contracts::DebugInfo::UnsafeDebug, - pallet_contracts::CollectEvents::UnsafeCollect, - pallet_contracts::Determinism::Enforced, - ) - } - - fn instantiate( - origin: AccountId, - value: Balance, - gas_limit: Option, - storage_deposit_limit: Option, - code: pallet_contracts::Code, - data: Vec, - salt: Vec, - ) -> pallet_contracts::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, - pallet_contracts::DebugInfo::UnsafeDebug, - pallet_contracts::CollectEvents::UnsafeCollect, - ) - } - - fn upload_code( - origin: AccountId, - code: Vec, - storage_deposit_limit: Option, - determinism: pallet_contracts::Determinism, - ) -> pallet_contracts::CodeUploadResult - { - Contracts::bare_upload_code(origin, code, storage_deposit_limit, determinism) - } - - fn get_storage( - address: AccountId, - key: Vec, - ) -> pallet_contracts::GetStorageResult { - Contracts::get_storage(address, key) - } - } - - impl dapp_staking_runtime_api::DappStakingApi for Runtime { - fn periods_per_cycle() -> PeriodNumber { - InflationCycleConfig::periods_per_cycle() - } - - fn eras_per_voting_subperiod() -> EraNumber { - InflationCycleConfig::eras_per_voting_subperiod() - } - - fn eras_per_build_and_earn_subperiod() -> EraNumber { - InflationCycleConfig::eras_per_build_and_earn_subperiod() - } - - fn blocks_per_era() -> BlockNumber { - InflationCycleConfig::blocks_per_era() - } - - fn get_dapp_tier_assignment() -> BTreeMap { - DappStaking::get_dapp_tier_assignment() - } - } - - - impl sp_genesis_builder::GenesisBuilder for Runtime { - - fn build_state(config: Vec) -> sp_genesis_builder::Result { - genesis_builder_helper::build_state::(config) - } - - fn get_preset(id: &Option) -> Option> { - genesis_builder_helper::get_preset::(id, &genesis_config::get_preset) - } - - fn preset_names() -> Vec { - vec![ - sp_genesis_builder::PresetId::from("development"), - ] - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn benchmark_metadata(extra: bool) -> ( - Vec, - Vec, - ) { - use frame_benchmarking::{baseline, BenchmarkList}; - use frame_support::traits::StorageInfoTrait; - pub use frame_system_benchmarking::{ - extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench - }; - use baseline::Pallet as BaselineBench; - - let mut list = Vec::::new(); - list_benchmarks!(list, extra); - - let storage_info = AllPalletsWithSystem::storage_info(); - - (list, storage_info) - } - - #[allow(non_local_definitions)] - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, alloc::string::String> { - use frame_benchmarking::{baseline, BenchmarkBatch}; - pub use frame_system_benchmarking::{ - extensions::Pallet as SystemExtensionsBench, Pallet as SystemBench - }; - use baseline::Pallet as BaselineBench; - - impl frame_system_benchmarking::Config for Runtime {} - impl baseline::Config for Runtime {} - - use frame_support::traits::{WhitelistedStorageKeys, TrackedStorageKey}; - let whitelist: Vec = AllPalletsWithSystem::whitelisted_storage_keys(); - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - add_benchmarks!(params, batches); - - if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } - Ok(batches) - } - } - - impl moonbeam_rpc_primitives_debug::DebugRuntimeApi for Runtime { - fn trace_transaction( - extrinsics: Vec<::Extrinsic>, - traced_transaction: &pallet_ethereum::Transaction, - header: &::Header, - ) -> Result< - (), - sp_runtime::DispatchError, - > { - use moonbeam_evm_tracer::tracer::EvmTracer; - - // We need to follow the order when replaying the transactions. - // Block initialize happens first then apply_extrinsic. - Executive::initialize_block(header); - - // Apply the a subset of extrinsics: all the substrate-specific or ethereum - // transactions that preceded the requested transaction. - for ext in extrinsics.into_iter() { - let _ = match &ext.0.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => { - if transaction == traced_transaction { - EvmTracer::new().trace(|| Executive::apply_extrinsic(ext)); - return Ok(()); - } else { - Executive::apply_extrinsic(ext) - } - } - _ => Executive::apply_extrinsic(ext), - }; - } - Err(sp_runtime::DispatchError::Other( - "Failed to find Ethereum transaction among the extrinsics.", - )) - } - - fn trace_block( - extrinsics: Vec<::Extrinsic>, - known_transactions: Vec, - header: &::Header, - ) -> Result< - (), - sp_runtime::DispatchError, - > { - use moonbeam_evm_tracer::tracer::EvmTracer; - - let mut config = ::config().clone(); - config.estimate = true; - - // We need to follow the order when replaying the transactions. - // Block initialize happens first then apply_extrinsic. - Executive::initialize_block(header); - - // Apply all extrinsics. Ethereum extrinsics are traced. - for ext in extrinsics.into_iter() { - match &ext.0.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => { - if known_transactions.contains(&transaction.hash()) { - // Each known extrinsic is a new call stack. - EvmTracer::emit_new(); - EvmTracer::new().trace(|| Executive::apply_extrinsic(ext)); - } else { - let _ = Executive::apply_extrinsic(ext); - } - } - _ => { - let _ = Executive::apply_extrinsic(ext); - } - }; - } - - Ok(()) - } - - fn trace_call( - header: &::Header, - from: H160, - to: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - access_list: Option)>>, - authorization_list: Option, - ) -> Result<(), sp_runtime::DispatchError> { - use moonbeam_evm_tracer::tracer::EvmTracer; - - // Initialize block: calls the "on_initialize" hook on every pallet - // in AllPalletsWithSystem. - Executive::initialize_block(header); - - EvmTracer::new().trace(|| { - let is_transactional = false; - let validate = true; - let without_base_extrinsic_weight = true; - - - // Estimated encoded transaction size must be based on the heaviest transaction - // type (EIP1559Transaction) to be compatible with all transaction types. - let mut estimated_transaction_len = data.len() + - // pallet ethereum index: 1 - // transact call index: 1 - // Transaction enum variant: 1 - // chain_id 8 bytes - // nonce: 32 - // max_priority_fee_per_gas: 32 - // max_fee_per_gas: 32 - // gas_limit: 32 - // action: 21 (enum varianrt + call address) - // value: 32 - // access_list: 1 (empty vec size) - // 65 bytes signature - 258; - - if access_list.is_some() { - estimated_transaction_len += access_list.encoded_size(); - } - - let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); - - 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), - }; - - let _ = ::Runner::call( - from, - to, - data, - value, - gas_limit, - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - authorization_list.unwrap_or_default(), - is_transactional, - validate, - weight_limit, - proof_size_base_cost, - ::config(), - ); - }); - Ok(()) - } - } - - impl moonbeam_rpc_primitives_txpool::TxPoolRuntimeApi for Runtime { - fn extrinsic_filter( - xts_ready: Vec<::Extrinsic>, - xts_future: Vec<::Extrinsic>, - ) -> moonbeam_rpc_primitives_txpool::TxPoolResponse { - moonbeam_rpc_primitives_txpool::TxPoolResponse { - ready: xts_ready - .into_iter() - .filter_map(|xt| match xt.0.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => Some(transaction), - _ => None, - }) - .collect(), - future: xts_future - .into_iter() - .filter_map(|xt| match xt.0.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => Some(transaction), - _ => None, - }) - .collect(), - } - } - } - - #[cfg(feature = "try-runtime")] - impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - log::info!("try-runtime::on_runtime_upgrade"); - let weight = Executive::try_runtime_upgrade(checks).unwrap(); - (weight, RuntimeBlockWeights::get().max_block) - } - - fn execute_block( - block: Block, - state_root_check: bool, - signature_check: bool, - select: frame_try_runtime::TryStateSelect - ) -> Weight { - log::info!( - "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", - block.header.number, - block.header.hash(), - state_root_check, - select, - ); - Executive::try_execute_block(block, state_root_check, signature_check, select).expect("execute-block failed") - } - } -} diff --git a/runtime/local/src/precompiles.rs b/runtime/local/src/precompiles.rs deleted file mode 100644 index d9b522d274..0000000000 --- a/runtime/local/src/precompiles.rs +++ /dev/null @@ -1,169 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! The Local Network EVM precompiles. This can be compiled with ``#[no_std]`, ready for Wasm. - -use crate::{Runtime, RuntimeCall, UnifiedAccounts}; -use astar_primitives::precompiles::DispatchFilterValidate; -use frame_support::traits::ConstU32; -use frame_support::{parameter_types, traits::Contains}; -use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; -use pallet_evm_precompile_blake2::Blake2F; -use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; -use pallet_evm_precompile_dapp_staking::DappStakingV3Precompile; -use pallet_evm_precompile_dispatch::Dispatch; -use pallet_evm_precompile_dispatch_lockdrop::DispatchLockdrop; -use pallet_evm_precompile_ed25519::Ed25519Verify; -use pallet_evm_precompile_modexp::Modexp; -use pallet_evm_precompile_sha3fips::Sha3FIPS256; -use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; -use pallet_evm_precompile_sr25519::Sr25519Precompile; -use pallet_evm_precompile_substrate_ecdsa::SubstrateEcdsaPrecompile; -use pallet_evm_precompile_unified_accounts::UnifiedAccountsPrecompile; -use precompile_utils::precompile_set::*; -use sp_std::fmt::Debug; - -/// The asset precompile address prefix. Addresses that match against this prefix will be routed -/// to Erc20AssetsPrecompileSet -pub const ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; -parameter_types! { - pub AssetPrefix: &'static [u8] = ASSET_PRECOMPILE_ADDRESS_PREFIX; -} - -/// Precompile checks for ethereum spec precompiles -/// We allow DELEGATECALL to stay compliant with Ethereum behavior. -type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); - -/// Filter that only allows whitelisted runtime call to pass through dispatch precompile -pub struct WhitelistedCalls; - -impl Contains for WhitelistedCalls { - fn contains(t: &RuntimeCall) -> bool { - match t { - RuntimeCall::Utility(pallet_utility::Call::batch { calls }) - | RuntimeCall::Utility(pallet_utility::Call::batch_all { calls }) => { - calls.iter().all(|call| WhitelistedCalls::contains(call)) - } - RuntimeCall::DappStaking(_) => true, - RuntimeCall::Assets(pallet_assets::Call::transfer { .. }) => true, - RuntimeCall::Democracy(_) - | RuntimeCall::Treasury(_) - | RuntimeCall::CommunityTreasury(_) - | RuntimeCall::Preimage(_) => true, - _ => false, - } - } -} - -/// Filter that only allows whitelisted runtime call to pass through dispatch-lockdrop precompile -pub struct WhitelistedLockdropCalls; - -impl Contains for WhitelistedLockdropCalls { - fn contains(t: &RuntimeCall) -> bool { - match t { - RuntimeCall::Utility(pallet_utility::Call::batch { calls }) - | RuntimeCall::Utility(pallet_utility::Call::batch_all { calls }) => calls - .iter() - .all(|call| WhitelistedLockdropCalls::contains(call)), - RuntimeCall::DappStaking(pallet_dapp_staking::Call::unbond_and_unstake { .. }) => true, - RuntimeCall::DappStaking(pallet_dapp_staking::Call::withdraw_unbonded { .. }) => true, - RuntimeCall::Balances(pallet_balances::Call::transfer_all { .. }) => true, - RuntimeCall::Balances(pallet_balances::Call::transfer_keep_alive { .. }) => true, - RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death { .. }) => true, - RuntimeCall::Assets(pallet_assets::Call::transfer { .. }) => true, - _ => false, - } - } -} - -/// The PrecompileSet installed in the Local runtime. -#[precompile_utils::precompile_name_from_address] -pub type LocalPrecompilesSetAt = ( - // Ethereum precompiles: - // We allow DELEGATECALL to stay compliant with Ethereum behavior. - PrecompileAt, ECRecover, EthereumPrecompilesChecks>, - PrecompileAt, Sha256, EthereumPrecompilesChecks>, - PrecompileAt, Ripemd160, EthereumPrecompilesChecks>, - PrecompileAt, Identity, EthereumPrecompilesChecks>, - PrecompileAt, Modexp, EthereumPrecompilesChecks>, - PrecompileAt, Bn128Add, EthereumPrecompilesChecks>, - PrecompileAt, Bn128Mul, EthereumPrecompilesChecks>, - PrecompileAt, Bn128Pairing, EthereumPrecompilesChecks>, - PrecompileAt, Blake2F, EthereumPrecompilesChecks>, - // Non-Local specific nor Ethereum precompiles : - PrecompileAt< - AddressU64<1024>, - Sha3FIPS256, - (CallableByContract, CallableByPrecompile), - >, - PrecompileAt< - AddressU64<1025>, - Dispatch>, - // Not callable from smart contract nor precompiles, only EOA accounts - (), - >, - PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, - PrecompileAt, Ed25519Verify, (CallableByContract, CallableByPrecompile)>, - // Local specific precompiles: - PrecompileAt< - AddressU64<20481>, - DappStakingV3Precompile, - (CallableByContract, CallableByPrecompile), - >, - PrecompileAt< - AddressU64<20482>, - Sr25519Precompile, - (CallableByContract, CallableByPrecompile), - >, - PrecompileAt< - AddressU64<20483>, - SubstrateEcdsaPrecompile, - (CallableByContract, CallableByPrecompile), - >, - // skip 20484 for xcm precompile - // Skipping 20485 to make sure all network have consistent precompiles address - PrecompileAt< - AddressU64<20486>, - UnifiedAccountsPrecompile, - (CallableByContract, CallableByPrecompile), - >, - PrecompileAt< - AddressU64<20487>, - DispatchLockdrop< - R, - DispatchFilterValidate, - ConstU32<8>, - >, - // Not callable from smart contract nor precompiled, only EOA accounts - (), - >, -); - -pub type LocalPrecompiles = PrecompileSetBuilder< - R, - ( - // Skip precompiles if out of range. - PrecompilesInRangeInclusive< - // We take range as last precompile index, UPDATE this once new precompile is added - (AddressU64<1>, AddressU64<20487>), - LocalPrecompilesSetAt, - >, - // Prefixed precompile sets (XC20) - PrecompileSetStartingWith, CallableByContract>, - ), ->; diff --git a/runtime/local/src/weights/mod.rs b/runtime/local/src/weights/mod.rs deleted file mode 100644 index e36df4ccde..0000000000 --- a/runtime/local/src/weights/mod.rs +++ /dev/null @@ -1,20 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -pub mod pallet_assets; -pub mod pallet_balances; diff --git a/runtime/local/src/weights/pallet_assets.rs b/runtime/local/src/weights/pallet_assets.rs deleted file mode 100644 index 4221949d94..0000000000 --- a/runtime/local/src/weights/pallet_assets.rs +++ /dev/null @@ -1,573 +0,0 @@ - -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! Autogenerated weights for `pallet_assets` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 46.1.0 -//! DATE: 2025-05-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `Ashutoshs-MacBook-Pro.local`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/release/astar-collator -// benchmark -// pallet -// --chain=dev -// --steps=50 -// --repeat=20 -// --pallet=pallet_assets -// --extrinsic=* -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtime/local/src/weights/pallet_assets.rs -// --template=./scripts/templates/weight-template.hbs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] - -use frame_support::{traits::Get, weights::Weight}; -use core::marker::PhantomData; - -/// Weight functions for `pallet_assets`. -pub struct SubstrateWeight(PhantomData); -impl pallet_assets::WeightInfo for SubstrateWeight { - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::NextAssetId` (r:1 w:0) - /// Proof: `Assets::NextAssetId` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `EVM::AccountCodes` (r:1 w:1) - /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn create() -> Weight { - // Proof Size summary in bytes: - // Measured: `695` - // Estimated: `4160` - // Minimum execution time: 36_000_000 picoseconds. - Weight::from_parts(39_000_000, 0) - .saturating_add(Weight::from_parts(0, 4160)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::NextAssetId` (r:1 w:0) - /// Proof: `Assets::NextAssetId` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `EVM::AccountCodes` (r:1 w:1) - /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn force_create() -> Weight { - // Proof Size summary in bytes: - // Measured: `555` - // Estimated: `4020` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) - .saturating_add(Weight::from_parts(0, 4020)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn start_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `360` - // Estimated: `3687` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(14_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1001 w:1000) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1000 w:1000) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1000 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 1000]`. - fn destroy_accounts(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `491 + c * (208 ±0)` - // Estimated: `3687 + c * (2621 ±0)` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(22_272_379, 0) - .saturating_add(Weight::from_parts(0, 3687)) - // Standard Error: 26_768 - .saturating_add(Weight::from_parts(14_663_063, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2621).saturating_mul(c.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1001 w:1000) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) - /// The range of component `a` is `[0, 1000]`. - fn destroy_approvals(a: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `509 + a * (86 ±0)` - // Estimated: `3687 + a * (2635 ±0)` - // Minimum execution time: 17_000_000 picoseconds. - Weight::from_parts(17_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - // Standard Error: 7_538 - .saturating_add(Weight::from_parts(15_841_913, 0).saturating_mul(a.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) - .saturating_add(Weight::from_parts(0, 2635).saturating_mul(a.into())) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - /// Storage: `EVM::AccountCodes` (r:0 w:1) - /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn finish_destroy() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(16_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - fn mint() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 24_000_000 picoseconds. - Weight::from_parts(25_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn burn() -> Weight { - // Proof Size summary in bytes: - // Measured: `452` - // Estimated: `3687` - // Minimum execution time: 35_000_000 picoseconds. - Weight::from_parts(35_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `557` - // Estimated: `6232` - // Minimum execution time: 44_000_000 picoseconds. - Weight::from_parts(48_000_000, 0) - .saturating_add(Weight::from_parts(0, 6232)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_keep_alive() -> Weight { - // Proof Size summary in bytes: - // Measured: `551` - // Estimated: `6232` - // Minimum execution time: 39_000_000 picoseconds. - Weight::from_parts(41_000_000, 0) - .saturating_add(Weight::from_parts(0, 6232)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `557` - // Estimated: `6232` - // Minimum execution time: 47_000_000 picoseconds. - Weight::from_parts(48_000_000, 0) - .saturating_add(Weight::from_parts(0, 6232)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - fn freeze() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `3687` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(17_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - fn thaw() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `3687` - // Minimum execution time: 15_000_000 picoseconds. - Weight::from_parts(17_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn freeze_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `360` - // Estimated: `3687` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(14_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn thaw_asset() -> Weight { - // Proof Size summary in bytes: - // Measured: `360` - // Estimated: `3687` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(14_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:0) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - fn transfer_ownership() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 15_000_000 picoseconds. - Weight::from_parts(15_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn set_team() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn set_metadata(n: u32, s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 27_000_000 picoseconds. - Weight::from_parts(29_752_036, 0) - .saturating_add(Weight::from_parts(0, 3687)) - // Standard Error: 1_120 - .saturating_add(Weight::from_parts(3_280, 0).saturating_mul(n.into())) - // Standard Error: 1_120 - .saturating_add(Weight::from_parts(4_743, 0).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - fn clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `502` - // Estimated: `3687` - // Minimum execution time: 29_000_000 picoseconds. - Weight::from_parts(30_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - /// The range of component `n` is `[0, 50]`. - /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(n: u32, _s: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `165` - // Estimated: `3687` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(14_412_998, 0) - .saturating_add(Weight::from_parts(0, 3687)) - // Standard Error: 2_345 - .saturating_add(Weight::from_parts(17_028, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Metadata` (r:1 w:1) - /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) - fn force_clear_metadata() -> Weight { - // Proof Size summary in bytes: - // Measured: `502` - // Estimated: `3687` - // Minimum execution time: 29_000_000 picoseconds. - Weight::from_parts(30_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn force_asset_status() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 13_000_000 picoseconds. - Weight::from_parts(13_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) - fn approve_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `360` - // Estimated: `3687` - // Minimum execution time: 32_000_000 picoseconds. - Weight::from_parts(34_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_approved() -> Weight { - // Proof Size summary in bytes: - // Measured: `784` - // Estimated: `6232` - // Minimum execution time: 66_000_000 picoseconds. - Weight::from_parts(67_000_000, 0) - .saturating_add(Weight::from_parts(0, 6232)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) - fn cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `542` - // Estimated: `3687` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(35_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Approvals` (r:1 w:1) - /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(160), added: 2635, mode: `MaxEncodedLen`) - fn force_cancel_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `542` - // Estimated: `3687` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(35_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn set_min_balance() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 14_000_000 picoseconds. - Weight::from_parts(14_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn touch() -> Weight { - // Proof Size summary in bytes: - // Measured: `533` - // Estimated: `3687` - // Minimum execution time: 35_000_000 picoseconds. - Weight::from_parts(35_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn touch_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `326` - // Estimated: `3687` - // Minimum execution time: 32_000_000 picoseconds. - Weight::from_parts(33_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn refund() -> Weight { - // Proof Size summary in bytes: - // Measured: `671` - // Estimated: `3687` - // Minimum execution time: 33_000_000 picoseconds. - Weight::from_parts(34_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - fn refund_other() -> Weight { - // Proof Size summary in bytes: - // Measured: `497` - // Estimated: `3687` - // Minimum execution time: 31_000_000 picoseconds. - Weight::from_parts(31_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Assets::Asset` (r:1 w:0) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:1 w:1) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - fn block() -> Weight { - // Proof Size summary in bytes: - // Measured: `446` - // Estimated: `3687` - // Minimum execution time: 17_000_000 picoseconds. - Weight::from_parts(18_000_000, 0) - .saturating_add(Weight::from_parts(0, 3687)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `Assets::Asset` (r:1 w:1) - /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(222), added: 2697, mode: `MaxEncodedLen`) - /// Storage: `Assets::Account` (r:2 w:2) - /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_all() -> Weight { - // Proof Size summary in bytes: - // Measured: `557` - // Estimated: `6232` - // Minimum execution time: 57_000_000 picoseconds. - Weight::from_parts(58_000_000, 0) - .saturating_add(Weight::from_parts(0, 6232)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - fn total_issuance() -> Weight { - todo!() - } - - fn balance() -> Weight { - todo!() - } - - fn allowance() -> Weight { - todo!() - } -} diff --git a/runtime/local/src/weights/pallet_balances.rs b/runtime/local/src/weights/pallet_balances.rs deleted file mode 100644 index 6b8a68c5b9..0000000000 --- a/runtime/local/src/weights/pallet_balances.rs +++ /dev/null @@ -1,187 +0,0 @@ -// This file is part of Astar. - -// Copyright (C) Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later - -// Astar is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Astar is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Astar. If not, see . - -//! Autogenerated weights for pallet_balances -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 46.1.0 -//! DATE: 2025-05-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `Ashutoshs-MacBook-Pro.local`, CPU: `` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: 1024 - -// Executed Command: -// ./target/release/astar-collator -// benchmark -// pallet -// --chain=dev -// --steps=50 -// --repeat=20 -// --pallet=pallet_balances -// --extrinsic=* -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtime/local/src/weights/pallet_balances.rs -// --template=./scripts/templates/weight-template.hbs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] - -use frame_support::{traits::Get, weights::Weight}; -use core::marker::PhantomData; - -/// Weight functions for `pallet_balances`. -pub struct SubstrateWeight(PhantomData); -impl pallet_balances::WeightInfo for SubstrateWeight { - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_allow_death() -> Weight { - // Proof Size summary in bytes: - // Measured: `58` - // Estimated: `3593` - // Minimum execution time: 57_000_000 picoseconds. - Weight::from_parts(58_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn transfer_keep_alive() -> Weight { - // Proof Size summary in bytes: - // Measured: `52` - // Estimated: `3593` - // Minimum execution time: 43_000_000 picoseconds. - Weight::from_parts(44_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_set_balance_creating() -> Weight { - // Proof Size summary in bytes: - // Measured: `207` - // Estimated: `3593` - // Minimum execution time: 16_000_000 picoseconds. - Weight::from_parts(17_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_set_balance_killing() -> Weight { - // Proof Size summary in bytes: - // Measured: `213` - // Estimated: `3593` - // Minimum execution time: 27_000_000 picoseconds. - Weight::from_parts(28_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:2 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn force_transfer() -> Weight { - // Proof Size summary in bytes: - // Measured: `161` - // Estimated: `6196` - // Minimum execution time: 59_000_000 picoseconds. - Weight::from_parts(60_000_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn transfer_all() -> Weight { - // Proof Size summary in bytes: - // Measured: `58` - // Estimated: `3593` - // Minimum execution time: 56_000_000 picoseconds. - Weight::from_parts(57_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn force_unreserve() -> Weight { - // Proof Size summary in bytes: - // Measured: `207` - // Estimated: `3593` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(21_000_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `System::Account` (r:999 w:999) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `u` is `[1, 1000]`. - fn upgrade_accounts(u: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + u * (136 ±0)` - // Estimated: `990 + u * (2603 ±0)` - // Minimum execution time: 19_000_000 picoseconds. - Weight::from_parts(20_000_000, 0) - .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 8_317 - .saturating_add(Weight::from_parts(14_335_968, 0).saturating_mul(u.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) - } - fn force_adjust_total_issuance() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_000_000 picoseconds. - Weight::from_parts(6_000_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } - /// Storage: `UnifiedAccounts::NativeToEvm` (r:1 w:0) - /// Proof: `UnifiedAccounts::NativeToEvm` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`) - fn burn_allow_death() -> Weight { - // Proof Size summary in bytes: - // Measured: `6` - // Estimated: `3533` - // Minimum execution time: 34_000_000 picoseconds. - Weight::from_parts(35_000_000, 0) - .saturating_add(Weight::from_parts(0, 3533)) - .saturating_add(T::DbWeight::get().reads(1)) - } - fn burn_keep_alive() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(22_000_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - } -} diff --git a/tarpaulin.toml b/tarpaulin.toml index 0e07cb86b6..4bfa67dbc8 100644 --- a/tarpaulin.toml +++ b/tarpaulin.toml @@ -7,7 +7,7 @@ workspace = true out = ["Xml"] # List of packages to exclude from testing. -exclude = ["astar-collator", "xcm-tools", "local-runtime", "shibuya-runtime", "shiden-runtime", "astar-runtime", "integration-tests"] +exclude = ["astar-collator", "xcm-tools", "shibuya-runtime", "shiden-runtime", "astar-runtime", "integration-tests"] # List of file paths to exclude from testing. exclude-files = ["vendor/*", "bin/*", "runtime/*", "tests/*", "**/mock.rs", "**/weights.rs"] From be26e1f43da84290986c668b25a092ca54e7eb23 Mon Sep 17 00:00:00 2001 From: Igor Papandinas <26460174+ipapandinas@users.noreply.github.com> Date: Fri, 9 Jan 2026 15:15:56 +0100 Subject: [PATCH 2/3] leftover --- bin/collator/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/collator/src/command.rs b/bin/collator/src/command.rs index d8806453e7..e9e3cc8469 100644 --- a/bin/collator/src/command.rs +++ b/bin/collator/src/command.rs @@ -316,7 +316,7 @@ pub fn run() -> Result<()> { cmd.run(params.client) }), BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let params = local::new_partial(&config, &rpc_config)?; + let params = parachain::new_partial(&config, &rpc_config)?; let db = params.backend.expose_db(); let storage = params.backend.expose_storage(); From d2592008bd4b3307b01a23527a22abb9d635f21e Mon Sep 17 00:00:00 2001 From: Igor Papandinas <26460174+ipapandinas@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:22:42 +0400 Subject: [PATCH 3/3] use shibuya runtime + auto manual seal --- Cargo.lock | 3 +- Cargo.toml | 4 +- bin/collator/Cargo.toml | 6 +- bin/collator/src/command.rs | 100 +++-- bin/collator/src/evm_tracing_types.rs | 14 +- bin/collator/src/lib.rs | 2 + bin/collator/src/local/chain_spec.rs | 49 +++ bin/collator/src/local/mod.rs | 29 ++ bin/collator/src/local/service.rs | 562 ++++++++++++++++++++++++++ bin/collator/src/parachain/service.rs | 2 - bin/collator/src/rpc.rs | 12 - 11 files changed, 727 insertions(+), 56 deletions(-) create mode 100644 bin/collator/src/local/chain_spec.rs create mode 100644 bin/collator/src/local/mod.rs create mode 100644 bin/collator/src/local/service.rs diff --git a/Cargo.lock b/Cargo.lock index 74416b3ab7..c89ec66df2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -845,6 +845,7 @@ dependencies = [ "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", + "cumulus-client-parachain-inherent", "cumulus-client-service", "cumulus-primitives-aura", "cumulus-primitives-core", @@ -900,8 +901,6 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-grandpa", "sc-consensus-manual-seal", "sc-executor", "sc-network", diff --git a/Cargo.toml b/Cargo.toml index 1e912db29f..4185eb1c39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -157,9 +157,7 @@ sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = " sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } -sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } @@ -208,7 +206,6 @@ frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk" frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506", default-features = false } @@ -272,6 +269,7 @@ cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot- cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } cumulus-client-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2506" } diff --git a/bin/collator/Cargo.toml b/bin/collator/Cargo.toml index 39c792cc1f..f3a9487820 100644 --- a/bin/collator/Cargo.toml +++ b/bin/collator/Cargo.toml @@ -62,9 +62,7 @@ sc-client-api = { workspace = true } sc-client-db = { workspace = true } sc-consensus = { workspace = true } sc-consensus-aura = { workspace = true } -sc-consensus-babe = { workspace = true } -sc-consensus-grandpa = { workspace = true } -sc-consensus-manual-seal = { workspace = true, optional = true } +sc-consensus-manual-seal = { workspace = true } sc-executor = { workspace = true } sc-network = { workspace = true } sc-network-sync = { workspace = true } @@ -125,6 +123,7 @@ cumulus-client-consensus-common = { workspace = true } cumulus-client-consensus-proposer = { workspace = true } cumulus-client-consensus-relay-chain = { workspace = true } cumulus-client-network = { workspace = true } +cumulus-client-parachain-inherent = { workspace = true } cumulus-client-service = { workspace = true } cumulus-primitives-aura = { workspace = true } cumulus-primitives-core = { workspace = true, features = ["std"] } @@ -207,4 +206,3 @@ try-runtime = [ "sp-runtime/try-runtime", "frame-support/try-runtime", ] -manual-seal = ["sc-consensus-manual-seal"] diff --git a/bin/collator/src/command.rs b/bin/collator/src/command.rs index e9e3cc8469..28fd32ae8a 100644 --- a/bin/collator/src/command.rs +++ b/bin/collator/src/command.rs @@ -19,6 +19,7 @@ //! Astar collator CLI handlers. use crate::{ cli::{Cli, RelayChainCli, Subcommand}, + local::{self, development_config}, parachain::{self, chain_spec, service::AdditionalConfig}, }; use cumulus_primitives_core::ParaId; @@ -36,6 +37,7 @@ use sp_runtime::traits::AccountIdConversion; trait IdentifyChain { fn is_astar(&self) -> bool; + fn is_dev(&self) -> bool; fn is_shiden(&self) -> bool; fn is_shibuya(&self) -> bool; } @@ -44,6 +46,9 @@ impl IdentifyChain for dyn sc_service::ChainSpec { fn is_astar(&self) -> bool { self.id().starts_with("astar") } + fn is_dev(&self) -> bool { + self.id().starts_with("dev") + } fn is_shiden(&self) -> bool { self.id().starts_with("shiden") } @@ -56,6 +61,9 @@ impl IdentifyChain for T { fn is_astar(&self) -> bool { ::is_astar(self) } + fn is_dev(&self) -> bool { + ::is_dev(self) + } fn is_shiden(&self) -> bool { ::is_shiden(self) } @@ -66,6 +74,7 @@ impl IdentifyChain for T { fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { + "dev" => Box::new(development_config()), "astar-dev" => Box::new(chain_spec::astar::get_chain_spec()), "shibuya-dev" => Box::new(chain_spec::shibuya::get_chain_spec()), "shiden-dev" => Box::new(chain_spec::shiden::get_chain_spec()), @@ -243,16 +252,29 @@ pub fn run() -> Result<()> { } Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; + let chain_spec = &runner.config().chain_spec; let rpc_config = cli.eth_api_options.new_rpc_config(); - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - backend, - .. - } = parachain::new_partial(&config, &rpc_config)?; - Ok((cmd.run(client, backend, None), task_manager)) - }) + if chain_spec.is_dev() { + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + backend, + .. + } = local::new_partial(&config, &rpc_config)?; + Ok((cmd.run(client, backend, None), task_manager)) + }) + } else { + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + backend, + .. + } = parachain::new_partial(&config, &rpc_config)?; + Ok((cmd.run(client, backend, None), task_manager)) + }) + } } Some(Subcommand::ExportGenesisState(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -305,23 +327,45 @@ pub fn run() -> Result<()> { ) }) } else { - Err(format!( - "Unknown chain '{}' for benchmarking. Use --chain astar, shiden, shibuya, astar-dev, shiden-dev, or shibuya-dev", - chain_spec.id() - ).into()) + runner.sync_run(|config| { + cmd.run_with_spec::, local::HostFunctions>( + Some(config.chain_spec), + ) + }) + } + } + BenchmarkCmd::Block(cmd) => { + if chain_spec.is_dev() { + runner.sync_run(|config| { + let params = local::new_partial(&config, &rpc_config)?; + cmd.run(params.client) + }) + } else { + runner.sync_run(|config| { + let params = parachain::new_partial(&config, &rpc_config)?; + cmd.run(params.client) + }) + } + } + BenchmarkCmd::Storage(cmd) => { + if chain_spec.is_dev() { + runner.sync_run(|config| { + let params = local::new_partial(&config, &rpc_config)?; + let db = params.backend.expose_db(); + let storage = params.backend.expose_storage(); + + cmd.run(config, params.client, db, storage, None) + }) + } else { + runner.sync_run(|config| { + let params = parachain::new_partial(&config, &rpc_config)?; + let db = params.backend.expose_db(); + let storage = params.backend.expose_storage(); + + cmd.run(config, params.client, db, storage, None) + }) } } - BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let params = parachain::new_partial(&config, &rpc_config)?; - cmd.run(params.client) - }), - BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let params = parachain::new_partial(&config, &rpc_config)?; - let db = params.backend.expose_db(); - let storage = params.backend.expose_storage(); - - cmd.run(config, params.client, db, storage, None) - }), BenchmarkCmd::Overhead(_) => { todo!("Overhead benchmarking is not supported. Use 'frame-omni-bencher' tool instead."); } @@ -340,6 +384,14 @@ pub fn run() -> Result<()> { let evm_tracing_config = cli.eth_api_options.new_rpc_config(); runner.run_node_until_exit(|config| async move { + if config.chain_spec.is_dev() { + return local::start_node::>( + config, + evm_tracing_config, + ) + .map_err(Into::into); + } + let polkadot_cli = RelayChainCli::new( &config, [RelayChainCli::executable_name()] diff --git a/bin/collator/src/evm_tracing_types.rs b/bin/collator/src/evm_tracing_types.rs index 7167e99ef5..7cd1eb63ec 100644 --- a/bin/collator/src/evm_tracing_types.rs +++ b/bin/collator/src/evm_tracing_types.rs @@ -98,16 +98,12 @@ pub struct FrontierConfig { #[derive(Debug, Parser)] pub struct EthApiOptions { /// Enable EVM tracing module on a non-authority node. - #[cfg_attr( - not(feature = "manual-seal"), - clap( - long, - conflicts_with = "collator", - conflicts_with = "validator", - value_delimiter = ',' - ) + #[clap( + long, + conflicts_with = "collator", + conflicts_with = "validator", + value_delimiter = ',' )] - #[cfg_attr(feature = "manual-seal", clap(long))] pub ethapi: Vec, /// Number of concurrent tracing tasks. Meant to be shared by both "debug" and "trace" modules. diff --git a/bin/collator/src/lib.rs b/bin/collator/src/lib.rs index 0002e6567b..f5abe7142d 100644 --- a/bin/collator/src/lib.rs +++ b/bin/collator/src/lib.rs @@ -21,6 +21,8 @@ #![warn(missing_docs)] #![warn(unused_extern_crates)] +/// Development node support. +pub mod local; /// Parachain node support. pub mod parachain; diff --git a/bin/collator/src/local/chain_spec.rs b/bin/collator/src/local/chain_spec.rs new file mode 100644 index 0000000000..0c217f746e --- /dev/null +++ b/bin/collator/src/local/chain_spec.rs @@ -0,0 +1,49 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +use sc_service::ChainType; +use shibuya_runtime::wasm_binary_unwrap; + +/// Specialized `ChainSpec` for local network. +pub type ChainSpec = sc_service::GenericChainSpec; + +/// Development config. +pub fn development_config() -> ChainSpec { + let mut properties = serde_json::map::Map::new(); + properties.insert("tokenSymbol".into(), "LOC".into()); + properties.insert("tokenDecimals".into(), 18.into()); + + ChainSpec::builder(wasm_binary_unwrap(), None) + .with_name("Development") + .with_id("dev") + .with_chain_type(ChainType::Development) + .with_properties(properties) + .with_genesis_config_preset_name("development") + .build() +} + +#[cfg(test)] +pub(crate) mod tests { + use super::*; + use sp_runtime::BuildStorage; + + #[test] + fn test_create_development_chain_spec() { + development_config().build_storage().unwrap(); + } +} diff --git a/bin/collator/src/local/mod.rs b/bin/collator/src/local/mod.rs new file mode 100644 index 0000000000..7a87027167 --- /dev/null +++ b/bin/collator/src/local/mod.rs @@ -0,0 +1,29 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +//! Support for local development node. + +/// Local development service. +mod service; + +/// Development chain specs. +mod chain_spec; + +pub use crate::parachain::fake_runtime_api::RuntimeApi; +pub use chain_spec::*; +pub use service::{new_partial, start_node, HostFunctions}; diff --git a/bin/collator/src/local/service.rs b/bin/collator/src/local/service.rs new file mode 100644 index 0000000000..9c0450876f --- /dev/null +++ b/bin/collator/src/local/service.rs @@ -0,0 +1,562 @@ +// This file is part of Astar. + +// Copyright (C) Stake Technologies Pte.Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +// Astar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Astar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Astar. If not, see . + +//! Local Service and ServiceFactory implementation. Specialized wrapper over substrate service. + +use crate::{ + evm_tracing_types::{EthApi as EthApiCmd, FrontierConfig}, + rpc::tracing, +}; +use cumulus_client_parachain_inherent::MockValidationDataInherentDataProvider; +use cumulus_primitives_core::{CollectCollationInfo, ParaId}; +use fc_consensus::FrontierBlockImport; +use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; +use fc_storage::StorageOverrideHandler; +use futures::{FutureExt, StreamExt}; +use parity_scale_codec::Encode; +use polkadot_primitives::UpgradeGoAhead; +use sc_client_api::{Backend, BlockchainEvents}; +use sc_consensus_manual_seal::consensus::aura::AuraConsensusDataProvider; +use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; +use sc_network::NetworkBackend; +use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; +use sc_telemetry::{Telemetry, TelemetryWorker}; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; +use sp_api::ProvideRuntimeApi; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, UniqueSaturatedInto}; +use std::{collections::BTreeMap, ops::Sub, sync::Arc, time::Duration}; + +use astar_primitives::parachain::SHIBUYA_ID; +use astar_primitives::*; + +const RELAY_CHAIN_SLOT_DURATION_MILLIS: u64 = 2_000; +const DEV_BLOCK_TIME_MS: u64 = 2_000; + +/// Parachain host functions +#[cfg(feature = "runtime-benchmarks")] +pub type HostFunctions = ( + frame_benchmarking::benchmarking::HostFunctions, + cumulus_client_service::ParachainHostFunctions, + moonbeam_primitives_ext::moonbeam_ext::HostFunctions, +); + +/// Parachain host functions +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = ( + cumulus_client_service::ParachainHostFunctions, + moonbeam_primitives_ext::moonbeam_ext::HostFunctions, +); + +type ParachainExecutor = WasmExecutor; + +type FullClient = sc_service::TFullClient< + Block, + crate::parachain::fake_runtime_api::RuntimeApi, + ParachainExecutor, +>; +type FullBackend = sc_service::TFullBackend; +type FullSelectChain = sc_consensus::LongestChain; + +/// Build a partial chain component config +pub fn new_partial( + config: &Configuration, + evm_tracing_config: &FrontierConfig, +) -> Result< + sc_service::PartialComponents< + FullClient, + FullBackend, + FullSelectChain, + sc_consensus::DefaultImportQueue, + sc_transaction_pool::TransactionPoolHandle, + ( + FrontierBlockImport, FullClient>, + Option, + Arc>, + ), + >, + ServiceError, +> { + let telemetry = config + .telemetry_endpoints + .clone() + .filter(|x| !x.is_empty()) + .map(|endpoints| -> Result<_, sc_telemetry::Error> { + let worker = TelemetryWorker::new(16)?; + let telemetry = worker.handle().new_telemetry(endpoints); + Ok((worker, telemetry)) + }) + .transpose()?; + + let heap_pages = config + .executor + .default_heap_pages + .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { + extra_pages: h as _, + }); + + let executor = ParachainExecutor::builder() + .with_execution_method(config.executor.wasm_method) + .with_onchain_heap_alloc_strategy(heap_pages) + .with_offchain_heap_alloc_strategy(heap_pages) + .with_max_runtime_instances(config.executor.max_runtime_instances) + .with_runtime_cache_size(config.executor.runtime_cache_size) + .build(); + + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts_record_import::< + Block, + crate::parachain::fake_runtime_api::RuntimeApi, + _, + >( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + true, + )?; + let client = Arc::new(client); + let telemetry = telemetry.map(|(worker, telemetry)| { + task_manager + .spawn_handle() + .spawn("telemetry", None, worker.run()); + telemetry + }); + let select_chain = sc_consensus::LongestChain::new(backend.clone()); + let transaction_pool = sc_transaction_pool::Builder::new( + task_manager.spawn_essential_handle(), + client.clone(), + config.role.is_authority().into(), + ) + .with_options(config.transaction_pool.clone()) + .with_prometheus(config.prometheus_registry()) + .build(); + + let frontier_backend = Arc::new(crate::rpc::open_frontier_backend( + client.clone(), + config, + evm_tracing_config, + )?); + let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); + + let import_queue = sc_consensus_manual_seal::import_queue( + Box::new(client.clone()), + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + ); + + Ok(sc_service::PartialComponents { + client, + backend, + task_manager, + import_queue, + keystore_container, + select_chain, + transaction_pool: transaction_pool.into(), + other: (frontier_block_import, telemetry, frontier_backend), + }) +} + +/// Configuration for dev node parachain inherents +struct DevParachainInherents { + para_id: ParaId, + initial_relay_slot: u64, +} + +impl DevParachainInherents { + fn new(para_id: ParaId) -> Self { + // Start 2 hours in the past to avoid timestamp conflicts + let initial_relay_slot = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .expect("Current time is always after UNIX_EPOCH") + .sub(Duration::from_secs(2 * 60 * 60)) + .as_millis() as u64 + / RELAY_CHAIN_SLOT_DURATION_MILLIS; + + Self { + para_id, + initial_relay_slot, + } + } + + /// Create inherent data providers for manual seal consensus + fn create_providers( + &self, + client: Arc, + ) -> impl Fn( + Hash, + (), + ) -> futures::future::Ready< + Result< + ( + sp_timestamp::InherentDataProvider, + MockValidationDataInherentDataProvider<()>, + ), + Box, + >, + > + Send + + Sync + + Clone { + let para_id = self.para_id; + let initial_relay_slot = self.initial_relay_slot; + + move |block: Hash, ()| { + let current_para_head = client + .header(block) + .expect("Header lookup should succeed") + .expect("Header should be present"); + + let should_send_go_ahead = client + .runtime_api() + .collect_collation_info(block, ¤t_para_head) + .map(|info| info.new_validation_code.is_some()) + .unwrap_or_default(); + + let current_para_block_head = + Some(polkadot_primitives::HeadData(current_para_head.encode())); + let current_block_number = + UniqueSaturatedInto::::unique_saturated_into(*current_para_head.number()) + 1; + + // Dev mode: always advance at least one relay slot per para block + let relay_blocks_per_para_block: u32 = 1; + + let target_relay_slot = initial_relay_slot + + u64::from(current_block_number) * u64::from(relay_blocks_per_para_block); + + let relay_offset = (target_relay_slot as u32) + .saturating_sub(relay_blocks_per_para_block * current_block_number); + + let mocked_parachain = MockValidationDataInherentDataProvider::<()> { + current_para_block: current_block_number, + para_id, + current_para_block_head, + relay_blocks_per_para_block, + relay_offset, + para_blocks_per_relay_epoch: 10, + upgrade_go_ahead: should_send_go_ahead.then(|| { + log::info!("Detected pending validation code, sending go-ahead signal."); + UpgradeGoAhead::GoAhead + }), + ..Default::default() + }; + + let timestamp = target_relay_slot * RELAY_CHAIN_SLOT_DURATION_MILLIS; + let timestamp_provider = sp_timestamp::InherentDataProvider::new(timestamp.into()); + + futures::future::ready(Ok((timestamp_provider, mocked_parachain))) + } + } +} + +/// Builds a new service. +pub fn start_node( + mut config: Configuration, + evm_tracing_config: FrontierConfig, +) -> Result +where + N: NetworkBackend::Hash>, +{ + let sc_service::PartialComponents { + client, + backend, + mut task_manager, + import_queue, + keystore_container, + select_chain, + transaction_pool, + other: (block_import, mut telemetry, frontier_backend), + } = new_partial(&config, &evm_tracing_config)?; + + // Dev node: no peers + config.network.default_peers_set.in_peers = 0; + config.network.default_peers_set.out_peers = 0; + + let net_config = sc_network::config::FullNetworkConfiguration::<_, _, N>::new( + &config.network, + config.prometheus_registry().cloned(), + ); + + let metrics = N::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); + + let (network, system_rpc_tx, tx_handler_controller, 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(), + import_queue, + block_announce_validator_builder: None, + warp_sync_config: None, + block_relay: None, + metrics, + })?; + + if config.offchain_worker.enabled { + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + keystore: Some(keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new( + transaction_pool.clone(), + )), + network_provider: Arc::new(network.clone()), + is_validator: config.role.is_authority(), + enable_http_requests: true, + custom_extensions: move |_| vec![], + })? + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), + ); + } + + let filter_pool: FilterPool = Arc::new(std::sync::Mutex::new(BTreeMap::new())); + let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); + let storage_override = Arc::new(StorageOverrideHandler::new(client.clone())); + + // Sinks for pubsub notifications. + // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. + // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. + // This way we avoid race conditions when using native substrate block import notification stream. + let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + > = Default::default(); + let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); + + let ethapi_cmd = evm_tracing_config.ethapi.clone(); + + let tracing_requesters = + if ethapi_cmd.contains(&EthApiCmd::Debug) || ethapi_cmd.contains(&EthApiCmd::Trace) { + tracing::spawn_tracing_tasks( + &evm_tracing_config, + config.prometheus_registry().cloned(), + tracing::SpawnTasksParams { + task_manager: &task_manager, + client: client.clone(), + substrate_backend: backend.clone(), + frontier_backend: frontier_backend.clone(), + storage_override: storage_override.clone(), + }, + ) + } else { + tracing::RpcRequesters { + debug: None, + trace: None, + } + }; + + // Frontier offchain DB task. Essential. + // Maps emulated ethereum data to substrate native data. + match frontier_backend.as_ref() { + fc_db::Backend::KeyValue(ref b) => { + task_manager.spawn_essential_handle().spawn( + "frontier-mapping-sync-worker", + Some("frontier"), + fc_mapping_sync::kv::MappingSyncWorker::new( + client.import_notification_stream(), + Duration::new(6, 0), + client.clone(), + backend.clone(), + storage_override.clone(), + b.clone(), + 3, + 0, + fc_mapping_sync::SyncStrategy::Parachain, + sync_service.clone(), + pubsub_notification_sinks.clone(), + ) + .for_each(|()| futures::future::ready(())), + ); + } + fc_db::Backend::Sql(ref b) => { + task_manager.spawn_essential_handle().spawn_blocking( + "frontier-mapping-sync-worker", + Some("frontier"), + fc_mapping_sync::sql::SyncWorker::run( + client.clone(), + backend.clone(), + b.clone(), + client.import_notification_stream(), + fc_mapping_sync::sql::SyncWorkerConfig { + read_notification_timeout: Duration::from_secs(10), + check_indexed_blocks_interval: Duration::from_secs(60), + }, + fc_mapping_sync::SyncStrategy::Parachain, + sync_service.clone(), + pubsub_notification_sinks.clone(), + ), + ); + } + } + + // Frontier `EthFilterApi` maintenance. Manages the pool of user-created Filters. + // Each filter is allowed to stay in the pool for 100 blocks. + const FILTER_RETAIN_THRESHOLD: u64 = 100; + task_manager.spawn_essential_handle().spawn( + "frontier-filter-pool", + Some("frontier"), + fc_rpc::EthTask::filter_pool_task( + client.clone(), + filter_pool.clone(), + FILTER_RETAIN_THRESHOLD, + ), + ); + + const FEE_HISTORY_LIMIT: u64 = 2048; + task_manager.spawn_essential_handle().spawn( + "frontier-fee-history", + Some("frontier"), + fc_rpc::EthTask::fee_history_task( + client.clone(), + storage_override.clone(), + fee_history_cache.clone(), + FEE_HISTORY_LIMIT, + ), + ); + + let prometheus_registry = config.prometheus_registry().cloned(); + let is_authority = config.role.is_authority(); + + let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( + task_manager.spawn_handle(), + storage_override.clone(), + 50, + 50, + prometheus_registry.clone(), + )); + + // Channel for the rpc handler to communicate with the authorship task. + let (command_sink, commands_stream) = futures::channel::mpsc::channel(1024); + + let aura_digest_provider = + AuraConsensusDataProvider::::new(client.clone()); + + // Auto-seal blocks + spawn_block_authoring_task( + task_manager.spawn_essential_handle(), + command_sink.clone(), + DEV_BLOCK_TIME_MS, + ); + + let rpc_extensions_builder = { + let client = client.clone(); + let network = network.clone(); + let transaction_pool = transaction_pool.clone(); + let sync = sync_service.clone(); + let pubsub_notification_sinks = pubsub_notification_sinks.clone(); + + Box::new(move |subscription| { + let deps = crate::rpc::FullDeps { + client: client.clone(), + pool: transaction_pool.clone(), + graph: transaction_pool.clone(), + network: network.clone(), + sync: sync.clone(), + is_authority, + frontier_backend: match *frontier_backend { + fc_db::Backend::KeyValue(ref b) => b.clone(), + fc_db::Backend::Sql(ref b) => b.clone(), + }, + filter_pool: filter_pool.clone(), + fee_history_limit: FEE_HISTORY_LIMIT, + fee_history_cache: fee_history_cache.clone(), + block_data_cache: block_data_cache.clone(), + storage_override: storage_override.clone(), + enable_evm_rpc: true, // enable EVM RPC for dev node by default + }; + + crate::rpc::create_full( + deps, + subscription, + pubsub_notification_sinks.clone(), + crate::rpc::EvmTracingConfig { + tracing_requesters: tracing_requesters.clone(), + trace_filter_max_count: evm_tracing_config.ethapi_trace_max_count, + enable_txpool: ethapi_cmd.contains(&EthApiCmd::TxPool), + }, + ) + .map_err::(Into::into) + }) + }; + + let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { + network: network.clone(), + client: client.clone(), + keystore: keystore_container.keystore(), + task_manager: &mut task_manager, + transaction_pool: transaction_pool.clone(), + rpc_builder: rpc_extensions_builder, + backend, + system_rpc_tx, + tx_handler_controller, + sync_service: sync_service.clone(), + config, + telemetry: telemetry.as_mut(), + })?; + + // === Consensus === + let dev_inherents = DevParachainInherents::new(ParaId::from(SHIBUYA_ID)); + + let params = sc_consensus_manual_seal::ManualSealParams { + block_import, + env: sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry.as_ref(), + telemetry.as_ref().map(|x| x.handle()), + ), + client: client.clone(), + pool: transaction_pool, + select_chain, + commands_stream: Box::pin(commands_stream), + consensus_data_provider: Some(Box::new(aura_digest_provider)), + create_inherent_data_providers: dev_inherents.create_providers(client.clone()), + }; + + task_manager.spawn_essential_handle().spawn_blocking( + "manual-seal", + Some("block-authoring"), + sc_consensus_manual_seal::run_manual_seal(params), + ); + + Ok(task_manager) +} + +/// Spawn task that produces blocks at regular intervals +fn spawn_block_authoring_task( + spawner: sc_service::SpawnEssentialTaskHandle, + mut command_sink: futures::channel::mpsc::Sender>, + interval_ms: u64, +) { + spawner.spawn("block-authoring", None, async move { + let mut interval = tokio::time::interval(Duration::from_millis(interval_ms)); + loop { + interval.tick().await; + let _ = command_sink.try_send(sc_consensus_manual_seal::EngineCommand::SealNewBlock { + create_empty: true, + finalize: true, + parent_hash: None, + sender: None, + }); + } + }); +} diff --git a/bin/collator/src/parachain/service.rs b/bin/collator/src/parachain/service.rs index 4f0427ca39..a66ab0b180 100644 --- a/bin/collator/src/parachain/service.rs +++ b/bin/collator/src/parachain/service.rs @@ -463,8 +463,6 @@ where block_data_cache: block_data_cache.clone(), storage_override: storage_override.clone(), enable_evm_rpc: additional_config.enable_evm_rpc, - #[cfg(feature = "manual-seal")] - command_sink: None, }; crate::rpc::create_full( diff --git a/bin/collator/src/rpc.rs b/bin/collator/src/rpc.rs index 6c2443ae4a..01a8577824 100644 --- a/bin/collator/src/rpc.rs +++ b/bin/collator/src/rpc.rs @@ -177,10 +177,6 @@ pub struct FullDeps { pub block_data_cache: Arc>, /// Enable EVM RPC servers pub enable_evm_rpc: bool, - /// Command sink for manual sealing - #[cfg(feature = "manual-seal")] - pub command_sink: - Option>>, } /// Instantiate all RPC extensions and Tracing RPC. @@ -295,20 +291,12 @@ where storage_override, block_data_cache, enable_evm_rpc, - #[cfg(feature = "manual-seal")] - command_sink, } = deps; io.merge(System::new(client.clone(), pool.clone()).into_rpc())?; io.merge(TransactionPayment::new(client.clone()).into_rpc())?; io.merge(sc_rpc::dev::Dev::new(client.clone()).into_rpc())?; - #[cfg(feature = "manual-seal")] - if let Some(command_sink) = command_sink { - use sc_consensus_manual_seal::rpc::ManualSealApiServer; - io.merge(sc_consensus_manual_seal::rpc::ManualSeal::new(command_sink).into_rpc())?; - } - if !enable_evm_rpc { return Ok(io); }