From c2b603833515723855a769fdc57a9e995e1d6c6d Mon Sep 17 00:00:00 2001 From: Steve Degosserie <723552+stiiifff@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:56:29 +0200 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E2=9C=A8=20Add=20core=20Ethereum?= =?UTF-8?q?=20precompiles=20&=20Moonbeam's=20Precompiles=20registry=20to?= =?UTF-8?q?=20DataHaven=20runtimes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- operator/Cargo.lock | 3548 ++++++++++------- operator/Cargo.toml | 241 +- operator/node/src/command.rs | 92 +- .../precompile-registry/Cargo.toml | 42 + .../PrecompileRegistry.sol | 41 + .../precompile-registry/src/lib.rs | 99 + .../precompile-registry/src/mock.rs | 198 + .../precompile-registry/src/tests.rs | 202 + operator/runtime/mainnet/Cargo.toml | 19 +- operator/runtime/mainnet/src/configs/mod.rs | 21 +- operator/runtime/mainnet/src/lib.rs | 1 + operator/runtime/mainnet/src/precompiles.rs | 67 + operator/runtime/stagenet/Cargo.toml | 19 +- operator/runtime/stagenet/src/configs/mod.rs | 21 +- operator/runtime/stagenet/src/lib.rs | 1 + operator/runtime/stagenet/src/precompiles.rs | 67 + operator/runtime/testnet/Cargo.toml | 19 +- operator/runtime/testnet/src/configs/mod.rs | 21 +- operator/runtime/testnet/src/lib.rs | 1 + operator/runtime/testnet/src/precompiles.rs | 67 + 20 files changed, 3229 insertions(+), 1558 deletions(-) create mode 100644 operator/precompiles/precompile-registry/Cargo.toml create mode 100644 operator/precompiles/precompile-registry/PrecompileRegistry.sol create mode 100644 operator/precompiles/precompile-registry/src/lib.rs create mode 100644 operator/precompiles/precompile-registry/src/mock.rs create mode 100644 operator/precompiles/precompile-registry/src/tests.rs create mode 100644 operator/runtime/mainnet/src/precompiles.rs create mode 100644 operator/runtime/stagenet/src/precompiles.rs create mode 100644 operator/runtime/testnet/src/precompiles.rs diff --git a/operator/Cargo.lock b/operator/Cargo.lock index a5c56e908..537b5ce63 100644 --- a/operator/Cargo.lock +++ b/operator/Cargo.lock @@ -917,7 +917,17 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", +] + +[[package]] +name = "binary-merkle-tree" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "hash-db", "log", @@ -1159,95 +1169,95 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bp-runtime", "finality-grandpa", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", "sp-consensus-grandpa", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "bp-messages" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bp-header-chain", "bp-runtime", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "bp-parachains" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bp-header-chain", "bp-polkadot-core", "bp-runtime", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "bp-polkadot-core" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bp-messages", "bp-runtime", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "bp-relayers" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bp-header-chain", "bp-messages", "bp-parachains", "bp-runtime", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-utility", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "bp-runtime" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hash-db", "impl-trait-for-tuples", "log", @@ -1255,29 +1265,29 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "trie-db", ] [[package]] name = "bridge-hub-common" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "cumulus-primitives-core", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-message-queue", "parity-scale-codec", "scale-info", "snowbridge-core 0.12.2", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] @@ -1286,14 +1296,14 @@ name = "bridge-hub-common" version = "0.13.1" dependencies = [ "cumulus-primitives-core", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-message-queue", "parity-scale-codec", "scale-info", "snowbridge-core 0.2.0", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -1309,6 +1319,17 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "regex-automata 0.4.9", + "serde", +] + [[package]] name = "build-helper" version = "0.1.1" @@ -1409,6 +1430,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "case" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" + [[package]] name = "cc" version = "1.2.22" @@ -2045,7 +2072,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2054,60 +2081,60 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "parity-scale-codec", "sc-client-api", - "sp-api", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tracing", ] [[package]] name = "cumulus-primitives-core" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", + "polkadot-core-primitives 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "polkadot-primitives", "scale-info", - "sp-api", - "sp-runtime", - "sp-trie", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "sp-externalities", - "sp-runtime-interface", - "sp-trie", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2116,24 +2143,24 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "sc-client-api", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-state-machine", - "sp-version", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -2342,27 +2369,34 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-self-contained", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-executive", "frame-metadata-hash-extension", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-support-test", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "hex", "hex-literal 0.3.4", "log", + "num_enum", "pallet-authorship", "pallet-babe", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-beefy", "pallet-beefy-mmr", "pallet-datahaven-native-transfer", "pallet-ethereum", "pallet-evm", "pallet-evm-chain-id", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", "pallet-external-validators", "pallet-external-validators-rewards", "pallet-external-validators-rewards-runtime-api", @@ -2388,6 +2422,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "precompile-utils", "scale-info", "serde_json", "snowbridge-beacon-primitives 0.2.0", @@ -2403,25 +2438,25 @@ dependencies = [ "snowbridge-pallet-system-v2", "snowbridge-system-v2-runtime-api", "snowbridge-verification-primitives", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", - "sp-std", - "sp-storage", - "sp-tracing", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-version", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2451,7 +2486,7 @@ dependencies = [ "fp-rpc", "frame-benchmarking-cli", "frame-metadata-hash-extension", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-system-rpc-runtime-api", "futures", "hex-literal 0.3.4", @@ -2486,19 +2521,19 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde_json", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", "sp-timestamp", "sp-transaction-pool", @@ -2512,18 +2547,18 @@ name = "datahaven-runtime-common" version = "0.1.0" dependencies = [ "fp-account", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-authorship", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-treasury", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] @@ -2538,12 +2573,12 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-self-contained", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-executive", "frame-metadata-hash-extension", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-support-test", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", @@ -2551,9 +2586,10 @@ dependencies = [ "hex-literal 0.3.4", "log", "num-bigint", + "num_enum", "pallet-authorship", "pallet-babe", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-beefy", "pallet-beefy-mmr", "pallet-bucket-nfts", @@ -2562,6 +2598,12 @@ dependencies = [ "pallet-ethereum", "pallet-evm", "pallet-evm-chain-id", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", "pallet-external-validators", "pallet-external-validators-rewards", "pallet-external-validators-rewards-runtime-api", @@ -2597,6 +2639,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "precompile-utils", "scale-info", "serde_json", "shp-constants", @@ -2620,26 +2663,26 @@ dependencies = [ "snowbridge-pallet-system-v2", "snowbridge-system-v2-runtime-api", "snowbridge-verification-primitives", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", - "sp-std", - "sp-storage", - "sp-tracing", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-trie", - "sp-version", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2657,27 +2700,34 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-self-contained", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-executive", "frame-metadata-hash-extension", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-support-test", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "hex", "hex-literal 0.3.4", "log", + "num_enum", "pallet-authorship", "pallet-babe", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-beefy", "pallet-beefy-mmr", "pallet-datahaven-native-transfer", "pallet-ethereum", "pallet-evm", "pallet-evm-chain-id", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", "pallet-external-validators", "pallet-external-validators-rewards", "pallet-external-validators-rewards-runtime-api", @@ -2703,6 +2753,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "precompile-utils", "scale-info", "serde_json", "snowbridge-beacon-primitives 0.2.0", @@ -2718,25 +2769,25 @@ dependencies = [ "snowbridge-pallet-system-v2", "snowbridge-system-v2-runtime-api", "snowbridge-verification-primitives", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", - "sp-std", - "sp-storage", - "sp-tracing", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-version", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2863,6 +2914,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", + "unicode-xid", ] [[package]] @@ -2881,16 +2933,16 @@ dependencies = [ name = "dhp-bridge" version = "0.1.0" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "pallet-datahaven-native-transfer", "pallet-external-validators", "parity-scale-codec", "snowbridge-core 0.2.0", "snowbridge-inbound-queue-primitives", - "sp-core", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -3356,7 +3408,7 @@ dependencies = [ [[package]] name = "evm" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#4ecc569368b74a3f699d78ceb4a58a9439c21586" +source = "git+https://github.com/rust-ethereum/evm?rev=6d86fe2d3bcc14887c2575f62958a67ac2d523db#6d86fe2d3bcc14887c2575f62958a67ac2d523db" dependencies = [ "auto_impl", "environmental", @@ -3376,7 +3428,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#4ecc569368b74a3f699d78ceb4a58a9439c21586" +source = "git+https://github.com/rust-ethereum/evm?rev=6d86fe2d3bcc14887c2575f62958a67ac2d523db#6d86fe2d3bcc14887c2575f62958a67ac2d523db" dependencies = [ "parity-scale-codec", "primitive-types 0.13.1", @@ -3387,7 +3439,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#4ecc569368b74a3f699d78ceb4a58a9439c21586" +source = "git+https://github.com/rust-ethereum/evm?rev=6d86fe2d3bcc14887c2575f62958a67ac2d523db#6d86fe2d3bcc14887c2575f62958a67ac2d523db" dependencies = [ "environmental", "evm-core", @@ -3398,7 +3450,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#4ecc569368b74a3f699d78ceb4a58a9439c21586" +source = "git+https://github.com/rust-ethereum/evm?rev=6d86fe2d3bcc14887c2575f62958a67ac2d523db#6d86fe2d3bcc14887c2575f62958a67ac2d523db" dependencies = [ "auto_impl", "environmental", @@ -3498,19 +3550,19 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "async-trait", "fp-storage", "parity-scale-codec", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fc-cli" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "clap", "ethereum-types", @@ -3520,31 +3572,31 @@ dependencies = [ "sc-cli", "serde", "serde_json", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "async-trait", "fp-consensus", "fp-rpc", "sc-consensus", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-consensus", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "async-trait", "ethereum", @@ -3562,11 +3614,11 @@ dependencies = [ "sc-client-api", "sc-client-db", "smallvec", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sqlx", "tokio", ] @@ -3574,7 +3626,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "fc-db", "fc-storage", @@ -3586,18 +3638,18 @@ dependencies = [ "parking_lot 0.12.3", "sc-client-api", "sc-utils", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tokio", ] [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", @@ -3629,17 +3681,17 @@ dependencies = [ "sc-utils", "schnellru", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-storage", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -3648,7 +3700,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", @@ -3657,13 +3709,13 @@ dependencies = [ "rustc-hex", "serde", "serde_json", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", @@ -3671,10 +3723,10 @@ dependencies = [ "fp-storage", "parity-scale-codec", "sc-client-api", - "sp-api", - "sp-io", - "sp-runtime", - "sp-storage", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -3779,12 +3831,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "float-cmp" version = "0.9.0" @@ -3848,7 +3894,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", ] @@ -3875,7 +3921,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "hex", "impl-serde 0.5.0", @@ -3884,84 +3930,84 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "parity-scale-codec", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", "fp-evm", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", ] [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "environmental", "evm", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "num_enum", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "parity-scale-codec", "serde", @@ -3976,31 +4022,55 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-support-procedural 31.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "static_assertions", +] + +[[package]] +name = "frame-benchmarking" +version = "39.1.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ - "frame-support", - "frame-support-procedural", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-support-procedural 31.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-storage", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" version = "46.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "array-bytes", @@ -4009,9 +4079,9 @@ dependencies = [ "comfy-table", "cumulus-client-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "gethostname", "handlebars", "hex", @@ -4019,7 +4089,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "polkadot-primitives", "rand 0.8.5", "rand_pcg", @@ -4034,25 +4104,25 @@ dependencies = [ "sc-sysinfo", "serde", "serde_json", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", - "sp-externalities", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-timestamp", "sp-transaction-pool", - "sp-trie", - "sp-version", - "sp-wasm-interface", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "subxt", "subxt-signer", "thiserror 1.0.69", @@ -4062,7 +4132,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "14.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -4073,35 +4143,35 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-election-provider-solution-type", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-npos-elections", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "frame-executive" -version = "39.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "39.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "aquamarine", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-try-runtime", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-tracing", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -4142,32 +4212,75 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "const-hex", "docify", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "frame-support" +version = "39.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "aquamarine", + "array-bytes", + "binary-merkle-tree 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata 18.0.0", + "frame-support-procedural 31.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "impl-trait-for-tuples", + "k256", "log", + "macro_magic", "parity-scale-codec", + "paste", "scale-info", - "sp-runtime", + "serde", + "serde_json", + "smallvec", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-metadata-ir 0.8.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "static_assertions", + "tt-call", ] [[package]] name = "frame-support" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "aquamarine", "array-bytes", - "binary-merkle-tree", + "binary-merkle-tree 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "bitflags 1.3.2", "docify", "environmental", "frame-metadata 18.0.0", - "frame-support-procedural", + "frame-support-procedural 31.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "impl-trait-for-tuples", "k256", "log", @@ -4178,22 +4291,22 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing-proc-macro", - "sp-debug-derive", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-metadata-ir", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-trie", - "sp-weights", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-metadata-ir 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "static_assertions", "tt-call", ] @@ -4201,29 +4314,61 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "31.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse", + "docify", + "expander", + "frame-support-procedural-tools 13.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "itertools 0.11.0", + "macro_magic", + "proc-macro-warning 1.84.1", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "syn 2.0.101", +] + +[[package]] +name = "frame-support-procedural" +version = "31.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", "docify", "expander", - "frame-support-procedural-tools", + "frame-support-procedural-tools 13.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "itertools 0.11.0", "macro_magic", "proc-macro-warning 1.84.1", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "syn 2.0.101", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "13.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "frame-support-procedural-tools-derive 12.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ - "frame-support-procedural-tools-derive", + "frame-support-procedural-tools-derive 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "proc-macro-crate 3.3.0", "proc-macro2", "quote", @@ -4233,7 +4378,17 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "proc-macro2", "quote", @@ -4243,26 +4398,26 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-executive", "frame-metadata 18.0.0", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-support-test-pallet", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "pretty_assertions", "rustversion", "scale-info", "serde", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-metadata-ir", - "sp-runtime", - "sp-version", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-metadata-ir 0.8.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "static_assertions", "trybuild", ] @@ -4270,69 +4425,89 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "frame-system" +version = "39.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "cfg-if", + "docify", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "log", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "frame-system" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "cfg-if", "docify", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", - "sp-weights", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "frame-system-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "parity-scale-codec", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "frame-try-runtime" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", - "sp-api", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -5927,6 +6102,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] [[package]] name = "lazycell" @@ -6892,16 +7070,16 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-mmr-primitives", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -7285,6 +7463,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -7329,6 +7521,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.2" @@ -7537,7 +7740,7 @@ dependencies = [ "expander", "indexmap 2.9.0", "itertools 0.11.0", - "petgraph 0.6.5", + "petgraph", "proc-macro-crate 3.3.0", "proc-macro2", "quote", @@ -7553,108 +7756,123 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-asset-rate" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-authority-discovery" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-authority-discovery", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-authorship" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-babe" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-authorship", "pallet-session", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-babe", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "pallet-balances" +version = "40.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "docify", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-balances" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-beefy" version = "40.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-authorship", "pallet-session", @@ -7662,21 +7880,21 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-beefy-mmr" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", - "binary-merkle-tree", - "frame-benchmarking", - "frame-support", - "frame-system", + "binary-merkle-tree 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-beefy", "pallet-mmr", @@ -7684,30 +7902,30 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-beefy", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-broker" -version = "0.18.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "0.18.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -7715,11 +7933,11 @@ name = "pallet-bucket-nfts" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "num-bigint", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "pallet-file-system", "pallet-nfts", "pallet-storage-providers", @@ -7728,10 +7946,10 @@ dependencies = [ "shp-data-price-updater", "shp-file-metadata", "shp-traits", - "sp-core", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -7739,8 +7957,8 @@ name = "pallet-cr-randomness" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "pallet-proofs-dealer", "parity-scale-codec", @@ -7748,28 +7966,28 @@ dependencies = [ "serde", "shp-session-keys", "shp-traits", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-datahaven-native-transfer" version = "0.1.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "snowbridge-core 0.2.0", "snowbridge-outbound-queue-primitives", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", ] @@ -7777,42 +7995,42 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "38.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-npos-elections", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "strum 0.26.3", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-election-provider-support", - "frame-system", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "sp-npos-elections", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "ethereum", "ethereum-types", @@ -7822,70 +8040,134 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-storage", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-evm", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-version", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" dependencies = [ "environmental", "evm", "fp-account", "fp-evm", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hash-db", "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier?branch=stable2412#4dddde8766dc23337ade83fbd5836dd9e4d7326d" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "pallet-evm-precompile-blake2" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "fp-evm", +] + +[[package]] +name = "pallet-evm-precompile-bn128" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "fp-evm", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "substrate-bn", +] + +[[package]] +name = "pallet-evm-precompile-modexp" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "fp-evm", + "num", +] + +[[package]] +name = "pallet-evm-precompile-registry" +version = "0.1.0" dependencies = [ - "frame-support", - "frame-system", + "fp-evm", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "pallet-evm", + "pallet-timestamp", "parity-scale-codec", + "precompile-utils", "scale-info", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "pallet-evm-precompile-sha3fips" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "fp-evm", + "tiny-keccak", +] + +[[package]] +name = "pallet-evm-precompile-simple" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "fp-evm", + "ripemd", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-external-validators" version = "0.1.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-session", "pallet-timestamp", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -7893,11 +8175,11 @@ name = "pallet-external-validators-rewards" version = "0.1.0" dependencies = [ "cumulus-primitives-core", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-external-validators", "pallet-session", "pallet-timestamp", @@ -7908,11 +8190,11 @@ dependencies = [ "snowbridge-core 0.2.0", "snowbridge-merkle-tree", "snowbridge-outbound-queue-primitives", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -7921,26 +8203,26 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "snowbridge-merkle-tree", - "sp-api", - "sp-core", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-fast-unstake" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-staking", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -7948,9 +8230,9 @@ name = "pallet-file-system" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "num-bigint", "pallet-file-system-runtime-api", @@ -7963,11 +8245,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core", - "sp-runtime", - "sp-std", - "sp-trie", - "sp-weights", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -7977,109 +8259,109 @@ source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf2 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-grandpa" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-authorship", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-grandpa", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-identity" -version = "39.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "39.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-im-online" -version = "38.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "38.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-message-queue" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "environmental", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-weights", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-mmr" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-mmr-primitives", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-multisig" version = "39.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "parity-scale-codec", @@ -8090,62 +8372,62 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "33.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" dependencies = [ "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-offences" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-staking", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-outbound-commitment-store" version = "0.1.0" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-parameters" version = "0.10.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -8153,9 +8435,9 @@ name = "pallet-payment-streams" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "pallet-payment-streams-runtime-api", "pallet-proofs-dealer", "pallet-storage-providers", @@ -8164,8 +8446,8 @@ dependencies = [ "shp-constants", "shp-traits", "shp-treasury-funding", - "sp-runtime", - "sp-weights", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -8175,25 +8457,25 @@ source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf2 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-runtime", - "sp-std", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-preimage" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -8201,21 +8483,21 @@ name = "pallet-proofs-dealer" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", "parity-scale-codec", "scale-info", "shp-traits", - "sp-core", - "sp-keyring", - "sp-runtime", - "sp-std", - "sp-trie", - "sp-weights", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -8225,15 +8507,15 @@ source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf2 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-runtime", - "sp-std", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-proxy" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8245,67 +8527,67 @@ name = "pallet-randomness" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "scale-info", "serde", "shp-session-keys", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-scheduler" -version = "40.2.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "40.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-weights", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-session" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "log", "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", - "sp-state-machine", - "sp-trie", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-staking" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "pallet-authorship", "pallet-session", @@ -8313,19 +8595,19 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-staking", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-staking-reward-fn" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -8333,21 +8615,21 @@ name = "pallet-storage-providers" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.1", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "log", "pallet-randomness", "pallet-storage-providers-runtime-api", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "scale-info", "shp-constants", "shp-traits", - "sp-arithmetic", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -8357,153 +8639,152 @@ source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf2 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "pallet-sudo" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-timestamp" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-storage", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-transaction-payment-rpc" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "jsonrpsee 0.24.9", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-rpc", - "sp-runtime", - "sp-weights", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-weights", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-treasury" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-utility" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-vesting" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "pallet-xcm" -version = "18.1.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "18.1.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bounded-collections", - "frame-benchmarking", - "frame-support", - "frame-system", - "hex-literal 0.4.1", - "pallet-balances", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8745,17 +9026,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.9.0", -] - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", "indexmap 2.9.0", ] @@ -8831,18 +9102,29 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "polkadot-core-primitives" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "polkadot-node-metrics" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bs58", "futures", @@ -8861,7 +9143,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -8877,7 +9159,7 @@ dependencies = [ "sc-authority-discovery", "sc-network", "sc-network-types", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "strum 0.26.3", "thiserror 1.0.69", "tracing-gum", @@ -8886,25 +9168,25 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", "bounded-vec", "futures", "futures-timer", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "polkadot-primitives", "sc-keystore", "schnorrkel", "serde", - "sp-application-crypto", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-keystore", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-maybe-compressed-blob", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "zstd 0.12.4", ] @@ -8912,7 +9194,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "bitvec", @@ -8929,11 +9211,11 @@ dependencies = [ "sc-network-types", "sc-transaction-pool-api", "smallvec", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-authority-discovery", "sp-blockchain", "sp-consensus-babe", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -8941,7 +9223,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -8954,8 +9236,8 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", - "sp-api", - "sp-core", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -8963,64 +9245,80 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "bounded-collections", + "derive_more 0.99.20", + "parity-scale-codec", + "polkadot-core-primitives 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "scale-info", + "serde", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" dependencies = [ "bounded-collections", "derive_more 0.99.20", "parity-scale-codec", - "polkadot-core-primitives", + "polkadot-core-primitives 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "polkadot-primitives" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", "hex-literal 0.4.1", "log", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", + "polkadot-core-primitives 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-authority-discovery", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "polkadot-runtime-common" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "libsecp256k1", "log", "pallet-asset-rate", "pallet-authorship", "pallet-babe", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", @@ -9040,15 +9338,15 @@ dependencies = [ "serde", "serde_derive", "slot-range-helper", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-npos-elections", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9058,32 +9356,32 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bs58", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "parity-scale-codec", "polkadot-primitives", - "sp-tracing", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "polkadot-runtime-parachains" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitflags 1.3.2", "bitvec", "derive_more 0.99.20", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-broker", "pallet-message-queue", "pallet-mmr", @@ -9092,25 +9390,25 @@ dependencies = [ "pallet-timestamp", "pallet-vesting", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", + "polkadot-core-primitives 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "polkadot-primitives", "polkadot-runtime-metrics", "rand 0.8.5", "rand_chacha 0.3.1", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-staking", - "sp-std", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-executor", "static_assertions", @@ -9119,45 +9417,45 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.8.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", - "frame-benchmarking", + "frame-benchmarking 39.1.0", "frame-executive", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "log", "parity-scale-codec", "scale-info", - "sp-api", - "sp-arithmetic", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-consensus-aura", "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-storage", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-version", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "polkadot-statement-table" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tracing-gum", ] @@ -9312,6 +9610,49 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precompile-utils" +version = "0.1.0" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "derive_more 1.0.0", + "environmental", + "evm", + "fp-evm", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "hex", + "hex-literal 0.4.1", + "impl-trait-for-tuples", + "log", + "num_enum", + "pallet-evm", + "parity-scale-codec", + "precompile-utils-macro", + "scale-info", + "serde", + "similar-asserts", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "staging-xcm", +] + +[[package]] +name = "precompile-utils-macro" +version = "0.1.0" +source = "git+https://github.com/polkadot-evm/frontier?rev=75329a2df49e2cc7981485392c31160929d1bd48#75329a2df49e2cc7981485392c31160929d1bd48" +dependencies = [ + "case", + "num_enum", + "prettyplease", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "syn 2.0.101", +] + [[package]] name = "predicates" version = "2.1.5" @@ -9600,7 +9941,7 @@ dependencies = [ "log", "multimap", "once_cell", - "petgraph 0.7.1", + "petgraph", "prettyplease", "prost 0.13.5", "prost-types", @@ -10530,18 +10871,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", - "sp-core", - "sp-wasm-interface", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-authority-discovery" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10558,12 +10899,12 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-types", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-authority-discovery", "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -10571,7 +10912,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "futures-timer", @@ -10581,34 +10922,34 @@ dependencies = [ "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-chain-spec" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "docify", @@ -10623,19 +10964,19 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-genesis-builder", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-tracing", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-genesis-builder 0.16.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -10645,8 +10986,8 @@ dependencies = [ [[package]] name = "sc-cli" -version = "0.50.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "0.50.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "chrono", @@ -10675,12 +11016,12 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-panic-handler 13.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "tokio", ] @@ -10688,7 +11029,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "fnv", "futures", @@ -10698,24 +11039,24 @@ dependencies = [ "sc-executor", "sc-transaction-pool-api", "sc-utils", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", - "sp-externalities", - "sp-runtime", - "sp-state-machine", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-statement-store", - "sp-storage", - "sp-trie", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.45.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "hash-db", "kvdb", @@ -10729,19 +11070,19 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-consensus" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10752,12 +11093,12 @@ dependencies = [ "sc-network-types", "sc-utils", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -10765,7 +11106,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10776,17 +11117,17 @@ dependencies = [ "sc-consensus", "sc-consensus-slots", "sc-telemetry", - "sp-api", - "sp-application-crypto", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -10794,7 +11135,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "fork-tree", @@ -10811,18 +11152,18 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sc-transaction-pool-api", - "sp-api", - "sp-application-crypto", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -10830,7 +11171,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -10847,16 +11188,16 @@ dependencies = [ "sc-network-sync", "sc-network-types", "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -10866,7 +11207,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "jsonrpsee 0.24.9", @@ -10876,30 +11217,30 @@ dependencies = [ "sc-consensus-beefy", "sc-rpc", "serde", - "sp-application-crypto", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-beefy", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-consensus-epochs" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-consensus-grandpa" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ahash", "array-bytes", @@ -10926,16 +11267,16 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -10943,7 +11284,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "assert_matches", "async-trait", @@ -10960,16 +11301,16 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror 1.0.69", @@ -10978,7 +11319,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10988,20 +11329,20 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-executor" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11009,27 +11350,27 @@ dependencies = [ "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", - "sp-api", - "sp-core", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-trie", - "sp-version", - "sp-wasm-interface", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-panic-handler 13.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "wasm-instrument", ] @@ -11037,18 +11378,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-executor-wasmtime" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "anyhow", "cfg-if", @@ -11058,15 +11399,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "console", "futures", @@ -11077,27 +11418,27 @@ dependencies = [ "sc-network-common", "sc-network-sync", "sp-blockchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-keystore" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-mixnet" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -11114,19 +11455,19 @@ dependencies = [ "sc-network", "sc-network-types", "sc-transaction-pool-api", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus", - "sp-core", - "sp-keystore", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-mixnet", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-network" -version = "0.48.5" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "0.48.4" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11160,10 +11501,10 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -11177,7 +11518,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11189,13 +11530,13 @@ dependencies = [ "sc-network-types", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-network-gossip" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ahash", "futures", @@ -11206,7 +11547,7 @@ dependencies = [ "sc-network-sync", "sc-network-types", "schnellru", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "tracing", ] @@ -11214,7 +11555,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11227,15 +11568,15 @@ dependencies = [ "sc-network", "sc-network-types", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-network-sync" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -11256,12 +11597,12 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -11271,7 +11612,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "futures", @@ -11283,14 +11624,14 @@ dependencies = [ "sc-network-types", "sc-utils", "sp-consensus", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-network-types" -version = "0.15.5" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "0.15.2" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bs58", "ed25519-dalek", @@ -11306,8 +11647,8 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "43.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "43.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "bytes", @@ -11331,12 +11672,12 @@ dependencies = [ "sc-network-types", "sc-transaction-pool-api", "sc-utils", - "sp-api", - "sp-core", - "sp-externalities", - "sp-keystore", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "threadpool", "tracing", ] @@ -11344,7 +11685,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11353,7 +11694,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "jsonrpsee 0.24.9", @@ -11369,23 +11710,23 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", - "sp-keystore", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-offchain", "sp-rpc", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", "sp-statement-store", - "sp-version", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "tokio", ] [[package]] name = "sc-rpc-api" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", @@ -11395,17 +11736,17 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-rpc", - "sp-runtime", - "sp-version", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-rpc-server" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -11429,7 +11770,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "futures", @@ -11447,12 +11788,12 @@ dependencies = [ "sc-transaction-pool-api", "schnellru", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-rpc", - "sp-runtime", - "sp-version", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "tokio", "tokio-stream", @@ -11461,7 +11802,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "directories", @@ -11499,20 +11840,20 @@ dependencies = [ "schnellru", "serde", "serde_json", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-session", - "sp-state-machine", - "sp-storage", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie", - "sp-version", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "static_init", "substrate-prometheus-endpoint", "tempfile", @@ -11525,18 +11866,18 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.37.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-sysinfo" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "derive_more 0.99.20", "futures", @@ -11548,16 +11889,16 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-io", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sc-telemetry" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "chrono", "futures", @@ -11577,7 +11918,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "chrono", "console", @@ -11590,12 +11931,12 @@ dependencies = [ "sc-client-api", "sc-tracing-proc-macro", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-rpc", - "sp-runtime", - "sp-tracing", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "tracing", "tracing-log", @@ -11605,7 +11946,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -11616,7 +11957,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -11631,12 +11972,12 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-blockchain", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-runtime", - "sp-tracing", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror 1.0.69", @@ -11647,7 +11988,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -11655,15 +11996,15 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sc-utils" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-channel 1.9.0", "futures", @@ -11671,7 +12012,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12180,8 +12521,8 @@ name = "shp-constants" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12189,14 +12530,14 @@ name = "shp-data-price-updater" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "parity-scale-codec", "scale-info", "serde", "shp-traits", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12204,16 +12545,16 @@ name = "shp-file-key-verifier" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "parity-scale-codec", "scale-info", "serde", "shp-file-metadata", "shp-traits", - "sp-core", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "trie-db", ] @@ -12228,9 +12569,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic", - "sp-core", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12238,15 +12579,15 @@ name = "shp-forest-verifier" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "parity-scale-codec", "scale-info", "shp-traits", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "trie-db", ] @@ -12258,11 +12599,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12270,13 +12611,13 @@ name = "shp-traits" version = "0.1.0" source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12286,8 +12627,8 @@ source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf2 dependencies = [ "log", "shp-traits", - "sp-arithmetic", - "sp-core", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -12323,8 +12664,28 @@ dependencies = [ ] [[package]] -name = "simple-dns" -version = "0.9.3" +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +dependencies = [ + "bstr", + "unicode-segmentation", +] + +[[package]] +name = "similar-asserts" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a" +dependencies = [ + "console", + "similar", +] + +[[package]] +name = "simple-dns" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" dependencies = [ @@ -12367,12 +12728,12 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12527,7 +12888,7 @@ name = "snowbridge-beacon-primitives" version = "0.2.0" dependencies = [ "byte-slice-cast", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "parity-scale-codec", @@ -12536,10 +12897,10 @@ dependencies = [ "serde", "snowbridge-ethereum 0.3.0", "snowbridge-milagro-bls", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "ssz_rs", "ssz_rs_derive", ] @@ -12547,10 +12908,10 @@ dependencies = [ [[package]] name = "snowbridge-beacon-primitives" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "byte-slice-cast", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "parity-scale-codec", "rlp 0.6.1", @@ -12558,10 +12919,10 @@ dependencies = [ "serde", "snowbridge-ethereum 0.11.0", "snowbridge-milagro-bls", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "ssz_rs", "ssz_rs_derive", ] @@ -12572,20 +12933,20 @@ version = "0.2.0" dependencies = [ "bp-relayers", "ethabi-decode", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "log", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12594,22 +12955,22 @@ dependencies = [ [[package]] name = "snowbridge-core" version = "0.12.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ethabi-decode", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex-literal 0.4.1", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "scale-info", "serde", "snowbridge-beacon-primitives 0.12.1", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", ] @@ -12630,15 +12991,15 @@ dependencies = [ "serde", "serde-big-array", "serde_json", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "snowbridge-ethereum" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ethabi-decode", "ethbloom", @@ -12650,9 +13011,9 @@ dependencies = [ "scale-info", "serde", "serde-big-array", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12660,8 +13021,8 @@ name = "snowbridge-inbound-queue-primitives" version = "0.9.0" dependencies = [ "alloy-core", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "impl-trait-for-tuples", @@ -12671,10 +13032,10 @@ dependencies = [ "snowbridge-beacon-primitives 0.2.0", "snowbridge-core 0.2.0", "snowbridge-verification-primitives", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12689,10 +13050,10 @@ dependencies = [ "hex-literal 0.3.4", "parity-scale-codec", "scale-info", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-runtime", - "sp-tracing", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12713,12 +13074,12 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-merkle-tree" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12727,21 +13088,21 @@ version = "0.2.0" dependencies = [ "alloy-core", "ethabi-decode", - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "log", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "scale-info", "snowbridge-core 0.2.0", "snowbridge-verification-primitives", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12751,14 +13112,14 @@ dependencies = [ name = "snowbridge-outbound-queue-v2-runtime-api" version = "0.2.0" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "snowbridge-core 0.2.0", "snowbridge-merkle-tree", "snowbridge-outbound-queue-primitives", - "sp-api", - "sp-std", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] @@ -12766,9 +13127,9 @@ dependencies = [ name = "snowbridge-pallet-ethereum-client" version = "0.2.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex-literal 0.3.4", "log", "pallet-timestamp", @@ -12782,10 +13143,10 @@ dependencies = [ "snowbridge-ethereum 0.3.0", "snowbridge-inbound-queue-primitives", "snowbridge-pallet-ethereum-client-fixtures", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "static_assertions", ] @@ -12797,8 +13158,8 @@ dependencies = [ "snowbridge-beacon-primitives 0.2.0", "snowbridge-core 0.2.0", "snowbridge-inbound-queue-primitives", - "sp-core", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12807,13 +13168,13 @@ version = "0.2.0" dependencies = [ "alloy-core", "bp-relayers", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", @@ -12823,11 +13184,11 @@ dependencies = [ "snowbridge-pallet-ethereum-client", "snowbridge-pallet-inbound-queue-v2-fixtures", "snowbridge-test-utils", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12842,30 +13203,30 @@ dependencies = [ "snowbridge-beacon-primitives 0.2.0", "snowbridge-core 0.2.0", "snowbridge-inbound-queue-primitives", - "sp-core", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "snowbridge-pallet-outbound-queue" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bridge-hub-common 0.12.0", "ethabi-decode", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "serde", "snowbridge-core 0.12.2", "snowbridge-outbound-queue-merkle-tree", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -12876,9 +13237,9 @@ dependencies = [ "bp-relayers", "bridge-hub-common 0.13.1", "ethabi-decode", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex-literal 0.3.4", "pallet-message-queue", "parity-scale-codec", @@ -12890,12 +13251,12 @@ dependencies = [ "snowbridge-merkle-tree", "snowbridge-outbound-queue-primitives", "snowbridge-verification-primitives", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12905,13 +13266,13 @@ dependencies = [ name = "snowbridge-pallet-system" version = "0.13.1" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "hex-literal 0.3.4", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-message-queue", "parity-scale-codec", "polkadot-primitives", @@ -12919,10 +13280,10 @@ dependencies = [ "snowbridge-core 0.2.0", "snowbridge-outbound-queue-primitives", "snowbridge-pallet-outbound-queue", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-executor", ] @@ -12931,12 +13292,12 @@ dependencies = [ name = "snowbridge-pallet-system-v2" version = "0.2.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex-literal 0.3.4", "log", - "pallet-balances", + "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-xcm", "parity-scale-codec", "polkadot-primitives", @@ -12946,11 +13307,11 @@ dependencies = [ "snowbridge-pallet-outbound-queue-v2", "snowbridge-pallet-system", "snowbridge-test-utils", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keyring 40.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-executor", ] @@ -12961,8 +13322,8 @@ version = "0.2.0" dependencies = [ "parity-scale-codec", "snowbridge-core 0.2.0", - "sp-api", - "sp-std", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", ] @@ -12970,17 +13331,17 @@ dependencies = [ name = "snowbridge-test-utils" version = "0.1.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex", "log", "pallet-xcm", "parity-scale-codec", "scale-info", "snowbridge-outbound-queue-primitives", - "sp-core", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12990,12 +13351,12 @@ dependencies = [ name = "snowbridge-verification-primitives" version = "0.2.0" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", "snowbridge-beacon-primitives 0.2.0", - "sp-core", - "sp-std", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -13052,29 +13413,65 @@ dependencies = [ [[package]] name = "sp-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "docify", + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 21.0.0", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-metadata-ir 0.8.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-api" +version = "35.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "docify", "hash-db", "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro", - "sp-core", - "sp-externalities", - "sp-metadata-ir", - "sp-runtime", - "sp-runtime-interface", - "sp-state-machine", - "sp-trie", - "sp-version", + "sp-api-proc-macro 21.0.2", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-metadata-ir 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", ] +[[package]] +name = "sp-api-proc-macro" +version = "21.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "sp-api-proc-macro" version = "21.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13088,19 +13485,45 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-application-crypto" +version = "39.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "sp-arithmetic" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "static_assertions", +] + +[[package]] +name = "sp-arithmetic" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "docify", "integer-sqrt", @@ -13114,40 +13537,40 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-block-builder" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "sp-api", - "sp-inherents", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-blockchain" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", - "sp-runtime", - "sp-state-machine", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "tracing", ] @@ -13155,93 +13578,93 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", "log", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sp-consensus-aura" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-slots", - "sp-inherents", - "sp-runtime", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-io", - "sp-keystore", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-mmr-primitives", - "sp-runtime", - "sp-weights", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-consensus-slots" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -13252,7 +13675,53 @@ dependencies = [ [[package]] name = "sp-core" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "array-bytes", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58", + "dyn-clonable", + "ed25519-zebra", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde 0.5.0", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin", + "parity-bip39", + "parity-scale-codec", + "parking_lot 0.12.3", + "paste", + "primitive-types 0.13.1", + "rand 0.8.5", + "scale-info", + "schnorrkel", + "secp256k1 0.28.2", + "secrecy", + "serde", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "ss58-registry", + "substrate-bip39 0.6.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "35.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -13281,14 +13750,14 @@ dependencies = [ "secp256k1 0.28.2", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "ss58-registry", - "substrate-bip39", + "substrate-bip39 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", "tracing", "w3f-bls", @@ -13312,7 +13781,20 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.9", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "blake2b_simd", "byteorder", @@ -13325,17 +13807,27 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "syn 2.0.101", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "syn 2.0.101", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -13344,7 +13836,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "proc-macro2", "quote", @@ -13354,42 +13856,103 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-externalities" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.16.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde_json", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-genesis-builder" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", +] + +[[package]] +name = "sp-inherents" +version = "35.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", ] [[package]] name = "sp-inherents" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", ] [[package]] name = "sp-io" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "bytes", + "docify", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive", + "rustversion", + "secp256k1 0.28.2", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "39.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "bytes", "docify", @@ -13400,14 +13963,14 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1 0.28.2", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-externalities", - "sp-keystore", - "sp-runtime-interface", - "sp-state-machine", - "sp-tracing", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-state-machine 0.44.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "tracing", "tracing-core", ] @@ -13415,28 +13978,49 @@ dependencies = [ [[package]] name = "sp-keyring" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "strum 0.26.3", +] + +[[package]] +name = "sp-keyring" +version = "40.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core", - "sp-externalities", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-keystore" +version = "0.41.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -13445,7 +14029,17 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "frame-metadata 18.0.0", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "frame-metadata 18.0.0", "parity-scale-codec", @@ -13455,58 +14049,67 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-mmr-primitives" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "parity-scale-codec", "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", - "sp-api", - "sp-core", - "sp-debug-derive", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sp-npos-elections" version = "35.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-runtime", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-offchain" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "sp-api", - "sp-core", - "sp-runtime", + "backtrace", + "regex", ] [[package]] name = "sp-panic-handler" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "backtrace", "regex", @@ -13515,19 +14118,48 @@ dependencies = [ [[package]] name = "sp-rpc" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "rustc-hash 1.1.0", "serde", - "sp-core", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-runtime" +version = "40.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "binary-merkle-tree 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "tracing", + "tuplex", ] [[package]] name = "sp-runtime" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ - "binary-merkle-tree", + "binary-merkle-tree 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "docify", "either", "hash256-std-hasher", @@ -13540,13 +14172,13 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", - "sp-trie", - "sp-weights", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "tracing", "tuplex", ] @@ -13554,26 +14186,58 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive", + "primitive-types 0.13.1", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface-proc-macro 18.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types 0.13.1", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime-interface-proc-macro 18.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-wasm-interface 21.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "18.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "Inflector", "expander", @@ -13586,34 +14250,67 @@ dependencies = [ [[package]] name = "sp-session" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-keystore 0.41.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-staking 37.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-staking" +version = "37.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ + "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-staking", + "serde", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-staking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", +] + +[[package]] +name = "sp-state-machine" +version = "0.44.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-panic-handler 13.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", + "tracing", + "trie-db", ] [[package]] name = "sp-state-machine" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "hash-db", "log", @@ -13621,10 +14318,10 @@ dependencies = [ "parking_lot 0.12.3", "rand 0.8.5", "smallvec", - "sp-core", - "sp-externalities", - "sp-panic-handler", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-panic-handler 13.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", "tracing", "trie-db", @@ -13633,7 +14330,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -13643,13 +14340,13 @@ dependencies = [ "rand 0.8.5", "scale-info", "sha2 0.10.9", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", - "sp-externalities", - "sp-runtime", - "sp-runtime-interface", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-application-crypto 39.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime-interface 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", "x25519-dalek", ] @@ -13657,36 +14354,64 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" + +[[package]] +name = "sp-storage" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] name = "sp-timestamp" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents", - "sp-runtime", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "thiserror 1.0.69", ] [[package]] name = "sp-tracing" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-tracing" +version = "17.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "parity-scale-codec", "tracing", @@ -13697,30 +14422,52 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "sp-api", - "sp-runtime", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "sp-transaction-storage-proof" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-trie", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-inherents 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-trie" +version = "38.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "ahash", + "hash-db", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "scale-info", + "schnellru", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", + "tracing", + "trie-db", + "trie-root", ] [[package]] name = "sp-trie" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "ahash", "hash-db", @@ -13731,8 +14478,8 @@ dependencies = [ "rand 0.8.5", "scale-info", "schnellru", - "sp-core", - "sp-externalities", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-externalities 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", "tracing", "trie-db", @@ -13742,24 +14489,53 @@ dependencies = [ [[package]] name = "sp-version" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-version" +version = "38.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", "thiserror 1.0.69", ] [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "parity-scale-codec", + "proc-macro-warning 1.84.1", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-version-proc-macro" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "parity-scale-codec", "proc-macro-warning 1.84.1", @@ -13771,7 +14547,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -13780,18 +14556,43 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "sp-wasm-interface" +version = "21.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + [[package]] name = "sp-weights" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic", - "sp-debug-derive", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", +] + +[[package]] +name = "sp-weights" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", ] [[package]] @@ -13995,62 +14796,62 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-xcm" version = "15.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "bounded-collections", "derivative", "environmental", - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-weights", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "xcm-procedural", ] [[package]] name = "staging-xcm-builder" version = "18.2.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", - "frame-system", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "frame-system 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "log", "pallet-asset-conversion", "pallet-transaction-payment", "parity-scale-codec", - "polkadot-parachain-primitives", + "polkadot-parachain-primitives 15.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-weights", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "staging-xcm-executor" -version = "18.0.4" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +version = "18.0.3" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "environmental", - "frame-benchmarking", - "frame-support", + "frame-benchmarking 39.1.0", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-weights", + "sp-arithmetic 26.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "tracing", ] @@ -14145,7 +14946,19 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "hmac 0.12.1", + "pbkdf2", + "schnorrkel", + "sha2 0.10.9", + "zeroize", +] + +[[package]] +name = "substrate-bip39" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412#5b8dad343e6e6df3e5d11705716ebab9d991ed36" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -14154,15 +14967,28 @@ dependencies = [ "zeroize", ] +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", +] + [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" [[package]] name = "substrate-frame-rpc-system" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -14172,17 +14998,17 @@ dependencies = [ "parity-scale-codec", "sc-rpc-api", "sc-transaction-pool-api", - "sp-api", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-runtime 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -14196,7 +15022,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "25.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "build-helper", @@ -14211,11 +15037,11 @@ dependencies = [ "polkavm-linker", "sc-executor", "shlex", - "sp-core", - "sp-io", + "sp-core 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-io 39.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-maybe-compressed-blob", - "sp-tracing", - "sp-version", + "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "strum 0.26.3", "tempfile", "toml 0.8.22", @@ -14920,7 +15746,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "coarsetime", "polkadot-primitives", @@ -14931,7 +15757,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "expander", "proc-macro-crate 3.3.0", @@ -16376,7 +17202,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "proc-macro2", @@ -16387,13 +17213,13 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.5.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#247f2e4641f8039ceb58827ff2f8a562217f298d" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ - "frame-support", + "frame-support 39.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "parity-scale-codec", "scale-info", - "sp-api", - "sp-weights", + "sp-api 35.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-weights 31.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-executor", ] diff --git a/operator/Cargo.toml b/operator/Cargo.toml index 5552ffe2c..d58f79e04 100644 --- a/operator/Cargo.toml +++ b/operator/Cargo.toml @@ -10,6 +10,7 @@ members = [ "node", "pallets/outbound-commitment-store", "pallets/*", + "precompiles/*", "primitives/bridge", "runtime/*", ] @@ -29,6 +30,7 @@ pallet-external-validators-rewards = { path = "./pallets/external-validators-rew pallet-external-validators-rewards-runtime-api = { path = "./pallets/external-validators-rewards/runtime-api", default-features = false } pallet-outbound-commitment-store = { path = "./pallets/outbound-commitment-store", default-features = false } pallet-datahaven-native-transfer = { path = "./pallets/datahaven-native-transfer", default-features = false } +pallet-evm-precompile-registry = { path = "./precompiles/precompile-registry", default-features = false } # Crates.io (wasm) alloy-core = { version = "0.8.15", default-features = false } @@ -53,6 +55,7 @@ jsonrpsee = { version = "0.24.3" } libsecp256k1 = { version = "0.7", default-features = false } log = { version = "0.4.25" } milagro-bls = { version = "1.5.4", default-features = false, package = "snowbridge-milagro-bls" } +num_enum = { version = "0.7.3", default-features = false } openssl-sys = { version = "0.9", features = [ "vendored", ] } # This is just to set the "vendored" feature required for the crossbuild, so that OpenSSL builds from source @@ -75,102 +78,102 @@ tracing = { version = "0.1.37", default-features = false } url = "2.2.2" # Polkadot SDK -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-support-test = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -mmr-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-beefy-mmr = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-mmr = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-parameters = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -runtime-parachains = { package = "polkadot-runtime-parachains", git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus-beefy-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-crypto-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } -xcm = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false, package = "staging-xcm" } -xcm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false, package = "staging-xcm-builder" } -xcm-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false, package = "staging-xcm-executor" } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-support-test = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +mmr-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-beefy = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-beefy-mmr = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-mmr = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-parameters = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +runtime-parachains = { package = "polkadot-runtime-parachains", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus-beefy-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-crypto-hashing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +xcm = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false, package = "staging-xcm" } +xcm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false, package = "staging-xcm-builder" } +xcm-executor = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false, package = "staging-xcm-executor" } # Snowbridge -bp-relayers = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } +bp-relayers = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } bridge-hub-common = { path = "primitives/snowbridge/bridge-hub-common", default-features = false } snowbridge-beacon-primitives = { path = "primitives/snowbridge/beacon", default-features = false } snowbridge-core = { path = "primitives/snowbridge/core", default-features = false } @@ -183,7 +186,7 @@ snowbridge-pallet-ethereum-client = { path = "pallets/ethereum-client", default- snowbridge-pallet-ethereum-client-fixtures = { path = "pallets/ethereum-client/fixtures", default-features = false } snowbridge-pallet-inbound-queue-v2 = { path = "pallets/inbound-queue-v2", default-features = false } snowbridge-pallet-inbound-queue-v2-fixtures = { path = "pallets/inbound-queue-v2/fixtures", default-features = false } -snowbridge-pallet-outbound-queue = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2412", default-features = false } +snowbridge-pallet-outbound-queue = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } snowbridge-pallet-outbound-queue-v2 = { path = "pallets/outbound-queue-v2", default-features = false } snowbridge-pallet-system = { path = "pallets/system", default-features = false } snowbridge-pallet-system-v2 = { path = "pallets/system-v2", default-features = false } @@ -192,30 +195,34 @@ snowbridge-test-utils = { path = "primitives/snowbridge/test-utils", default-fea snowbridge-verification-primitives = { path = "primitives/snowbridge/verification", default-features = false } # Frontier (wasm) -fp-account = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fp-evm = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fp-rpc = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fp-self-contained = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fp-storage = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-base-fee = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-dynamic-fee = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-ethereum = { git = "https://github.com/polkadot-evm/frontier/", branch = "stable2412", default-features = false } -pallet-evm = { git = "https://github.com/polkadot-evm/frontier/", branch = "stable2412", default-features = false } -pallet-evm-chain-id = { git = "https://github.com/polkadot-evm/frontier/", branch = "stable2412", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -pallet-hotfix-sufficients = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } +fp-account = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fp-evm = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fp-rpc = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fp-self-contained = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fp-storage = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-base-fee = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-dynamic-fee = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-ethereum = { git = "https://github.com/polkadot-evm/frontier/", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm = { git = "https://github.com/polkadot-evm/frontier/", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/polkadot-evm/frontier/", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-precompile-blake2 = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +pallet-hotfix-sufficients = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +precompile-utils = { git = "https://github.com/polkadot-evm/frontier/", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +precompile-utils-macro = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } # Frontier (client) -fc-api = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-cli = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-consensus = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-db = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412" } -fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-rpc = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-rpc-core = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } -fc-storage = { git = "https://github.com/polkadot-evm/frontier", branch = "stable2412", default-features = false } +fc-api = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-cli = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-consensus = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-db = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48" } +fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-rpc = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-rpc-core = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } +fc-storage = { git = "https://github.com/polkadot-evm/frontier", rev="75329a2df49e2cc7981485392c31160929d1bd48", default-features = false } # StorageHub storage-hub-runtime = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } diff --git a/operator/node/src/command.rs b/operator/node/src/command.rs index 00c3d0ad1..9087be57f 100644 --- a/operator/node/src/command.rs +++ b/operator/node/src/command.rs @@ -264,54 +264,58 @@ pub fn run() -> sc_cli::Result<()> { let runner = cli.create_runner(&cli.run)?; runner.run_node_until_exit(|config| async move { match config.network.network_backend { - sc_network::config::NetworkBackendType::Libp2p => match config.chain_spec { - ref spec if spec.is_mainnet() => { - service::new_full::< - datahaven_mainnet_runtime::RuntimeApi, - sc_network::NetworkWorker<_, _>, - >(config, cli.eth) - .await - } - ref spec if spec.is_testnet() => { - service::new_full::< - datahaven_testnet_runtime::RuntimeApi, - sc_network::NetworkWorker<_, _>, - >(config, cli.eth) - .await - } - _ => { - service::new_full::< - datahaven_stagenet_runtime::RuntimeApi, - sc_network::NetworkWorker<_, _>, - >(config, cli.eth) - .await + Some(sc_network::config::NetworkBackendType::Libp2p) | None => { + match config.chain_spec { + ref spec if spec.is_mainnet() => { + service::new_full::< + datahaven_mainnet_runtime::RuntimeApi, + sc_network::NetworkWorker<_, _>, + >(config, cli.eth) + .await + } + ref spec if spec.is_testnet() => { + service::new_full::< + datahaven_testnet_runtime::RuntimeApi, + sc_network::NetworkWorker<_, _>, + >(config, cli.eth) + .await + } + _ => { + service::new_full::< + datahaven_stagenet_runtime::RuntimeApi, + sc_network::NetworkWorker<_, _>, + >(config, cli.eth) + .await + } } + .map_err(sc_cli::Error::Service) } - .map_err(sc_cli::Error::Service), - sc_network::config::NetworkBackendType::Litep2p => match config.chain_spec { - ref spec if spec.is_mainnet() => { - service::new_full::< - datahaven_mainnet_runtime::RuntimeApi, - sc_network::Litep2pNetworkBackend, - >(config, cli.eth) - .await - } - ref spec if spec.is_testnet() => { - service::new_full::< - datahaven_testnet_runtime::RuntimeApi, - sc_network::Litep2pNetworkBackend, - >(config, cli.eth) - .await - } - _ => { - service::new_full::< - datahaven_stagenet_runtime::RuntimeApi, - sc_network::Litep2pNetworkBackend, - >(config, cli.eth) - .await + Some(sc_network::config::NetworkBackendType::Litep2p) => { + match config.chain_spec { + ref spec if spec.is_mainnet() => { + service::new_full::< + datahaven_mainnet_runtime::RuntimeApi, + sc_network::Litep2pNetworkBackend, + >(config, cli.eth) + .await + } + ref spec if spec.is_testnet() => { + service::new_full::< + datahaven_testnet_runtime::RuntimeApi, + sc_network::Litep2pNetworkBackend, + >(config, cli.eth) + .await + } + _ => { + service::new_full::< + datahaven_stagenet_runtime::RuntimeApi, + sc_network::Litep2pNetworkBackend, + >(config, cli.eth) + .await + } } + .map_err(sc_cli::Error::Service) } - .map_err(sc_cli::Error::Service), } }) } diff --git a/operator/precompiles/precompile-registry/Cargo.toml b/operator/precompiles/precompile-registry/Cargo.toml new file mode 100644 index 000000000..8dee9cf85 --- /dev/null +++ b/operator/precompiles/precompile-registry/Cargo.toml @@ -0,0 +1,42 @@ +[package] +name = "pallet-evm-precompile-registry" +authors = ["The DataHaven Team"] +description = "Registry of active precompiles" +edition = "2021" +version = "0.1.0" + +[dependencies] +# Substrate +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-core = { workspace = true } +sp-io = { workspace = true } + +# Frontier +fp-evm = { workspace = true } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } +precompile-utils = { workspace = true } + +[dev-dependencies] +# Precompile utils for testing +precompile-utils = { workspace = true, features = ["std", "testing"] } + +# Substrate +pallet-balances = { workspace = true, features = ["insecure_zero_ed", "std"] } +pallet-timestamp = { workspace = true, features = ["std"] } +parity-scale-codec = { workspace = true, features = ["max-encoded-len", "std"] } +scale-info = { workspace = true, features = ["derive", "std"] } +sp-runtime = { workspace = true, features = ["std"] } + +[features] +default = ["std"] +std = [ + "fp-evm/std", + "frame-support/std", + "frame-system/std", + "pallet-evm/std", + "parity-scale-codec/std", + "precompile-utils/std", + "sp-core/std", + "sp-io/std", +] \ No newline at end of file diff --git a/operator/precompiles/precompile-registry/PrecompileRegistry.sol b/operator/precompiles/precompile-registry/PrecompileRegistry.sol new file mode 100644 index 000000000..4c27fe064 --- /dev/null +++ b/operator/precompiles/precompile-registry/PrecompileRegistry.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-3.0-only +pragma solidity >=0.8.3; + +/// @dev The PrecompileRegistry contract's address. +address constant PRECOMPILE_REGISTRY_ADDRESS = 0x0000000000000000000000000000000000000815; + +/// @dev The PrecompileRegistry contract's instance. +PrecompileRegistry constant PRECOMPILE_REGISTRY_CONTRACT = PrecompileRegistry( + PRECOMPILE_REGISTRY_ADDRESS +); + +/// @author The Moonbeam Team +/// @title Precompile Registry +/// @dev Interface to the set of available precompiles. +/// @custom:address 0x0000000000000000000000000000000000000815 +interface PrecompileRegistry { + /// @dev Query if the given address is a precompile. Note that deactivated precompiles + /// are still considered precompiles and will return `true`. + /// @param a: Address to query + /// @return output Is this address a precompile? + /// @custom:selector 446b450e + function isPrecompile(address a) external view returns (bool); + + /// @dev Query if the given address is an active precompile. Will return false if the + /// address is not a precompile or if this precompile is deactivated. + /// @param a: Address to query + /// @return output Is this address an active precompile? + /// @custom:selector 6f5e23cf + function isActivePrecompile(address a) external view returns (bool); + + /// @dev Update the account code of a precompile address. + /// As precompiles are implemented inside the Runtime, they don't have a bytecode, and + /// their account code is empty by default. However in Solidity calling a function of a + /// contract often automatically adds a check that the contract bytecode is non-empty. + /// For that reason a dummy code (0x60006000fd) can be inserted at the precompile address + /// to pass that check. This function allows any user to insert that code to precompile address + /// if they need it. + /// @param a: Address of the precompile. + /// @custom:selector 48ceb1b4 + function updateAccountCode(address a) external; +} diff --git a/operator/precompiles/precompile-registry/src/lib.rs b/operator/precompiles/precompile-registry/src/lib.rs new file mode 100644 index 000000000..e81bb4770 --- /dev/null +++ b/operator/precompiles/precompile-registry/src/lib.rs @@ -0,0 +1,99 @@ +// Copyright 2019-2025 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(test)] +mod mock; +#[cfg(test)] +mod tests; + +use core::marker::PhantomData; +use fp_evm::{ExitError, IsPrecompileResult, PrecompileFailure}; +use precompile_utils::{ + precompile_set::{is_precompile_or_fail, IsActivePrecompile}, + prelude::*, +}; +use sp_core::Get; + +const DUMMY_CODE: [u8; 5] = [0x60, 0x00, 0x60, 0x00, 0xfd]; + +pub struct PrecompileRegistry(PhantomData); + +#[precompile_utils::precompile] +impl PrecompileRegistry +where + Runtime: pallet_evm::Config, + Runtime::PrecompilesType: IsActivePrecompile, +{ + #[precompile::public("isPrecompile(address)")] + #[precompile::view] + fn is_precompile(handle: &mut impl PrecompileHandle, address: Address) -> EvmResult { + // We consider the precompile set is optimized to do at most one storage read. + // In the case of moonbeam, the storage item that can be read is pallet_asset::Asset + // (TODO make it more generic, maybe add a const generic on PrecompileRegistry type) + // Storage item: Asset: + // Blake2_128(16) + AssetId(16) + AssetDetails((4 * AccountId(20)) + (3 * Balance(16)) + 15) + handle.record_db_read::(175)?; + is_precompile_or_fail::(address.0, handle.remaining_gas()) + } + + #[precompile::public("isActivePrecompile(address)")] + #[precompile::view] + fn is_active_precompile( + handle: &mut impl PrecompileHandle, + address: Address, + ) -> EvmResult { + // We consider the precompile set is optimized to do at most one storage read. + // In the case of moonbeam, the storage item that can be read is pallet_asset::Asset + // (TODO make it more generic, maybe add a const generic on PrecompileRegistry type) + // Storage item: Asset: + // Blake2_128(16) + AssetId(16) + AssetDetails((4 * AccountId(20)) + (3 * Balance(16)) + 15) + handle.record_db_read::(175)?; + match ::get() + .is_active_precompile(address.0, handle.remaining_gas()) + { + IsPrecompileResult::Answer { is_precompile, .. } => Ok(is_precompile), + IsPrecompileResult::OutOfGas => Err(PrecompileFailure::Error { + exit_status: ExitError::OutOfGas, + }), + } + } + + #[precompile::public("updateAccountCode(address)")] + fn update_account_code(handle: &mut impl PrecompileHandle, address: Address) -> EvmResult<()> { + // Prevent touching addresses that are not precompiles. + // + // We consider the precompile set is optimized to do at most one storage read. + // In the case of moonbeam, the storage item that can be read is pallet_asset::Asset + // (TODO make it more generic, maybe add a const generic on PrecompileRegistry type) + // Storage item: Asset: + // Blake2_128(16) + AssetId(16) + AssetDetails((4 * AccountId(20)) + (3 * Balance(16)) + 15) + handle.record_db_read::(175)?; + if !is_precompile_or_fail::(address.0, handle.remaining_gas())? { + return Err(revert("provided address is not a precompile")); + } + + // pallet_evm::create_account read storage item pallet_evm::AccountCodes + // + // AccountCodes: Blake2128(16) + H160(20) + Vec(5) + // We asume an existing precompile can hold at most 5 bytes worth of dummy code. + handle.record_db_read::(41)?; + pallet_evm::Pallet::::create_account(address.0, DUMMY_CODE.to_vec()); + + Ok(()) + } +} diff --git a/operator/precompiles/precompile-registry/src/mock.rs b/operator/precompiles/precompile-registry/src/mock.rs new file mode 100644 index 000000000..c7bf887f2 --- /dev/null +++ b/operator/precompiles/precompile-registry/src/mock.rs @@ -0,0 +1,198 @@ +// Copyright 2019-2025 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use super::*; + +use frame_support::traits::Everything; +use frame_support::{construct_runtime, pallet_prelude::*, parameter_types}; +use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, FrameSystemAccountProvider}; +use precompile_utils::{mock_account, precompile_set::*, testing::MockAccount}; +use sp_core::H256; +use sp_runtime::BuildStorage; +use sp_runtime::{ + traits::{BlakeTwo256, IdentityLookup}, + Perbill, +}; + +pub type AccountId = MockAccount; +pub type Balance = u128; + +type Block = frame_system::mocking::MockBlockU32; + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + Evm: pallet_evm, + Timestamp: pallet_timestamp, + } +); + +parameter_types! { + pub const BlockHashCount: u32 = 250; + pub const MaximumBlockWeight: Weight = Weight::from_parts(1024, 1); + pub const MaximumBlockLength: u32 = 2 * 1024; + pub const AvailableBlockRatio: Perbill = Perbill::one(); + pub const SS58Prefix: u8 = 42; +} + +impl frame_system::Config for Runtime { + type BaseCallFilter = Everything; + type DbWeight = (); + type RuntimeOrigin = RuntimeOrigin; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type RuntimeCall = RuntimeCall; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type BlockWeights = (); + type BlockLength = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); + type ExtensionsWeightInfo = (); +} + +parameter_types! { + pub const ExistentialDeposit: u128 = 0; +} + +impl pallet_balances::Config for Runtime { + type MaxReserves = (); + type ReserveIdentifier = [u8; 4]; + type MaxLocks = (); + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); + type DoneSlashHandler = (); +} + +mock_account!(Registry, |_| MockAccount::from_u64(1)); +mock_account!(Removed, |_| MockAccount::from_u64(2)); +mock_account!(SmartContract, |_| MockAccount::from_u64(3)); + +pub type Precompiles = PrecompileSetBuilder< + R, + ( + PrecompileAt, PrecompileRegistry>, + RemovedPrecompileAt>, + ), +>; + +pub type PCall = PrecompileRegistryCall; + +parameter_types! { + pub PrecompilesValue: Precompiles = Precompiles::new(); + pub const WeightPerGas: Weight = Weight::from_parts(1, 0); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = (); + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type CallOrigin = EnsureAddressRoot; + type WithdrawOrigin = EnsureAddressNever; + type AddressMapping = AccountId; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type Runner = pallet_evm::runner::stack::Runner; + type PrecompilesType = Precompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = (); + type OnChargeTransaction = (); + type BlockGasLimit = (); + type BlockHashMapping = pallet_evm::SubstrateBlockHashMapping; + type FindAuthor = (); + type OnCreate = (); + type GasLimitPovSizeRatio = (); + type GasLimitStorageGrowthRatio = (); + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; + type AccountProvider = FrameSystemAccountProvider; +} + +parameter_types! { + pub const MinimumPeriod: u64 = 5; +} +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +pub(crate) struct ExtBuilder { + // endowed accounts with balances + balances: Vec<(AccountId, Balance)>, +} + +impl Default for ExtBuilder { + fn default() -> ExtBuilder { + ExtBuilder { balances: vec![] } + } +} + +impl ExtBuilder { + pub(crate) fn with_balances(mut self, balances: Vec<(AccountId, Balance)>) -> Self { + self.balances = balances; + self + } + + pub(crate) fn build(self) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .expect("Frame system builds valid default genesis config"); + + pallet_balances::GenesisConfig:: { + balances: self.balances, + } + .assimilate_storage(&mut t) + .expect("Pallet balances storage can be assimilated"); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + pallet_evm::Pallet::::create_account( + SmartContract.into(), + b"SmartContract".to_vec(), + ); + }); + ext + } +} diff --git a/operator/precompiles/precompile-registry/src/tests.rs b/operator/precompiles/precompile-registry/src/tests.rs new file mode 100644 index 000000000..347beeeeb --- /dev/null +++ b/operator/precompiles/precompile-registry/src/tests.rs @@ -0,0 +1,202 @@ +// Copyright 2019-2025 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use crate::mock::{ + ExtBuilder, PCall, Precompiles, PrecompilesValue, Registry, Removed, Runtime, SmartContract, +}; +use precompile_utils::{prelude::*, testing::*}; +use sp_core::H160; + +fn precompiles() -> Precompiles { + PrecompilesValue::get() +} + +mod selectors { + use super::*; + + #[test] + fn selectors() { + assert!(PCall::is_precompile_selectors().contains(&0x446b450e)); + assert!(PCall::is_active_precompile_selectors().contains(&0x6f5e23cf)); + assert!(PCall::update_account_code_selectors().contains(&0x48ceb1b4)); + } + + #[test] + fn modifiers() { + ExtBuilder::default() + .with_balances(vec![(CryptoAlith.into(), 1000)]) + .build() + .execute_with(|| { + let mut tester = + PrecompilesModifierTester::new(precompiles(), CryptoAlith, Registry); + + tester.test_view_modifier(PCall::is_precompile_selectors()); + tester.test_view_modifier(PCall::is_active_precompile_selectors()); + tester.test_default_modifier(PCall::update_account_code_selectors()); + }); + } +} + +mod is_precompile { + + use super::*; + + fn call(target_address: impl Into, output: bool) { + ExtBuilder::default() + .with_balances(vec![(CryptoAlith.into(), 1000)]) + .build() + .execute_with(|| { + precompiles() + .prepare_test( + Alice, // can be anyone + Registry, + PCall::is_precompile { + address: Address(target_address.into()), + }, + ) + .expect_no_logs() + .execute_returns(output); + }); + } + + #[test] + fn works_on_precompile() { + call(Registry, true); + } + + #[test] + fn works_on_removed_precompile() { + call(Removed, true); + } + + #[test] + fn works_on_eoa() { + call(CryptoAlith, false); + } + + #[test] + fn works_on_smart_contract() { + call(SmartContract, false); + } +} + +mod is_active_precompile { + + use super::*; + + fn call(target_address: impl Into, output: bool) { + ExtBuilder::default() + .with_balances(vec![(CryptoAlith.into(), 1000)]) + .build() + .execute_with(|| { + precompiles() + .prepare_test( + Alice, // can be anyone + Registry, + PCall::is_active_precompile { + address: Address(target_address.into()), + }, + ) + .expect_no_logs() + .execute_returns(output); + }); + } + + #[test] + fn works_on_precompile() { + call(Registry, true); + } + + #[test] + fn works_on_removed_precompile() { + call(Removed, false); + } + + #[test] + fn works_on_eoa() { + call(CryptoAlith, false); + } + + #[test] + fn works_on_smart_contract() { + call(SmartContract, false); + } +} + +mod update_account_code { + use super::*; + + fn call(target_address: impl Into, expect_changes: bool) { + ExtBuilder::default() + .with_balances(vec![(CryptoAlith.into(), 1000)]) + .build() + .execute_with(|| { + let target_address = target_address.into(); + + let precompiles = precompiles(); + let tester = precompiles.prepare_test( + Alice, // can be anyone + Registry, + PCall::update_account_code { + address: Address(target_address), + }, + ); + + if expect_changes { + tester.execute_returns(()); + let new_code = pallet_evm::AccountCodes::::get(target_address); + assert_eq!(&new_code, &[0x60, 0x00, 0x60, 0x00, 0xfd]); + } else { + let current_code = pallet_evm::AccountCodes::::get(target_address); + + tester.execute_reverts(|revert| { + revert == b"provided address is not a precompile" + }); + + let new_code = pallet_evm::AccountCodes::::get(target_address); + assert_eq!(current_code, new_code); + } + }); + } + + #[test] + fn works_on_precompile() { + call(Registry, true); + } + + #[test] + fn works_on_removed_precompile() { + call(Removed, true); + } + + #[test] + fn works_on_eoa() { + call(CryptoAlith, false); + } + + #[test] + fn works_on_smart_contract() { + call(SmartContract, false); + } +} + +#[test] +fn test_solidity_interface() { + check_precompile_implements_solidity_interfaces( + &["PrecompileRegistry.sol"], + PCall::supports_selector, + ) +} diff --git a/operator/runtime/mainnet/Cargo.toml b/operator/runtime/mainnet/Cargo.toml index 68e251726..c097ef5e0 100644 --- a/operator/runtime/mainnet/Cargo.toml +++ b/operator/runtime/mainnet/Cargo.toml @@ -32,14 +32,20 @@ frame-try-runtime = { workspace = true, optional = true } hex = { workspace = true } hex-literal = { workspace = true } log = { workspace = true } +num_enum = { workspace = true } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } pallet-beefy = { workspace = true } pallet-beefy-mmr = { workspace = true } -pallet-ethereum = { workspace = true } -pallet-evm = { workspace = true } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } pallet-evm-chain-id = { workspace = true } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } pallet-external-validators = { workspace = true } pallet-external-validators-rewards = { workspace = true } pallet-external-validators-rewards-runtime-api = { workspace = true } @@ -63,6 +69,7 @@ pallet-transaction-payment = { workspace = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } +precompile-utils = { workspace = true } polkadot-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } scale-info = { workspace = true, features = ["derive", "serde"] } @@ -104,6 +111,9 @@ xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } +# DataHaven precompiles +pallet-evm-precompile-registry = { workspace = true } + [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true, default-features = true } @@ -113,6 +123,8 @@ frame-support-test = { workspace = true } sp-io = { workspace = true } sp-tracing = { workspace = true } +precompile-utils = { workspace = true, features = ["std", "testing"] } + # Snowbridge testing snowbridge-core = { workspace = true } snowbridge-pallet-system = { workspace = true } @@ -125,6 +137,7 @@ std = [ "codec/std", "datahaven-runtime-common/std", "fp-account/std", + "fp-evm/std", "frame-benchmarking?/std", "frame-executive/std", "frame-metadata-hash-extension/std", @@ -141,6 +154,7 @@ std = [ "pallet-ethereum/std", "pallet-evm-chain-id/std", "pallet-evm/std", + "pallet-evm-precompile-registry/std", "pallet-external-validators/std", "pallet-external-validators-rewards/std", "pallet-external-validators-rewards-runtime-api/std", @@ -162,6 +176,7 @@ std = [ "pallet-transaction-payment/std", "pallet-treasury/std", "pallet-utility/std", + "precompile-utils/std", "polkadot-primitives/std", "polkadot-runtime-common/std", "scale-info/std", diff --git a/operator/runtime/mainnet/src/configs/mod.rs b/operator/runtime/mainnet/src/configs/mod.rs index 6b3d7becc..71245f5f6 100644 --- a/operator/runtime/mainnet/src/configs/mod.rs +++ b/operator/runtime/mainnet/src/configs/mod.rs @@ -26,13 +26,14 @@ pub mod runtime_params; use super::{ - currency::*, AccountId, Babe, Balance, Balances, BeefyMmrLeaf, Block, BlockNumber, - EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, ExistentialDeposit, - ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, MessageQueue, Nonce, - Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, Runtime, RuntimeCall, - RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, - SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, EXTRINSIC_BASE_WEIGHT, - MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, VERSION, + currency::*, precompiles::DataHavenPrecompiles, AccountId, Babe, Balance, Balances, + BeefyMmrLeaf, Block, BlockNumber, EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, + ExistentialDeposit, ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, + MessageQueue, Nonce, Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, + Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, + RuntimeTask, Session, SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, + EXTRINSIC_BASE_WEIGHT, MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, + SLOT_DURATION, VERSION, }; use codec::{Decode, Encode}; use datahaven_runtime_common::{ @@ -755,7 +756,7 @@ datahaven_runtime_common::impl_on_charge_evm_transaction!(); parameter_types! { pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); - // pub PrecompilesValue: TemplatePrecompiles = TemplatePrecompiles::<_>::new(); + pub PrecompilesValue: DataHavenPrecompiles = DataHavenPrecompiles::<_>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); pub SuicideQuickClearLimit: u32 = 0; /// The amount of gas per pov. A ratio of 16 if we convert ref_time to gas and we compare @@ -781,8 +782,8 @@ impl pallet_evm::Config for Runtime { type AddressMapping = IdentityAddressMapping; type Currency = Balances; type RuntimeEvent = RuntimeEvent; - type PrecompilesType = (); - type PrecompilesValue = (); + type PrecompilesType = DataHavenPrecompiles; + type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; type Runner = pallet_evm::runner::stack::Runner; diff --git a/operator/runtime/mainnet/src/lib.rs b/operator/runtime/mainnet/src/lib.rs index 7f78cb76c..07879d422 100644 --- a/operator/runtime/mainnet/src/lib.rs +++ b/operator/runtime/mainnet/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); #[cfg(feature = "runtime-benchmarks")] mod benchmarks; pub mod configs; +pub mod precompiles; pub mod weights; use alloc::{borrow::Cow, vec::Vec}; diff --git a/operator/runtime/mainnet/src/precompiles.rs b/operator/runtime/mainnet/src/precompiles.rs new file mode 100644 index 000000000..199b82fab --- /dev/null +++ b/operator/runtime/mainnet/src/precompiles.rs @@ -0,0 +1,67 @@ +// Copyright 2019-2025 The DataHaven Team +// This file is part of DataHaven. + +// DataHaven 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. + +// DataHaven 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 DataHaven. If not, see . + +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use precompile_utils::precompile_set::*; + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +/// EVM precompiles available in the DataHaven Mainnet runtime. +#[precompile_utils::precompile_name_from_address] +type DataHavenPrecompilesAt = ( + // 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-DataHaven specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + // DataHaven specific precompiles: + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, +); + +/// The PrecompileSet installed in the DataHaven runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither DataHaven specific +/// 2048-4095 DataHaven specific precompiles +pub type DataHavenPrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), DataHavenPrecompilesAt>, + ), +>; diff --git a/operator/runtime/stagenet/Cargo.toml b/operator/runtime/stagenet/Cargo.toml index ce42b2b6e..bb417bcc4 100644 --- a/operator/runtime/stagenet/Cargo.toml +++ b/operator/runtime/stagenet/Cargo.toml @@ -33,14 +33,20 @@ hex = { workspace = true } hex-literal = { workspace = true } log = { workspace = true } num-bigint = { workspace = true, optional = true } +num_enum = { workspace = true } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } pallet-balances = { workspace = true, features = ["insecure_zero_ed"]} pallet-beefy = { workspace = true } pallet-beefy-mmr = { workspace = true } -pallet-ethereum = { workspace = true } -pallet-evm = { workspace = true } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } pallet-evm-chain-id = { workspace = true } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } pallet-external-validators = { workspace = true } pallet-external-validators-rewards = { workspace = true } pallet-external-validators-rewards-runtime-api = { workspace = true } @@ -64,6 +70,7 @@ pallet-transaction-payment = { workspace = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } +precompile-utils = { workspace = true } polkadot-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } scale-info = { workspace = true, features = ["derive", "serde"] } @@ -106,6 +113,9 @@ xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } +# DataHaven precompiles +pallet-evm-precompile-registry = { workspace = true } + # StorageHub pallet-bucket-nfts = { workspace = true, optional = true } pallet-nfts = { workspace = true, optional = true } @@ -137,6 +147,8 @@ frame-support-test = { workspace = true } sp-io = { workspace = true } sp-tracing = { workspace = true } +precompile-utils = { workspace = true, features = ["std", "testing"] } + # Snowbridge testing snowbridge-core = { workspace = true } snowbridge-pallet-system = { workspace = true } @@ -172,6 +184,7 @@ std = [ "codec/std", "datahaven-runtime-common/std", "fp-account/std", + "fp-evm/std", "frame-benchmarking?/std", "frame-executive/std", "frame-metadata-hash-extension/std", @@ -188,6 +201,7 @@ std = [ "pallet-ethereum/std", "pallet-evm-chain-id/std", "pallet-evm/std", + "pallet-evm-precompile-registry/std", "pallet-external-validators/std", "pallet-external-validators-rewards/std", "pallet-external-validators-rewards-runtime-api/std", @@ -209,6 +223,7 @@ std = [ "pallet-transaction-payment/std", "pallet-treasury/std", "pallet-utility/std", + "precompile-utils/std", "polkadot-primitives/std", "polkadot-runtime-common/std", "scale-info/std", diff --git a/operator/runtime/stagenet/src/configs/mod.rs b/operator/runtime/stagenet/src/configs/mod.rs index c810f4fde..37a48cd08 100644 --- a/operator/runtime/stagenet/src/configs/mod.rs +++ b/operator/runtime/stagenet/src/configs/mod.rs @@ -29,13 +29,14 @@ mod storagehub; pub mod runtime_params; use super::{ - currency::*, AccountId, Babe, Balance, Balances, BeefyMmrLeaf, Block, BlockNumber, - EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, ExistentialDeposit, - ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, MessageQueue, Nonce, - Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, Runtime, RuntimeCall, - RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, - SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, EXTRINSIC_BASE_WEIGHT, - MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, VERSION, + currency::*, precompiles::DataHavenPrecompiles, AccountId, Babe, Balance, Balances, + BeefyMmrLeaf, Block, BlockNumber, EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, + ExistentialDeposit, ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, + MessageQueue, Nonce, Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, + Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, + RuntimeTask, Session, SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, + EXTRINSIC_BASE_WEIGHT, MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, + SLOT_DURATION, VERSION, }; use codec::{Decode, Encode}; use datahaven_runtime_common::{ @@ -757,7 +758,7 @@ datahaven_runtime_common::impl_on_charge_evm_transaction!(); parameter_types! { pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); - // pub PrecompilesValue: TemplatePrecompiles = TemplatePrecompiles::<_>::new(); + pub PrecompilesValue: DataHavenPrecompiles = DataHavenPrecompiles::<_>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); pub SuicideQuickClearLimit: u32 = 0; /// The amount of gas per pov. A ratio of 16 if we convert ref_time to gas and we compare @@ -783,8 +784,8 @@ impl pallet_evm::Config for Runtime { type AddressMapping = IdentityAddressMapping; type Currency = Balances; type RuntimeEvent = RuntimeEvent; - type PrecompilesType = (); - type PrecompilesValue = (); + type PrecompilesType = DataHavenPrecompiles; + type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; type Runner = pallet_evm::runner::stack::Runner; diff --git a/operator/runtime/stagenet/src/lib.rs b/operator/runtime/stagenet/src/lib.rs index 0335770e9..f46eeb025 100644 --- a/operator/runtime/stagenet/src/lib.rs +++ b/operator/runtime/stagenet/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); #[cfg(feature = "runtime-benchmarks")] mod benchmarks; pub mod configs; +pub mod precompiles; pub mod weights; use alloc::{borrow::Cow, vec::Vec}; diff --git a/operator/runtime/stagenet/src/precompiles.rs b/operator/runtime/stagenet/src/precompiles.rs new file mode 100644 index 000000000..15081a31f --- /dev/null +++ b/operator/runtime/stagenet/src/precompiles.rs @@ -0,0 +1,67 @@ +// Copyright 2019-2025 The DataHaven Team +// This file is part of DataHaven. + +// DataHaven 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. + +// DataHaven 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 DataHaven. If not, see . + +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use precompile_utils::precompile_set::*; + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +/// EVM precompiles available in the DataHaven Stagenet runtime. +#[precompile_utils::precompile_name_from_address] +type DataHavenPrecompilesAt = ( + // 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-DataHaven specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + // DataHaven specific precompiles: + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, +); + +/// The PrecompileSet installed in the DataHaven runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither DataHaven specific +/// 2048-4095 DataHaven specific precompiles +pub type DataHavenPrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), DataHavenPrecompilesAt>, + ), +>; diff --git a/operator/runtime/testnet/Cargo.toml b/operator/runtime/testnet/Cargo.toml index 29d9281ea..b0e2ad830 100644 --- a/operator/runtime/testnet/Cargo.toml +++ b/operator/runtime/testnet/Cargo.toml @@ -32,15 +32,21 @@ frame-try-runtime = { workspace = true, optional = true } hex = { workspace = true } hex-literal = { workspace = true } log = { workspace = true } +num_enum = { workspace = true } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } pallet-beefy = { workspace = true } pallet-beefy-mmr = { workspace = true } pallet-datahaven-native-transfer = { workspace = true } -pallet-ethereum = { workspace = true } -pallet-evm = { workspace = true } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } pallet-evm-chain-id = { workspace = true } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } pallet-external-validators = { workspace = true } pallet-external-validators-rewards = { workspace = true } pallet-external-validators-rewards-runtime-api = { workspace = true } @@ -63,6 +69,7 @@ pallet-transaction-payment = { workspace = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } +precompile-utils = { workspace = true } polkadot-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } scale-info = { workspace = true, features = ["derive", "serde"] } @@ -104,6 +111,9 @@ xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } +# DataHaven precompiles +pallet-evm-precompile-registry = { workspace = true } + [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true, default-features = true } @@ -113,6 +123,8 @@ frame-support-test = { workspace = true } sp-io = { workspace = true } sp-tracing = { workspace = true } +precompile-utils = { workspace = true, features = ["std", "testing"] } + # Snowbridge testing snowbridge-core = { workspace = true } snowbridge-outbound-queue-primitives = { workspace = true } @@ -125,6 +137,7 @@ std = [ "codec/std", "datahaven-runtime-common/std", "fp-account/std", + "fp-evm/std", "frame-benchmarking?/std", "frame-executive/std", "frame-metadata-hash-extension/std", @@ -141,6 +154,7 @@ std = [ "pallet-ethereum/std", "pallet-evm-chain-id/std", "pallet-evm/std", + "pallet-evm-precompile-registry/std", "pallet-grandpa/std", "pallet-identity/std", "pallet-im-online/std", @@ -159,6 +173,7 @@ std = [ "pallet-transaction-payment/std", "pallet-treasury/std", "pallet-utility/std", + "precompile-utils/std", "polkadot-primitives/std", "polkadot-runtime-common/std", "scale-info/std", diff --git a/operator/runtime/testnet/src/configs/mod.rs b/operator/runtime/testnet/src/configs/mod.rs index 0bc3b45c5..8a4dbcd2f 100644 --- a/operator/runtime/testnet/src/configs/mod.rs +++ b/operator/runtime/testnet/src/configs/mod.rs @@ -26,13 +26,14 @@ pub mod runtime_params; use super::{ - currency::*, AccountId, Babe, Balance, Balances, BeefyMmrLeaf, Block, BlockNumber, - EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, ExistentialDeposit, - ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, MessageQueue, Nonce, - Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, Runtime, RuntimeCall, - RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, - SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, EXTRINSIC_BASE_WEIGHT, - MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, VERSION, + currency::*, precompiles::DataHavenPrecompiles, AccountId, Babe, Balance, Balances, + BeefyMmrLeaf, Block, BlockNumber, EthereumBeaconClient, EthereumOutboundQueueV2, EvmChainId, + ExistentialDeposit, ExternalValidators, ExternalValidatorsRewards, Hash, Historical, ImOnline, + MessageQueue, Nonce, Offences, OriginCaller, OutboundCommitmentStore, PalletInfo, Preimage, + Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, + RuntimeTask, Session, SessionKeys, Signature, System, Timestamp, Treasury, BLOCK_HASH_COUNT, + EXTRINSIC_BASE_WEIGHT, MAXIMUM_BLOCK_WEIGHT, NORMAL_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, + SLOT_DURATION, VERSION, }; use codec::{Decode, Encode}; use datahaven_runtime_common::{ @@ -755,7 +756,7 @@ datahaven_runtime_common::impl_on_charge_evm_transaction!(); parameter_types! { pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); - // pub PrecompilesValue: TemplatePrecompiles = TemplatePrecompiles::<_>::new(); + pub PrecompilesValue: DataHavenPrecompiles = DataHavenPrecompiles::<_>::new(); pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); pub SuicideQuickClearLimit: u32 = 0; /// The amount of gas per pov. A ratio of 16 if we convert ref_time to gas and we compare @@ -781,8 +782,8 @@ impl pallet_evm::Config for Runtime { type AddressMapping = IdentityAddressMapping; type Currency = Balances; type RuntimeEvent = RuntimeEvent; - type PrecompilesType = (); - type PrecompilesValue = (); + type PrecompilesType = DataHavenPrecompiles; + type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; type Runner = pallet_evm::runner::stack::Runner; diff --git a/operator/runtime/testnet/src/lib.rs b/operator/runtime/testnet/src/lib.rs index 080692196..6175b2d49 100644 --- a/operator/runtime/testnet/src/lib.rs +++ b/operator/runtime/testnet/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); #[cfg(feature = "runtime-benchmarks")] mod benchmarks; pub mod configs; +pub mod precompiles; pub mod weights; use alloc::{borrow::Cow, vec::Vec}; diff --git a/operator/runtime/testnet/src/precompiles.rs b/operator/runtime/testnet/src/precompiles.rs new file mode 100644 index 000000000..6f453657c --- /dev/null +++ b/operator/runtime/testnet/src/precompiles.rs @@ -0,0 +1,67 @@ +// Copyright 2019-2025 The DataHaven Team +// This file is part of DataHaven. + +// DataHaven 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. + +// DataHaven 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 DataHaven. If not, see . + +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use precompile_utils::precompile_set::*; + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +/// EVM precompiles available in the DataHaven Testnet runtime. +#[precompile_utils::precompile_name_from_address] +type DataHavenPrecompilesAt = ( + // 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-DataHaven specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, + // DataHaven specific precompiles: + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, +); + +/// The PrecompileSet installed in the DataHaven runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither DataHaven specific +/// 2048-4095 DataHaven specific precompiles +pub type DataHavenPrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), DataHavenPrecompilesAt>, + ), +>; From 873a63eed44a341b046b417259a11f17b96ea446 Mon Sep 17 00:00:00 2001 From: Steve Degosserie <723552+stiiifff@users.noreply.github.com> Date: Tue, 2 Sep 2025 14:22:20 +0200 Subject: [PATCH 2/5] fix: Use all self-hosted runners for now (#144) --- .github/workflows/DOCKER-PROD.yml | 2 +- .github/workflows/task-build-operator.yml | 2 +- .github/workflows/task-rust-lint.yml | 6 +++--- .github/workflows/task-rust-tests.yml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/DOCKER-PROD.yml b/.github/workflows/DOCKER-PROD.yml index fd07c64f4..eca5614ba 100644 --- a/.github/workflows/DOCKER-PROD.yml +++ b/.github/workflows/DOCKER-PROD.yml @@ -23,7 +23,7 @@ on: jobs: build-test-push: runs-on: - group: DH-runners + labels: bare-metal outputs: image-tag: ${{ steps.last_tag_extractor.outputs.last_tag_value }} defaults: diff --git a/.github/workflows/task-build-operator.yml b/.github/workflows/task-build-operator.yml index 6ca71e681..8a7c13437 100644 --- a/.github/workflows/task-build-operator.yml +++ b/.github/workflows/task-build-operator.yml @@ -16,7 +16,7 @@ jobs: binary-hash: ${{ steps.hash-binary.outputs.datahaven-node-hash }} name: Build operator binary runs-on: - group: DH-runners + labels: bare-metal env: RUSTC_WRAPPER: "sccache" CARGO_INCREMENTAL: "0" diff --git a/.github/workflows/task-rust-lint.yml b/.github/workflows/task-rust-lint.yml index 6b9f79234..052b6ce6b 100644 --- a/.github/workflows/task-rust-lint.yml +++ b/.github/workflows/task-rust-lint.yml @@ -25,7 +25,7 @@ jobs: cargo-fmt: name: "Check format with rustfmt" runs-on: - group: DH-runners + labels: bare-metal defaults: run: working-directory: ${{ env.WORKING_DIR }} @@ -44,7 +44,7 @@ jobs: check-rust-lint: name: "Check lint with clippy" runs-on: - group: DH-runners + labels: bare-metal defaults: run: working-directory: ${{ env.WORKING_DIR }} @@ -62,7 +62,7 @@ jobs: check-cargo-sort: name: "Check Cargo sort" runs-on: - group: DH-runners + labels: bare-metal defaults: run: diff --git a/.github/workflows/task-rust-tests.yml b/.github/workflows/task-rust-tests.yml index 8e2adce26..6df559f36 100644 --- a/.github/workflows/task-rust-tests.yml +++ b/.github/workflows/task-rust-tests.yml @@ -17,7 +17,7 @@ jobs: prepare: name: Prepare artifacts for Rust tests runs-on: - group: DH-runners + labels: bare-metal env: RUSTC_WRAPPER: "sccache" CARGO_INCREMENTAL: "0" @@ -57,7 +57,7 @@ jobs: name: Run all Operator Rust tests (/w partitioning) needs: [prepare] runs-on: - group: DH-runners + labels: bare-metal strategy: fail-fast: false matrix: @@ -91,7 +91,7 @@ jobs: name: Check tests were successful needs: [all-rust-tests] runs-on: - group: DH-runners + labels: bare-metal steps: - name: Cleanup test artifacts uses: geekyeggo/delete-artifact@v5 From 59a642460b8ad745dad9722ea83f21ec95c71f5c Mon Sep 17 00:00:00 2001 From: undercover-cactus Date: Tue, 2 Sep 2025 15:05:36 +0200 Subject: [PATCH 3/5] feat: add storagehub pallets to all the runtimes (#133) This PR add the storagehub pallets to the `testnet` and `mainnet` runtime. The storage hub pallets are only build with the runtime if the `storage-hub` feature is activated. It is also add minor fixes to the `stagenet` runtime (fix wrong path dependencies, index collision, etc...). --------- Co-authored-by: Steve Degosserie <723552+stiiifff@users.noreply.github.com> --- operator/Cargo.lock | 50 +- operator/runtime/mainnet/Cargo.toml | 74 +++ operator/runtime/mainnet/src/configs/mod.rs | 2 + .../mainnet/src/configs/runtime_params.rs | 318 +++++++++ .../mainnet/src/configs/storagehub/mod.rs | 610 ++++++++++++++++++ operator/runtime/mainnet/src/lib.rs | 207 +++++- .../stagenet/src/configs/runtime_params.rs | 71 +- operator/runtime/stagenet/src/lib.rs | 3 + operator/runtime/testnet/Cargo.toml | 74 +++ operator/runtime/testnet/src/configs/mod.rs | 2 + .../testnet/src/configs/runtime_params.rs | 318 +++++++++ .../testnet/src/configs/storagehub/mod.rs | 610 ++++++++++++++++++ operator/runtime/testnet/src/lib.rs | 207 +++++- 13 files changed, 2509 insertions(+), 37 deletions(-) create mode 100644 operator/runtime/mainnet/src/configs/storagehub/mod.rs create mode 100644 operator/runtime/testnet/src/configs/storagehub/mod.rs diff --git a/operator/Cargo.lock b/operator/Cargo.lock index 537b5ce63..8ee67f51c 100644 --- a/operator/Cargo.lock +++ b/operator/Cargo.lock @@ -2381,12 +2381,14 @@ dependencies = [ "hex", "hex-literal 0.3.4", "log", - "num_enum", + "num-bigint", "pallet-authorship", "pallet-babe", "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-beefy", "pallet-beefy-mmr", + "pallet-bucket-nfts", + "pallet-cr-randomness", "pallet-datahaven-native-transfer", "pallet-ethereum", "pallet-evm", @@ -2400,19 +2402,29 @@ dependencies = [ "pallet-external-validators", "pallet-external-validators-rewards", "pallet-external-validators-rewards-runtime-api", + "pallet-file-system", + "pallet-file-system-runtime-api", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-message-queue", "pallet-mmr", "pallet-multisig", + "pallet-nfts", "pallet-offences", "pallet-outbound-commitment-store", "pallet-parameters", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", "pallet-preimage", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", "pallet-proxy", + "pallet-randomness", "pallet-scheduler", "pallet-session", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -2425,6 +2437,14 @@ dependencies = [ "precompile-utils", "scale-info", "serde_json", + "shp-constants", + "shp-data-price-updater", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-forest-verifier", + "shp-traits", + "shp-treasury-funding", + "smallvec", "snowbridge-beacon-primitives 0.2.0", "snowbridge-core 0.2.0", "snowbridge-inbound-queue-primitives", @@ -2456,7 +2476,8 @@ dependencies = [ "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2712,12 +2733,14 @@ dependencies = [ "hex", "hex-literal 0.3.4", "log", - "num_enum", + "num-bigint", "pallet-authorship", "pallet-babe", "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "pallet-beefy", "pallet-beefy-mmr", + "pallet-bucket-nfts", + "pallet-cr-randomness", "pallet-datahaven-native-transfer", "pallet-ethereum", "pallet-evm", @@ -2731,19 +2754,29 @@ dependencies = [ "pallet-external-validators", "pallet-external-validators-rewards", "pallet-external-validators-rewards-runtime-api", + "pallet-file-system", + "pallet-file-system-runtime-api", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-message-queue", "pallet-mmr", "pallet-multisig", + "pallet-nfts", "pallet-offences", "pallet-outbound-commitment-store", "pallet-parameters", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", "pallet-preimage", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", "pallet-proxy", + "pallet-randomness", "pallet-scheduler", "pallet-session", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -2756,6 +2789,14 @@ dependencies = [ "precompile-utils", "scale-info", "serde_json", + "shp-constants", + "shp-data-price-updater", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-forest-verifier", + "shp-traits", + "shp-treasury-funding", + "smallvec", "snowbridge-beacon-primitives 0.2.0", "snowbridge-core 0.2.0", "snowbridge-inbound-queue-primitives", @@ -2787,7 +2828,8 @@ dependencies = [ "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", + "sp-trie", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", diff --git a/operator/runtime/mainnet/Cargo.toml b/operator/runtime/mainnet/Cargo.toml index c097ef5e0..4f57d2eac 100644 --- a/operator/runtime/mainnet/Cargo.toml +++ b/operator/runtime/mainnet/Cargo.toml @@ -32,6 +32,7 @@ frame-try-runtime = { workspace = true, optional = true } hex = { workspace = true } hex-literal = { workspace = true } log = { workspace = true } +num-bigint = { workspace = true, optional = true } num_enum = { workspace = true } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } @@ -76,6 +77,7 @@ scale-info = { workspace = true, features = ["derive", "serde"] } serde_json = { workspace = true, default-features = false, features = [ "alloc", ] } +smallvec = { workspace = true } snowbridge-beacon-primitives = { workspace = true } snowbridge-core = { workspace = true } snowbridge-inbound-queue-primitives = { workspace = true } @@ -114,6 +116,28 @@ xcm-executor = { workspace = true } # DataHaven precompiles pallet-evm-precompile-registry = { workspace = true } +# StorageHub +pallet-bucket-nfts = { workspace = true, optional = true } +pallet-nfts = { workspace = true, optional = true } +pallet-cr-randomness = { workspace = true, optional = true } +pallet-file-system = { workspace = true, optional = true } +pallet-file-system-runtime-api = { workspace = true, optional = true } +pallet-payment-streams = { workspace = true, optional = true } +pallet-payment-streams-runtime-api = { workspace = true, optional = true } +pallet-proofs-dealer = { workspace = true, optional = true } +pallet-proofs-dealer-runtime-api = { workspace = true, optional = true } +pallet-randomness = { workspace = true, optional = true } +pallet-storage-providers = { workspace = true, optional = true } +pallet-storage-providers-runtime-api = { workspace = true, optional = true } +shp-constants = { workspace = true, optional = true } +shp-file-metadata = { workspace = true, optional = true } +shp-traits = { workspace = true, optional = true } +shp-treasury-funding = { workspace = true, optional = true } +shp-forest-verifier = { workspace = true, optional = true } +shp-file-key-verifier = { workspace = true, optional = true } +shp-data-price-updater = { workspace = true, optional = true } +sp-trie = { workspace = true, optional = true } + [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true, default-features = true } @@ -132,6 +156,29 @@ snowbridge-pallet-system-v2 = { workspace = true } snowbridge-outbound-queue-primitives = { workspace = true } [features] +storage-hub = [ + "dep:num-bigint", + "dep:pallet-bucket-nfts", + "dep:pallet-nfts", + "dep:pallet-cr-randomness", + "dep:pallet-file-system", + "dep:pallet-file-system-runtime-api", + "dep:pallet-payment-streams", + "dep:pallet-payment-streams-runtime-api", + "dep:pallet-proofs-dealer", + "dep:pallet-proofs-dealer-runtime-api", + "dep:pallet-randomness", + "dep:pallet-storage-providers", + "dep:pallet-storage-providers-runtime-api", + "dep:shp-constants", + "dep:shp-file-metadata", + "dep:shp-traits", + "dep:shp-treasury-funding", + "dep:shp-forest-verifier", + "dep:shp-file-key-verifier", + "dep:shp-data-price-updater", + "dep:sp-trie" + ] default = ["std"] std = [ "codec/std", @@ -214,6 +261,33 @@ std = [ "substrate-wasm-builder", "pallet-outbound-commitment-store/std", "pallet-datahaven-native-transfer/std", + + # StorageHub + "pallet-authorship/std", + "pallet-balances/std", + "pallet-bucket-nfts/std", + "pallet-nfts/std", + "pallet-cr-randomness/std", + "pallet-file-system/std", + "pallet-file-system-runtime-api/std", + "pallet-payment-streams/std", + "pallet-payment-streams-runtime-api/std", + "pallet-proofs-dealer/std", + "pallet-proofs-dealer-runtime-api/std", + "pallet-randomness/std", + "pallet-session/std", + "pallet-storage-providers/std", + "pallet-storage-providers-runtime-api/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "shp-constants/std", + "shp-file-metadata/std", + "shp-forest-verifier/std", + "shp-traits/std", + "shp-treasury-funding/std", + "shp-file-key-verifier/std", ] runtime-benchmarks = [ diff --git a/operator/runtime/mainnet/src/configs/mod.rs b/operator/runtime/mainnet/src/configs/mod.rs index 71245f5f6..4b92c89f4 100644 --- a/operator/runtime/mainnet/src/configs/mod.rs +++ b/operator/runtime/mainnet/src/configs/mod.rs @@ -22,6 +22,8 @@ // OTHER DEALINGS IN THE SOFTWARE. // // For more information, please refer to +#[cfg(feature = "storage-hub")] +mod storagehub; pub mod runtime_params; diff --git a/operator/runtime/mainnet/src/configs/runtime_params.rs b/operator/runtime/mainnet/src/configs/runtime_params.rs index 9672fac94..48e197aba 100644 --- a/operator/runtime/mainnet/src/configs/runtime_params.rs +++ b/operator/runtime/mainnet/src/configs/runtime_params.rs @@ -5,6 +5,16 @@ use sp_core::{ConstU32, H160, H256}; use sp_runtime::{BoundedVec, Perbill}; use sp_std::vec; +#[cfg(feature = "storage-hub")] +use crate::currency::{GIGAWEI, HAVE}; + +#[cfg(feature = "storage-hub")] +use crate::configs::storagehub::{ChallengeTicksTolerance, ReplicationTargetType, SpMinDeposit}; + +#[cfg(feature = "storage-hub")] +use datahaven_runtime_common::{Balance, BlockNumber}; + +#[cfg(not(feature = "storage-hub"))] #[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] pub mod dynamic_params { use super::*; @@ -50,6 +60,314 @@ pub mod dynamic_params { } } +#[cfg(feature = "storage-hub")] +#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +pub mod dynamic_params { + use super::*; + #[dynamic_pallet_params] + #[codec(index = 0)] + pub mod runtime_config { + + use super::*; + + #[codec(index = 0)] + #[allow(non_upper_case_globals)] + /// Set the initial address of the Snowbridge Gateway contract on Ethereum. + /// The fact that this is a parameter means that we can set it initially to the zero address, + /// and then change it later via governance, to the actual address of the deployed contract. + pub static EthereumGatewayAddress: H160 = H160::repeat_byte(0x0); + + #[codec(index = 1)] + #[allow(non_upper_case_globals)] + /// Set the initial address of the Rewards Registry contract on Ethereum. + /// The fact that this is a parameter means that we can set it initially to the zero address, + /// and then change it later via governance, to the actual address of the deployed contract. + pub static RewardsRegistryAddress: H160 = H160::repeat_byte(0x0); + + #[codec(index = 2)] + #[allow(non_upper_case_globals)] + /// The Selector is the first 4 bytes of the keccak256 hash of the function signature("updateRewardsMerkleRoot(bytes32)") + pub static RewardsUpdateSelector: BoundedVec> = + BoundedVec::truncate_from(vec![0xdc, 0x3d, 0x04, 0xec]); + + #[codec(index = 3)] + #[allow(non_upper_case_globals)] + /// The RewardsAgentOrigin is the hash of the string "external_validators_rewards" + /// TODO: Decide which agent origin we want to use. Currently for testing it's the zero hash + pub static RewardsAgentOrigin: H256 = H256::from_slice(&hex!( + "c505dfb2df107d106d08bd0f1a0acd10052ca9aa078629a4ccfd0c90c6e69b65" + )); + + // Proportion of fees allocated to the Treasury (remainder are burned). + // e.g. 20% to the treasury, 80% burned. + #[codec(index = 4)] + #[allow(non_upper_case_globals)] + pub static FeesTreasuryProportion: Perbill = Perbill::from_percent(20); + + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ + + #[codec(index = 5)] + #[allow(non_upper_case_globals)] + /// 20 HAVEs + pub static SlashAmountPerMaxFileSize: Balance = 20 * HAVE; + + #[codec(index = 6)] + #[allow(non_upper_case_globals)] + /// 10k HAVEs * [`MinChallengePeriod`] = 10k HAVEs * 30 = 300k HAVEs + /// + /// This can be interpreted as "a Provider with 10k HAVEs of stake would get the minimum challenge period". + pub static StakeToChallengePeriod: Balance = + 10_000 * HAVE * Into::::into(MinChallengePeriod::get()); + + #[codec(index = 7)] + #[allow(non_upper_case_globals)] + /// The [`CheckpointChallengePeriod`] is set to be equal to the longest possible challenge period + /// (i.e. the [`StakeToChallengePeriod`] divided by the [`SpMinDeposit`]). + /// + // 300k HAVEs / 100 HAVEs + 50 + 1 = ~3k ticks (i.e. ~5 hours with 6 seconds per tick) + pub static CheckpointChallengePeriod: BlockNumber = (StakeToChallengePeriod::get() + / SpMinDeposit::get()).saturating_add(ChallengeTicksTolerance::get() as u128).saturating_add(1) + .try_into() + .expect( + "StakeToChallengePeriod / SpMinDeposit should be a number of ticks that can fit in BlockNumber numerical type", + ); + + #[codec(index = 8)] + #[allow(non_upper_case_globals)] + /// 30 ticks, or 3 minutes with 6 seconds per tick. + pub static MinChallengePeriod: BlockNumber = 30; + + #[codec(index = 9)] + #[allow(non_upper_case_globals)] + /// Price decreases when system utilisation is below 30%. + pub static SystemUtilisationLowerThresholdPercentage: Perbill = Perbill::from_percent(30); + + #[codec(index = 10)] + #[allow(non_upper_case_globals)] + /// Price increases when system utilisation is above 95%. + pub static SystemUtilisationUpperThresholdPercentage: Perbill = Perbill::from_percent(95); + + #[codec(index = 11)] + #[allow(non_upper_case_globals)] + /// 50 [`GIGAWEI`]s is the price per GB of data, per tick. + /// + /// With 6 seconds per tick, this means that over a month, the price of 1 GB is: + /// 50e-9 [`HAVE`]s * 10 ticks/min * 60 min/h * 24 h/day * 30 days/month = 21.6e-3 [`HAVE`]s + pub static MostlyStablePrice: Balance = 50 * GIGAWEI; + + #[codec(index = 12)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] * 10 = 500 [`GIGAWEI`]s + pub static MaxPrice: Balance = MostlyStablePrice::get() * 10; + + #[codec(index = 13)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] / 5 = 10 [`GIGAWEI`]s + pub static MinPrice: Balance = MostlyStablePrice::get() / 5; + + #[codec(index = 14)] + #[allow(non_upper_case_globals)] + /// u = [`UpperExponentFactor`] + /// system_utilisation = 1 + /// + /// [`MaxPrice`] = [`MostlyStablePrice`] + u * e ^ ( 1 - [`SystemUtilisationUpperThresholdPercentage`] ) + /// + /// 500 = 50 + u * (e ^ (1 - 0.95) - 1) + /// u = (500 - 50) / (e ^ (1 - 0.95) - 1) ≈ 8777 + pub static UpperExponentFactor: u32 = 8777; + + #[codec(index = 15)] + #[allow(non_upper_case_globals)] + /// l = [`LowerExponentFactor`] + /// system_utilisation = 0 + /// + /// [`MinPrice`] = [`MostlyStablePrice`] - u * e ^ ( [`SystemUtilisationLowerThresholdPercentage`] - 0 ) + /// + /// 10 = 50 - l * (e ^ (0.3 - 0) - 1) + /// l = (50 - 10) / (e ^ (0.3 - 0) - 1) ≈ 114 + pub static LowerExponentFactor: u32 = 114; + + #[codec(index = 16)] + #[allow(non_upper_case_globals)] + /// 0-size bucket fixed rate payment stream representing the price for 1 GB of data. + /// + /// Base rate for a new fixed payment stream established between an MSP and a user. + pub static ZeroSizeBucketFixedRate: Balance = 50 * GIGAWEI; + + #[codec(index = 17)] + #[allow(non_upper_case_globals)] + /// Ideal utilisation rate of the system + pub static IdealUtilisationRate: Perbill = Perbill::from_percent(85); + + #[codec(index = 18)] + #[allow(non_upper_case_globals)] + /// Decay rate of the power of two function that determines the percentage of funds that go to + /// the treasury for utilisation rates greater than the ideal. + pub static DecayRate: Perbill = Perbill::from_percent(5); + + #[codec(index = 19)] + #[allow(non_upper_case_globals)] + /// The minimum treasury cut that can be taken from the amount charged from a payment stream. + pub static MinimumTreasuryCut: Perbill = Perbill::from_percent(1); + + #[codec(index = 20)] + #[allow(non_upper_case_globals)] + /// The maximum treasury cut that can be taken from the amount charged from a payment stream. + pub static MaximumTreasuryCut: Perbill = Perbill::from_percent(5); + + #[codec(index = 21)] + #[allow(non_upper_case_globals)] + /// The penalty a BSP must pay when they forcefully stop storing a file. + /// We set this to be half of the `SlashAmountPerMaxFileSize` with the rationale that + /// for a BSP that has lost this file, it should be more convenient to voluntarily + /// show up and pay this penalty in good faith, rather than risking being slashed for + /// being unable to submit a proof that should include this file. + pub static BspStopStoringFilePenalty: Balance = SlashAmountPerMaxFileSize::get() / 2; + + /// Time-to-live for a provider to top up their deposit to cover a capacity deficit. + /// Set to 14_400 relay blocks = 1 day with 6 second timeslots. + #[codec(index = 22)] + #[allow(non_upper_case_globals)] + pub static ProviderTopUpTtl: BlockNumber = 14_400; + + /// The following parameters are the replication targets for the different security levels + /// that a storage request (and thus the file it represents) can have. + /// + /// These are associated with the probability that a malicious actor could hold the file hostage by controlling + /// all BSPs that volunteered and confirmed storing it. + /// The values were calculated from the probabilities derived using binomial distribution calculations, + /// where the total number of BSPs is set to 1000, the fraction of malicious BSPs is 1/3, and the target number of BSPs + /// is incremented until the probability of all selected BSPs being malicious falls below the required percentage. + /// + /// The formula used is: + /// num_bsps = 1000 + /// fraction_evil = 1/3 + /// n_evil = int(num_bsps * fraction_evil) // = 333 + /// target = range(1, num_bsps) + /// p_init = target / num_bsps + /// prob = binomial_cdf_at_least(n_evil, target, p_init) + /// + /// This ensures that the replication targets were selected optimally to balance security and storage efficiency. + /// -------------------------------------------------------------------------------------------------------------------- + /// The amount of BSPs that a basic security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~1%. + #[codec(index = 23)] + #[allow(non_upper_case_globals)] + pub static BasicReplicationTarget: ReplicationTargetType = 7; + + /// The amount of BSPs that a standard security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.1%. + #[codec(index = 24)] + #[allow(non_upper_case_globals)] + pub static StandardReplicationTarget: ReplicationTargetType = 12; + + /// The amount of BSPs that a high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.01%. + #[codec(index = 25)] + #[allow(non_upper_case_globals)] + pub static HighSecurityReplicationTarget: ReplicationTargetType = 17; + + /// The amount of BSPs that a super high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.001%. + #[codec(index = 26)] + #[allow(non_upper_case_globals)] + pub static SuperHighSecurityReplicationTarget: ReplicationTargetType = 22; + + /// The amount of BSPs that an ultra high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.0001%. + #[codec(index = 27)] + #[allow(non_upper_case_globals)] + pub static UltraHighSecurityReplicationTarget: ReplicationTargetType = 26; + + /// The maximum amount of BSPs that a user can require a storage request to use as the replication target. + /// + /// This is a safety measure to prevent users from issuing storage requests that are too large and would + /// require a large number of BSPs to store the file. + #[codec(index = 28)] + #[allow(non_upper_case_globals)] + pub static MaxReplicationTarget: ReplicationTargetType = + UltraHighSecurityReplicationTarget::get() + .saturating_mul(150) + .saturating_div(100); + + /// The amount of ticks that have to pass for the threshold to volunteer for a specific storage request + /// to arrive at its maximum value. + /// + /// This is big enough so volunteering for a storage request is not open to everyone inmediatly, preventing + /// a select few BSPs from taking all the requests, while small enough so that storage requests don't take + /// too long to be filled. + #[codec(index = 29)] + #[allow(non_upper_case_globals)] + pub static TickRangeToMaximumThreshold: BlockNumber = 3600; // 6 hours with a 6 second block time + + /// The amount of ticks after which a storage request is considered expired and can be removed from storage. + /// + /// It's a function of the TickRangeToMaximumThreshold since it does not make sense for a storage request to + /// expire before arriving at its maximum threshold for volunteering. + #[codec(index = 30)] + #[allow(non_upper_case_globals)] + pub static StorageRequestTtl: BlockNumber = TickRangeToMaximumThreshold::get() + .saturating_mul(110) + .saturating_div(100); + + /// The minimum amount of ticks between a stop storing request from a BSP and that BSP being able to + /// confirm to stop storing that file key. + /// + /// It's a function of the checkpoint challenge period since this makes it so BSPs can't avoid checkpoint + /// challenges by stopping storing a file key right before the challenge period ends in case they lost it. + #[codec(index = 31)] + #[allow(non_upper_case_globals)] + pub static MinWaitForStopStoring: BlockNumber = CheckpointChallengePeriod::get() + .saturating_mul(110) + .saturating_div(100); + + #[codec(index = 32)] + #[allow(non_upper_case_globals)] + /// 20 ticks, or 2 minutes with 6 seconds per tick. + pub static MinSeedPeriod: BlockNumber = 20; + + #[codec(index = 33)] + #[allow(non_upper_case_globals)] + /// 10k HAVEs * [`MinSeedPeriod`] = 10k HAVEs * 20 = 200k HAVEs + /// + /// This can be interpreted as "a Provider with 10k HAVEs of stake would get the minimum seed period". + pub static StakeToSeedPeriod: Balance = + 10_000 * HAVE * Into::::into(MinSeedPeriod::get()); + + #[codec(index = 34)] + #[allow(non_upper_case_globals)] + /// The amount of ticks to charge a user upfront when it tries to issue a new storage request. + /// This is done as a deterrent to avoid users spamming the network with huge files but never + /// actually planning to store them longterm. + /// + /// 72k ticks = 5 days with 6 seconds per tick. + /// This means that a user must pay for 5 days of storage upfront, which gets transferred to the + /// treasury. Governance can then decide what to do with the accumulated funds. + /// + /// With a stable price (defined as `MostlyStablePrice` in this file) of 50 GIGAWEIs per gigabyte + /// per tick and a standard replication target (`StandardReplicationTarget`) of 12 BSPs, the upfront + /// cost for the user to issue a storage request for a 1 GB file would be: + /// 50 GIGAWEIs per gigabyte per tick * 12 BSPs * 72k ticks * 1 GB = 0.0432 HAVEs + pub static UpfrontTicksToPay: BlockNumber = 72_000; + // ╚══════════════════════ StorageHub Pallets ═══════════════════════╝ + } +} + #[cfg(feature = "runtime-benchmarks")] impl Default for RuntimeParameters { fn default() -> Self { diff --git a/operator/runtime/mainnet/src/configs/storagehub/mod.rs b/operator/runtime/mainnet/src/configs/storagehub/mod.rs new file mode 100644 index 000000000..636393e87 --- /dev/null +++ b/operator/runtime/mainnet/src/configs/storagehub/mod.rs @@ -0,0 +1,610 @@ +use super::{ + AccountId, Balance, Balances, BlockNumber, Hash, RuntimeEvent, RuntimeHoldReason, HAVE, +}; +use crate::configs::runtime_params::dynamic_params::runtime_config; +use crate::{ + BucketNfts, Nfts, PaymentStreams, ProofsDealer, Providers, Runtime, Signature, WeightToFee, + HOURS, +}; +use core::marker::PhantomData; +use datahaven_runtime_common::time::{DAYS, MINUTES}; +use frame_support::pallet_prelude::DispatchClass; +use frame_support::traits::AsEnsureOriginWithArg; +use frame_support::{ + parameter_types, + traits::{ConstU128, ConstU32, ConstU64}, + weights::Weight, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use frame_system::EnsureRoot; +use frame_system::EnsureSigned; +use num_bigint::BigUint; +use pallet_nfts::PalletFeatures; +use polkadot_runtime_common::prod_or_fast; +use shp_data_price_updater::{MostlyStablePriceIndexUpdater, MostlyStablePriceIndexUpdaterConfig}; +use shp_file_key_verifier::FileKeyVerifier; +use shp_file_metadata::{ChunkId, FileMetadata}; +use shp_forest_verifier::ForestVerifier; +use shp_treasury_funding::{ + LinearThenPowerOfTwoTreasuryCutCalculator, LinearThenPowerOfTwoTreasuryCutCalculatorConfig, +}; +use sp_core::Get; +use sp_core::Hasher; +use sp_core::H256; +use sp_runtime::traits::Convert; +use sp_runtime::traits::ConvertBack; +use sp_runtime::traits::Verify; +use sp_runtime::traits::Zero; +use sp_runtime::SaturatedConversion; +use sp_runtime::{traits::BlakeTwo256, Perbill}; +use sp_std::convert::{From, Into}; +use sp_std::vec; +use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; + +/// Type representing the storage data units in StorageHub. +pub type StorageDataUnit = u64; + +pub type StorageProofsMerkleTrieLayout = LayoutV1; + +pub type Hashing = BlakeTwo256; + +// TODO: remove this and replace with pallet treasury +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + AccountId::from([0; 32]) + } +} + +/****** NFTs pallet ******/ +parameter_types! { + pub const CollectionDeposit: Balance = 100 * HAVE; + pub const ItemDeposit: Balance = 1 * HAVE; + pub const MetadataDepositBase: Balance = 10 * HAVE; + pub const MetadataDepositPerByte: Balance = 1 * HAVE; + pub const ApprovalsLimit: u32 = 20; + pub const ItemAttributesApprovalsLimit: u32 = 20; + pub const MaxTips: u32 = 10; + pub const MaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + pub const MaxAttributesPerCall: u32 = 10; + pub Features: PalletFeatures = PalletFeatures::all_enabled(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type CollectionDeposit = CollectionDeposit; + type ItemDeposit = ItemDeposit; + type MetadataDepositBase = MetadataDepositBase; + type AttributeDepositBase = MetadataDepositBase; + type DepositPerByte = MetadataDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ApprovalsLimit; + type ItemAttributesApprovalsLimit = ItemAttributesApprovalsLimit; + type MaxTips = MaxTips; + type MaxDeadlineDuration = MaxDeadlineDuration; + type MaxAttributesPerCall = MaxAttributesPerCall; + type Features = Features; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = pallet_nfts::weights::SubstrateWeight; + type Locker = (); +} +/****** ****** ****** ******/ + +/****** Relay Randomness pallet ******/ +impl pallet_randomness::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type BabeDataGetter = BabeDataGetter; + type BabeBlockGetter = BlockNumberGetter; + type WeightInfo = (); + type BabeDataGetterBlockNumber = BlockNumber; +} + +pub struct BabeDataGetter; +impl pallet_randomness::GetBabeData for BabeDataGetter { + fn get_epoch_index() -> u64 { + todo!("implement `get_epoch_index`"); + } + fn get_epoch_randomness() -> Hash { + todo!("implement `get_epoch_randomness`"); + } + fn get_parent_randomness() -> Hash { + todo!("implement `get_parent_randomness`"); + } +} + +pub struct BlockNumberGetter {} +impl sp_runtime::traits::BlockNumberProvider for BlockNumberGetter { + type BlockNumber = BlockNumber; + + fn current_block_number() -> Self::BlockNumber { + frame_system::Pallet::::block_number() + } +} + +/****** ****** ****** ******/ + +/****** Storage Providers pallet ******/ +parameter_types! { + pub const SpMinDeposit: Balance = 100 * HAVE; + pub const BucketDeposit: Balance = 100 * HAVE; + pub const BspSignUpLockPeriod: BlockNumber = 90 * DAYS; // ~3 months + pub const MaxBlocksForRandomness: BlockNumber = prod_or_fast!(2 * HOURS, 2 * MINUTES); + // TODO: If the next line is uncommented (which should be eventually, replacing the line above), compilation breaks (most likely because of mismatched dependency issues) + // pub const MaxBlocksForRandomness: BlockNumber = prod_or_fast!(2 * runtime_constants::time::EPOCH_DURATION_IN_SLOTS, 2 * MINUTES); +} + +impl pallet_storage_providers::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_storage_providers::weights::SubstrateWeight; + type ProvidersRandomness = pallet_randomness::RandomnessFromOneEpochAgo; + type PaymentStreams = PaymentStreams; + type ProofDealer = ProofsDealer; + type FileMetadataManager = FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type NativeBalance = Balances; + type CrRandomness = MockCrRandomness; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = StorageDataUnit; + type StorageDataUnitAndBalanceConvert = StorageDataUnitAndBalanceConverter; + type SpCount = u32; + type BucketCount = u128; + type MerklePatriciaRoot = Hash; + type MerkleTrieHashing = Hashing; + type ProviderId = Hash; + type ProviderIdHashing = Hashing; + type ValuePropId = Hash; + type ValuePropIdHashing = Hashing; + type ReadAccessGroupId = ::CollectionId; + type ProvidersProofSubmitters = ProofsDealer; + type ReputationWeightType = u32; + type StorageHubTickGetter = ProofsDealer; + type Treasury = TreasuryAccount; + type SpMinDeposit = SpMinDeposit; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = ConstU32<100>; + type MaxMultiAddressAmount = ConstU32<5>; + type MaxProtocols = ConstU32<100>; + type BucketDeposit = BucketDeposit; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = MaxBlocksForRandomness; + type MinBlocksBetweenCapacityChanges = ConstU32<10>; + type DefaultMerkleRoot = DefaultMerkleRoot; + type SlashAmountPerMaxFileSize = runtime_config::SlashAmountPerMaxFileSize; + type StartingReputationWeight = ConstU32<1>; + type BspSignUpLockPeriod = BspSignUpLockPeriod; + type MaxCommitmentSize = ConstU32<1000>; + type ZeroSizeBucketFixedRate = runtime_config::ZeroSizeBucketFixedRate; + type ProviderTopUpTtl = runtime_config::ProviderTopUpTtl; + type MaxExpiredItemsInBlock = ConstU32<100>; +} + +pub struct StorageDataUnitAndBalanceConverter; +impl Convert for StorageDataUnitAndBalanceConverter { + fn convert(data_unit: StorageDataUnit) -> Balance { + data_unit.saturated_into() + } +} +impl ConvertBack for StorageDataUnitAndBalanceConverter { + fn convert_back(balance: Balance) -> StorageDataUnit { + balance.saturated_into() + } +} + +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +/****** ****** ****** ******/ + +/****** Payment Streams pallet ******/ +parameter_types! { + pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); + pub const UserWithoutFundsCooldown: BlockNumber = 100; +} + +impl pallet_payment_streams::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_payment_streams::weights::SubstrateWeight; + type NativeBalance = Balances; + type ProvidersPallet = Providers; + type RuntimeHoldReason = RuntimeHoldReason; + type UserWithoutFundsCooldown = UserWithoutFundsCooldown; // Amount of blocks that a user will have to wait before being able to clear the out of funds flag + type NewStreamDeposit = ConstU32<10>; // Amount of blocks that the deposit of a new stream should be able to pay for + type Units = StorageDataUnit; // Storage unit + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = ProofsDealer; + type TreasuryCutCalculator = LinearThenPowerOfTwoTreasuryCutCalculator; + type TreasuryAccount = TreasuryAccount; + type MaxUsersToCharge = ConstU32<10>; + type BaseDeposit = ConstU128<10>; +} + +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert for BlockNumberToBalance { + fn convert(block_number: BlockNumber) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +impl LinearThenPowerOfTwoTreasuryCutCalculatorConfig for Runtime { + type Balance = Balance; + type ProvidedUnit = StorageDataUnit; + type IdealUtilisationRate = runtime_config::IdealUtilisationRate; + type DecayRate = runtime_config::DecayRate; + type MinimumCut = runtime_config::MinimumTreasuryCut; + type MaximumCut = runtime_config::MaximumTreasuryCut; +} +/****** ****** ****** ******/ + +/****** Proofs Dealer pallet ******/ +const RANDOM_CHALLENGES_PER_BLOCK: u32 = 10; +const MAX_CUSTOM_CHALLENGES_PER_BLOCK: u32 = 10; +const TOTAL_MAX_CHALLENGES_PER_BLOCK: u32 = + RANDOM_CHALLENGES_PER_BLOCK + MAX_CUSTOM_CHALLENGES_PER_BLOCK; + +parameter_types! { + pub const RandomChallengesPerBlock: u32 = RANDOM_CHALLENGES_PER_BLOCK; + pub const MaxCustomChallengesPerBlock: u32 = MAX_CUSTOM_CHALLENGES_PER_BLOCK; + pub const TotalMaxChallengesPerBlock: u32 = TOTAL_MAX_CHALLENGES_PER_BLOCK; + pub const TargetTicksStorageOfSubmitters: u32 = 3; + pub const ChallengeHistoryLength: BlockNumber = 100; + pub const ChallengesQueueLength: u32 = 100; + pub const ChallengesFee: Balance = 1 * HAVE; + pub const ChallengeTicksTolerance: u32 = 50; +} + +impl pallet_proofs_dealer::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_proofs_dealer::weights::SubstrateWeight; + type ProvidersPallet = Providers; + type NativeBalance = Balances; + type MerkleTrieHash = Hash; + type MerkleTrieHashing = BlakeTwo256; + type ForestVerifier = ForestVerifier; + type KeyVerifier = FileKeyVerifier< + StorageProofsMerkleTrieLayout, + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type StakeToBlockNumber = SaturatingBalanceToBlockNumber; + type RandomChallengesPerBlock = RandomChallengesPerBlock; + type MaxCustomChallengesPerBlock = MaxCustomChallengesPerBlock; + type MaxSubmittersPerTick = MaxSubmittersPerTick; + type TargetTicksStorageOfSubmitters = TargetTicksStorageOfSubmitters; + type ChallengeHistoryLength = ChallengeHistoryLength; + type ChallengesQueueLength = ChallengesQueueLength; + type CheckpointChallengePeriod = runtime_config::CheckpointChallengePeriod; + type ChallengesFee = ChallengesFee; + type Treasury = TreasuryAccount; + // TODO: Once the client logic to keep track of CR randomness deadlines and execute their submissions is implemented + // AND after the chain has been live for enough time to have enough providers to avoid the commit-reveal randomness being + // gameable, the randomness provider should be CrRandomness + type RandomnessProvider = pallet_randomness::ParentBlockRandomness; + type StakeToChallengePeriod = runtime_config::StakeToChallengePeriod; + type MinChallengePeriod = runtime_config::MinChallengePeriod; + type ChallengeTicksTolerance = ChallengeTicksTolerance; + type BlockFullnessPeriod = ChallengeTicksTolerance; // We purposely set this to `ChallengeTicksTolerance` so that spamming of the chain is evaluated for the same blocks as the tolerance BSPs are given. + type BlockFullnessHeadroom = BlockFullnessHeadroom; + type MinNotFullBlocksRatio = MinNotFullBlocksRatio; + type MaxSlashableProvidersPerTick = MaxSlashableProvidersPerTick; +} + +// Converter from the Balance type to the BlockNumber type for math. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct SaturatingBalanceToBlockNumber; +impl Convert> for SaturatingBalanceToBlockNumber { + fn convert(block_number: Balance) -> BlockNumberFor { + block_number.saturated_into() + } +} + +pub struct MaxSubmittersPerTick; +impl Get for MaxSubmittersPerTick { + fn get() -> u32 { + let block_weights = ::BlockWeights::get(); + + // Not being able to get the `max_total` weight for the Normal dispatch class is considered + // a critical bug. So we set it to be zero, essentially allowing zero submitters per tick. + // This value can be read from the constants of a node, but with the current configuration, this is: + // + // max_total: { + // ref_time: 1,500,000,000,000 + // proof_size: 3,932,160 + // } + let max_weight_for_class = block_weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(Zero::zero()); + + // Get the minimum weight a `submit_proof` extrinsic can have. + // This would be the case where the proof is just made up of a single file key proof, that is a + // response to all the random challenges. And there are no checkpoint challenges. + // With the current benchmarking, this is: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // min_weight_for_submit_proof: { + // ref_time: 2,980,252,675 + // proof_size: 16,056 + // } + let min_weight_for_submit_proof = + as pallet_proofs_dealer::weights::WeightInfo>::submit_proof_no_checkpoint_challenges_key_proofs(1); + + // Calculate the maximum number of submit proofs that is possible to have in a block/tick. + // With the current values, this would be: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // 244 proof submissions per block (limited by `proof_size`) + let max_proof_submissions_per_tick = max_weight_for_class + .checked_div_per_component(&min_weight_for_submit_proof) + .unwrap_or(0); + + // Saturating u64 to u32 should be enough. + max_proof_submissions_per_tick.saturated_into() + } +} + +pub struct BlockFullnessHeadroom; +impl Get for BlockFullnessHeadroom { + fn get() -> Weight { + // The block headroom is set to be the maximum benchmarked weight that a `submit_proof` extrinsic can have. + // That is, when the proof includes two file key proofs for every single random challenge, and for the maximum + // number of checkpoint challenges as well. + as pallet_proofs_dealer::weights::WeightInfo>::submit_proof_with_checkpoint_challenges_key_proofs(TOTAL_MAX_CHALLENGES_PER_BLOCK * 2) + } +} + +pub struct MinNotFullBlocksRatio; +impl Get for MinNotFullBlocksRatio { + fn get() -> Perbill { + // This means that we tolerate at most 50% of misbehaving collators. + Perbill::from_percent(50) + } +} + +pub struct MaxSlashableProvidersPerTick; +impl Get for MaxSlashableProvidersPerTick { + fn get() -> u32 { + // With the maximum number of slashable providers per tick being `N`, the absolute maximum + // weight that the `on_poll` hook can have, with the current benchmarking, is: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // new_challenges_round_weight: { + // ref_time: 576,000,000 + N * 551,601,146 + // proof_size: 8,523 + N * 3,158 + // } + // new_checkpoint_challenge_round_max_weight: { + // ref_time: 587,205,208 + ChallengesQueueLength * 225,083 = 610,554,678 + // proof_size: 4,787 + // } + // check_spamming_condition_weight: { + // ref_time: 313,000,000 + // proof_size: 6,012 + // } + // + // For `N` = 1000, this would be: + // max_on_poll_weight: { + // ref_time: 313,000,000 + 610,554,678 + 576,000,000 + N * 551,601,146 ≈ 553,100,700,678 + // proof_size: 6,012 + 4,787 + 8,523 + N * 3,158 ≈ 3,177,322 + // } + // + // Consider that the maximum block weight is: + // maxBlock: { + // ref_time: 2,000,000,000,000 + // proof_size: 5,242,880 + // } + // + // This `on_poll` hook would consume roughly 1/4 of the block `ref_time` and 3/5 of the block `proof_size`. + // This is naturally a lot. But it would be a very unlikely scenario. + // + // This would be the case where all `N` Providers have synchronised their challenge periods + // and have the same deadline, plus, all of them missed their proof submissions. + // The normal scenario would be that NONE (or just a small number) of the Providers have + // missed their proof submissions. + let max_slashable_providers_per_tick = 1000; + max_slashable_providers_per_tick + } +} +/****** ****** ****** ******/ + +/****** File System pallet ******/ +type ThresholdType = u32; +pub type ReplicationTargetType = u32; + +parameter_types! { + pub const BaseStorageRequestCreationDeposit: Balance = 1 * HAVE; + pub const FileDeletionRequestCreationDeposit: Balance = 1 * HAVE; + pub const FileSystemStorageRequestCreationHoldReason: RuntimeHoldReason = RuntimeHoldReason::FileSystem(pallet_file_system::HoldReason::StorageRequestCreationHold); + pub const FileSystemFileDeletionRequestHoldReason: RuntimeHoldReason = RuntimeHoldReason::FileSystem(pallet_file_system::HoldReason::FileDeletionRequestHold); +} + +impl pallet_file_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_file_system::weights::SubstrateWeight; + type Providers = Providers; + type ProofDealer = ProofsDealer; + type PaymentStreams = PaymentStreams; + // TODO: Replace the mocked CR randomness with the actual one when it's ready + // type CrRandomness = CrRandomness; + type CrRandomness = MockCrRandomness; + type UpdateStoragePrice = MostlyStablePriceIndexUpdater; + type UserSolvency = PaymentStreams; + type Fingerprint = Hash; + type ReplicationTargetType = ReplicationTargetType; + type ThresholdType = ThresholdType; + type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; + type HashToThresholdType = HashToThresholdTypeConverter; + type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; + type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; + type Currency = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type Nfts = Nfts; + type CollectionInspector = BucketNfts; + type BspStopStoringFilePenalty = runtime_config::BspStopStoringFilePenalty; + type TreasuryAccount = TreasuryAccount; + type MaxBatchConfirmStorageRequests = ConstU32<10>; + type MaxFilePathSize = ConstU32<512u32>; + type MaxPeerIdSize = ConstU32<100>; + type MaxNumberOfPeerIds = ConstU32<5>; + type MaxDataServerMultiAddresses = ConstU32<10>; + type MaxExpiredItemsInTick = ConstU32<100>; + type StorageRequestTtl = runtime_config::StorageRequestTtl; + type MoveBucketRequestTtl = ConstU32<40u32>; + type MaxUserPendingDeletionRequests = ConstU32<10u32>; + type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; + type MinWaitForStopStoring = runtime_config::MinWaitForStopStoring; + type BaseStorageRequestCreationDeposit = BaseStorageRequestCreationDeposit; + type UpfrontTicksToPay = runtime_config::UpfrontTicksToPay; + type WeightToFee = WeightToFee; + type ReplicationTargetToBalance = ReplicationTargetToBalance; + type TickNumberToBalance = TickNumberToBalance; + type StorageDataUnitToBalance = StorageDataUnitToBalance; + type FileDeletionRequestDeposit = FileDeletionRequestCreationDeposit; + type BasicReplicationTarget = runtime_config::BasicReplicationTarget; + type StandardReplicationTarget = runtime_config::StandardReplicationTarget; + type HighSecurityReplicationTarget = runtime_config::HighSecurityReplicationTarget; + type SuperHighSecurityReplicationTarget = runtime_config::SuperHighSecurityReplicationTarget; + type UltraHighSecurityReplicationTarget = runtime_config::UltraHighSecurityReplicationTarget; + type MaxReplicationTarget = runtime_config::MaxReplicationTarget; + type TickRangeToMaximumThreshold = runtime_config::TickRangeToMaximumThreshold; +} + +impl MostlyStablePriceIndexUpdaterConfig for Runtime { + type Price = Balance; + type StorageDataUnit = StorageDataUnit; + type LowerThreshold = runtime_config::SystemUtilisationLowerThresholdPercentage; + type UpperThreshold = runtime_config::SystemUtilisationUpperThresholdPercentage; + type MostlyStablePrice = runtime_config::MostlyStablePrice; + type MaxPrice = runtime_config::MaxPrice; + type MinPrice = runtime_config::MinPrice; + type UpperExponentFactor = runtime_config::UpperExponentFactor; + type LowerExponentFactor = runtime_config::LowerExponentFactor; +} + +// Converter from the ThresholdType to the BlockNumber type and vice versa. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct ThresholdTypeToBlockNumberConverter; +impl Convert> for ThresholdTypeToBlockNumberConverter { + fn convert(threshold: ThresholdType) -> BlockNumberFor { + threshold.saturated_into() + } +} + +impl ConvertBack> for ThresholdTypeToBlockNumberConverter { + fn convert_back(block_number: BlockNumberFor) -> ThresholdType { + block_number.into() + } +} + +/// Converter from the [`Hash`] type to the [`ThresholdType`]. +pub struct HashToThresholdTypeConverter; +impl Convert<::Hash, ThresholdType> + for HashToThresholdTypeConverter +{ + fn convert(hash: ::Hash) -> ThresholdType { + // Get the hash as bytes + let hash_bytes = hash.as_ref(); + + // Get the 4 least significant bytes of the hash and interpret them as an u32 + let truncated_hash_bytes: [u8; 4] = + hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); + + ThresholdType::from_be_bytes(truncated_hash_bytes) + } +} + +// Converter from the MerkleHash (H256) type to the RandomnessOutput (H256) type. +pub struct MerkleHashToRandomnessOutputConverter; +impl Convert for MerkleHashToRandomnessOutputConverter { + fn convert(hash: H256) -> H256 { + hash + } +} + +// Converter from the ChunkId type to the MerkleHash (H256) type. +pub struct ChunkIdToMerkleHashConverter; + +impl Convert for ChunkIdToMerkleHashConverter { + fn convert(chunk_id: ChunkId) -> H256 { + let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); + let mut bytes = chunk_id_biguint.to_bytes_be(); + + // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros + if bytes.len() < 32 { + let mut padded_bytes = vec![0u8; 32 - bytes.len()]; + padded_bytes.extend(bytes); + bytes = padded_bytes; + } + + H256::from_slice(&bytes) + } +} + +// Converter from the ReplicationTargetType type to the Balance type. +pub struct ReplicationTargetToBalance; +impl Convert for ReplicationTargetToBalance { + fn convert(replication_target: ReplicationTargetType) -> Balance { + replication_target.into() + } +} + +// Converter from the TickNumber type to the Balance type. +pub type TickNumber = BlockNumber; +pub struct TickNumberToBalance; +impl Convert for TickNumberToBalance { + fn convert(tick_number: TickNumber) -> Balance { + tick_number.into() + } +} + +// Converter from the StorageDataUnit type to the Balance type. +pub struct StorageDataUnitToBalance; +impl Convert for StorageDataUnitToBalance { + fn convert(storage_data_unit: StorageDataUnit) -> Balance { + storage_data_unit.into() + } +} +/****** ****** ****** ******/ + +/****** Bucket NFTs pallet ******/ +impl pallet_bucket_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_bucket_nfts::weights::SubstrateWeight; + type Buckets = Providers; +} +/****** ****** ****** ******/ + +/****** Commit-Reveal Randomness pallet ******/ +pub struct MockCrRandomness; +impl shp_traits::CommitRevealRandomnessInterface for MockCrRandomness { + type ProviderId = Hash; + + fn initialise_randomness_cycle( + _who: &Self::ProviderId, + ) -> frame_support::dispatch::DispatchResult { + Ok(()) + } + + fn stop_randomness_cycle(_who: &Self::ProviderId) -> frame_support::dispatch::DispatchResult { + Ok(()) + } +} +/****** ****** ****** ******/ diff --git a/operator/runtime/mainnet/src/lib.rs b/operator/runtime/mainnet/src/lib.rs index 07879d422..c4ee9e39c 100644 --- a/operator/runtime/mainnet/src/lib.rs +++ b/operator/runtime/mainnet/src/lib.rs @@ -20,7 +20,10 @@ use frame_support::{ pallet_prelude::{TransactionValidity, TransactionValidityError}, parameter_types, traits::{KeyOwnerProofSystem, OnFinalize}, - weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + weights::{ + constants::ExtrinsicBaseWeight, constants::WEIGHT_REF_TIME_PER_SECOND, Weight, + WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, + }, }; pub use frame_system::Call as SystemCall; pub use pallet_balances::Call as BalancesCall; @@ -29,6 +32,7 @@ use pallet_evm::{Account as EVMAccount, FeeCalculator, GasWeightMapping, Runner} use pallet_external_validators::traits::EraIndex; use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId}; pub use pallet_timestamp::Call as TimestampCall; +use smallvec::smallvec; use snowbridge_core::AgentId; use snowbridge_merkle_tree::MerkleProof; use sp_api::impl_runtime_apis; @@ -231,8 +235,36 @@ where } } +/// 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 { + // in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIHAVE: + // in our template, we map to 1/10 of that, or 1/10 MILLIHAVE + let p = currency::MILLIHAVE / 10; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } +} + // Create the runtime by composing the FRAME pallets that were previously configured. #[frame_support::runtime] +#[cfg(not(feature = "storage-hub"))] mod runtime { #[runtime::runtime] #[runtime::derive( @@ -384,6 +416,179 @@ mod runtime { // ╚═══════════════════ DataHaven-specific Pallets ══════════════════╝ } +#[frame_support::runtime] +#[cfg(feature = "storage-hub")] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + // ╔══════════════════ System and Consensus Pallets ═════════════════╗ + #[runtime::pallet_index(0)] + pub type System = frame_system; + + // Babe must be before session. + #[runtime::pallet_index(1)] + pub type Babe = pallet_babe; + + #[runtime::pallet_index(2)] + pub type Timestamp = pallet_timestamp; + + #[runtime::pallet_index(3)] + pub type Balances = pallet_balances; + + // Consensus support. + // Authorship must be before session in order to note author in the correct session and era. + #[runtime::pallet_index(4)] + pub type Authorship = pallet_authorship; + + #[runtime::pallet_index(5)] + pub type Offences = pallet_offences; + + #[runtime::pallet_index(6)] + pub type Historical = pallet_session::historical; + + // External Validators must be before Session. + #[runtime::pallet_index(7)] + pub type ExternalValidators = pallet_external_validators; + + #[runtime::pallet_index(8)] + pub type Session = pallet_session; + + #[runtime::pallet_index(9)] + pub type ImOnline = pallet_im_online; + + #[runtime::pallet_index(10)] + pub type Grandpa = pallet_grandpa; + + #[runtime::pallet_index(11)] + pub type TransactionPayment = pallet_transaction_payment; + + #[runtime::pallet_index(12)] + pub type Beefy = pallet_beefy; + + #[runtime::pallet_index(13)] + pub type Mmr = pallet_mmr; + + #[runtime::pallet_index(14)] + pub type BeefyMmrLeaf = pallet_beefy_mmr; + // ╚═════════════════ System and Consensus Pallets ══════════════════╝ + + // ╔═════════════════ Polkadot SDK Utility Pallets ══════════════════╗ + #[runtime::pallet_index(30)] + pub type Utility = pallet_utility; + + #[runtime::pallet_index(31)] + pub type Scheduler = pallet_scheduler; + + #[runtime::pallet_index(32)] + pub type Preimage = pallet_preimage; + + #[runtime::pallet_index(33)] + pub type Identity = pallet_identity; + + #[runtime::pallet_index(34)] + pub type Multisig = pallet_multisig; + + #[runtime::pallet_index(35)] + pub type Parameters = pallet_parameters; + + #[runtime::pallet_index(36)] + pub type Sudo = pallet_sudo; + + #[runtime::pallet_index(37)] + pub type Treasury = pallet_treasury; + + #[runtime::pallet_index(38)] + pub type Proxy = pallet_proxy; + // ╚═════════════════ Polkadot SDK Utility Pallets ══════════════════╝ + + // ╔════════════════════ Frontier (EVM) Pallets ═════════════════════╗ + #[runtime::pallet_index(50)] + pub type Ethereum = pallet_ethereum; + + #[runtime::pallet_index(51)] + pub type Evm = pallet_evm; + + #[runtime::pallet_index(52)] + pub type EvmChainId = pallet_evm_chain_id; + // ╚════════════════════ Frontier (EVM) Pallets ═════════════════════╝ + + // ╔══════════════════════ Snowbridge Pallets ═══════════════════════╗ + #[runtime::pallet_index(60)] + pub type EthereumBeaconClient = snowbridge_pallet_ethereum_client; + + #[runtime::pallet_index(61)] + pub type EthereumInboundQueueV2 = snowbridge_pallet_inbound_queue_v2; + + #[runtime::pallet_index(62)] + pub type EthereumOutboundQueueV2 = snowbridge_pallet_outbound_queue_v2; + + #[runtime::pallet_index(63)] + pub type SnowbridgeSystem = snowbridge_pallet_system; + + #[runtime::pallet_index(64)] + pub type SnowbridgeSystemV2 = snowbridge_pallet_system_v2; + // ╚══════════════════════ Snowbridge Pallets ═══════════════════════╝ + + // ╔════════════ Polkadot SDK Utility Pallets - Block 2 ═════════════╗ + // The Message Queue pallet has to be after the Snowbridge Outbound + // Queue V2 pallet since the former processes messages in its + // `on_initialize` hook and the latter clears up messages in + // its `on_initialize` hook, so otherwise messages will be cleared + // up before they are processed. + #[runtime::pallet_index(70)] + pub type MessageQueue = pallet_message_queue; + // ╚════════════ Polkadot SDK Utility Pallets - Block 2 ═════════════╝ + + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ + // Start with index 80 + #[runtime::pallet_index(80)] + pub type Providers = pallet_storage_providers; + + #[runtime::pallet_index(81)] + pub type FileSystem = pallet_file_system; + + #[runtime::pallet_index(82)] + pub type ProofsDealer = pallet_proofs_dealer; + + #[runtime::pallet_index(83)] + pub type Randomness = pallet_randomness; + + #[runtime::pallet_index(84)] + pub type PaymentStreams = pallet_payment_streams; + + #[runtime::pallet_index(85)] + pub type BucketNfts = pallet_bucket_nfts; + + #[runtime::pallet_index(90)] + pub type Nfts = pallet_nfts; + // ╚══════════════════════ StorageHub Pallets ═══════════════════════╝ + + // ╔═══════════════════ DataHaven-specific Pallets ══════════════════╗ + // Start with index 100 + #[runtime::pallet_index(100)] + pub type OutboundCommitmentStore = pallet_outbound_commitment_store; + + #[runtime::pallet_index(101)] + pub type ExternalValidatorsRewards = pallet_external_validators_rewards; + + #[runtime::pallet_index(102)] + pub type DataHavenNativeTransfer = pallet_datahaven_native_transfer; + + // ╚═══════════════════ DataHaven-specific Pallets ══════════════════╝ +} + /// MMR helper types. mod mmr { use super::Runtime; diff --git a/operator/runtime/stagenet/src/configs/runtime_params.rs b/operator/runtime/stagenet/src/configs/runtime_params.rs index 811322af3..93808918c 100644 --- a/operator/runtime/stagenet/src/configs/runtime_params.rs +++ b/operator/runtime/stagenet/src/configs/runtime_params.rs @@ -6,11 +6,14 @@ use sp_runtime::{BoundedVec, Perbill}; use sp_std::vec; #[cfg(feature = "storage-hub")] -use crate::currency::{Balance, GIGAWEI, HAVE}; +use crate::currency::{GIGAWEI, HAVE}; #[cfg(feature = "storage-hub")] use crate::configs::storagehub::{ChallengeTicksTolerance, ReplicationTargetType, SpMinDeposit}; +#[cfg(feature = "storage-hub")] +use datahaven_runtime_common::{Balance, BlockNumber}; + #[cfg(not(feature = "storage-hub"))] #[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] pub mod dynamic_params { @@ -99,14 +102,20 @@ pub mod dynamic_params { "c505dfb2df107d106d08bd0f1a0acd10052ca9aa078629a4ccfd0c90c6e69b65" )); + // Proportion of fees allocated to the Treasury (remainder are burned). + // e.g. 20% to the treasury, 80% burned. + #[codec(index = 4)] + #[allow(non_upper_case_globals)] + pub static FeesTreasuryProportion: Perbill = Perbill::from_percent(20); + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ - #[codec(index = 4)] + #[codec(index = 5)] #[allow(non_upper_case_globals)] /// 20 HAVEs pub static SlashAmountPerMaxFileSize: Balance = 20 * HAVE; - #[codec(index = 5)] + #[codec(index = 6)] #[allow(non_upper_case_globals)] /// 10k HAVEs * [`MinChallengePeriod`] = 10k HAVEs * 30 = 300k HAVEs /// @@ -114,7 +123,7 @@ pub mod dynamic_params { pub static StakeToChallengePeriod: Balance = 10_000 * HAVE * Into::::into(MinChallengePeriod::get()); - #[codec(index = 6)] + #[codec(index = 7)] #[allow(non_upper_case_globals)] /// The [`CheckpointChallengePeriod`] is set to be equal to the longest possible challenge period /// (i.e. the [`StakeToChallengePeriod`] divided by the [`SpMinDeposit`]). @@ -127,22 +136,22 @@ pub mod dynamic_params { "StakeToChallengePeriod / SpMinDeposit should be a number of ticks that can fit in BlockNumber numerical type", ); - #[codec(index = 7)] + #[codec(index = 8)] #[allow(non_upper_case_globals)] /// 30 ticks, or 3 minutes with 6 seconds per tick. pub static MinChallengePeriod: BlockNumber = 30; - #[codec(index = 8)] + #[codec(index = 9)] #[allow(non_upper_case_globals)] /// Price decreases when system utilisation is below 30%. pub static SystemUtilisationLowerThresholdPercentage: Perbill = Perbill::from_percent(30); - #[codec(index = 9)] + #[codec(index = 10)] #[allow(non_upper_case_globals)] /// Price increases when system utilisation is above 95%. pub static SystemUtilisationUpperThresholdPercentage: Perbill = Perbill::from_percent(95); - #[codec(index = 10)] + #[codec(index = 11)] #[allow(non_upper_case_globals)] /// 50 [`GIGAWEI`]s is the price per GB of data, per tick. /// @@ -150,17 +159,17 @@ pub mod dynamic_params { /// 50e-9 [`HAVE`]s * 10 ticks/min * 60 min/h * 24 h/day * 30 days/month = 21.6e-3 [`HAVE`]s pub static MostlyStablePrice: Balance = 50 * GIGAWEI; - #[codec(index = 11)] + #[codec(index = 12)] #[allow(non_upper_case_globals)] /// [`MostlyStablePrice`] * 10 = 500 [`GIGAWEI`]s pub static MaxPrice: Balance = MostlyStablePrice::get() * 10; - #[codec(index = 12)] + #[codec(index = 13)] #[allow(non_upper_case_globals)] /// [`MostlyStablePrice`] / 5 = 10 [`GIGAWEI`]s pub static MinPrice: Balance = MostlyStablePrice::get() / 5; - #[codec(index = 13)] + #[codec(index = 14)] #[allow(non_upper_case_globals)] /// u = [`UpperExponentFactor`] /// system_utilisation = 1 @@ -171,7 +180,7 @@ pub mod dynamic_params { /// u = (500 - 50) / (e ^ (1 - 0.95) - 1) ≈ 8777 pub static UpperExponentFactor: u32 = 8777; - #[codec(index = 14)] + #[codec(index = 15)] #[allow(non_upper_case_globals)] /// l = [`LowerExponentFactor`] /// system_utilisation = 0 @@ -182,35 +191,35 @@ pub mod dynamic_params { /// l = (50 - 10) / (e ^ (0.3 - 0) - 1) ≈ 114 pub static LowerExponentFactor: u32 = 114; - #[codec(index = 15)] + #[codec(index = 16)] #[allow(non_upper_case_globals)] /// 0-size bucket fixed rate payment stream representing the price for 1 GB of data. /// /// Base rate for a new fixed payment stream established between an MSP and a user. pub static ZeroSizeBucketFixedRate: Balance = 50 * GIGAWEI; - #[codec(index = 16)] + #[codec(index = 17)] #[allow(non_upper_case_globals)] /// Ideal utilisation rate of the system pub static IdealUtilisationRate: Perbill = Perbill::from_percent(85); - #[codec(index = 17)] + #[codec(index = 18)] #[allow(non_upper_case_globals)] /// Decay rate of the power of two function that determines the percentage of funds that go to /// the treasury for utilisation rates greater than the ideal. pub static DecayRate: Perbill = Perbill::from_percent(5); - #[codec(index = 18)] + #[codec(index = 19)] #[allow(non_upper_case_globals)] /// The minimum treasury cut that can be taken from the amount charged from a payment stream. pub static MinimumTreasuryCut: Perbill = Perbill::from_percent(1); - #[codec(index = 19)] + #[codec(index = 20)] #[allow(non_upper_case_globals)] /// The maximum treasury cut that can be taken from the amount charged from a payment stream. pub static MaximumTreasuryCut: Perbill = Perbill::from_percent(5); - #[codec(index = 20)] + #[codec(index = 21)] #[allow(non_upper_case_globals)] /// The penalty a BSP must pay when they forcefully stop storing a file. /// We set this to be half of the `SlashAmountPerMaxFileSize` with the rationale that @@ -221,7 +230,7 @@ pub mod dynamic_params { /// Time-to-live for a provider to top up their deposit to cover a capacity deficit. /// Set to 14_400 relay blocks = 1 day with 6 second timeslots. - #[codec(index = 21)] + #[codec(index = 22)] #[allow(non_upper_case_globals)] pub static ProviderTopUpTtl: BlockNumber = 14_400; @@ -249,7 +258,7 @@ pub mod dynamic_params { /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its /// volunteered BSPs is ~1%. - #[codec(index = 22)] + #[codec(index = 23)] #[allow(non_upper_case_globals)] pub static BasicReplicationTarget: ReplicationTargetType = 7; @@ -258,7 +267,7 @@ pub mod dynamic_params { /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its /// volunteered BSPs is ~0.1%. - #[codec(index = 23)] + #[codec(index = 24)] #[allow(non_upper_case_globals)] pub static StandardReplicationTarget: ReplicationTargetType = 12; @@ -267,7 +276,7 @@ pub mod dynamic_params { /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its /// volunteered BSPs is ~0.01%. - #[codec(index = 24)] + #[codec(index = 25)] #[allow(non_upper_case_globals)] pub static HighSecurityReplicationTarget: ReplicationTargetType = 17; @@ -276,7 +285,7 @@ pub mod dynamic_params { /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its /// volunteered BSPs is ~0.001%. - #[codec(index = 25)] + #[codec(index = 26)] #[allow(non_upper_case_globals)] pub static SuperHighSecurityReplicationTarget: ReplicationTargetType = 22; @@ -285,7 +294,7 @@ pub mod dynamic_params { /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its /// volunteered BSPs is ~0.0001%. - #[codec(index = 26)] + #[codec(index = 27)] #[allow(non_upper_case_globals)] pub static UltraHighSecurityReplicationTarget: ReplicationTargetType = 26; @@ -293,7 +302,7 @@ pub mod dynamic_params { /// /// This is a safety measure to prevent users from issuing storage requests that are too large and would /// require a large number of BSPs to store the file. - #[codec(index = 27)] + #[codec(index = 28)] #[allow(non_upper_case_globals)] pub static MaxReplicationTarget: ReplicationTargetType = UltraHighSecurityReplicationTarget::get() @@ -306,7 +315,7 @@ pub mod dynamic_params { /// This is big enough so volunteering for a storage request is not open to everyone inmediatly, preventing /// a select few BSPs from taking all the requests, while small enough so that storage requests don't take /// too long to be filled. - #[codec(index = 28)] + #[codec(index = 29)] #[allow(non_upper_case_globals)] pub static TickRangeToMaximumThreshold: BlockNumber = 3600; // 6 hours with a 6 second block time @@ -314,7 +323,7 @@ pub mod dynamic_params { /// /// It's a function of the TickRangeToMaximumThreshold since it does not make sense for a storage request to /// expire before arriving at its maximum threshold for volunteering. - #[codec(index = 29)] + #[codec(index = 30)] #[allow(non_upper_case_globals)] pub static StorageRequestTtl: BlockNumber = TickRangeToMaximumThreshold::get() .saturating_mul(110) @@ -325,18 +334,18 @@ pub mod dynamic_params { /// /// It's a function of the checkpoint challenge period since this makes it so BSPs can't avoid checkpoint /// challenges by stopping storing a file key right before the challenge period ends in case they lost it. - #[codec(index = 30)] + #[codec(index = 31)] #[allow(non_upper_case_globals)] pub static MinWaitForStopStoring: BlockNumber = CheckpointChallengePeriod::get() .saturating_mul(110) .saturating_div(100); - #[codec(index = 31)] + #[codec(index = 32)] #[allow(non_upper_case_globals)] /// 20 ticks, or 2 minutes with 6 seconds per tick. pub static MinSeedPeriod: BlockNumber = 20; - #[codec(index = 32)] + #[codec(index = 33)] #[allow(non_upper_case_globals)] /// 10k HAVEs * [`MinSeedPeriod`] = 10k HAVEs * 20 = 200k HAVEs /// @@ -344,7 +353,7 @@ pub mod dynamic_params { pub static StakeToSeedPeriod: Balance = 10_000 * HAVE * Into::::into(MinSeedPeriod::get()); - #[codec(index = 33)] + #[codec(index = 34)] #[allow(non_upper_case_globals)] /// The amount of ticks to charge a user upfront when it tries to issue a new storage request. /// This is done as a deterrent to avoid users spamming the network with huge files but never diff --git a/operator/runtime/stagenet/src/lib.rs b/operator/runtime/stagenet/src/lib.rs index f46eeb025..d555a3e33 100644 --- a/operator/runtime/stagenet/src/lib.rs +++ b/operator/runtime/stagenet/src/lib.rs @@ -528,6 +528,9 @@ mod runtime { #[runtime::pallet_index(36)] pub type Sudo = pallet_sudo; + #[runtime::pallet_index(37)] + pub type Treasury = pallet_treasury; + #[runtime::pallet_index(38)] pub type Proxy = pallet_proxy; // ╚═════════════════ Polkadot SDK Utility Pallets ══════════════════╝ diff --git a/operator/runtime/testnet/Cargo.toml b/operator/runtime/testnet/Cargo.toml index b0e2ad830..965f0ebc0 100644 --- a/operator/runtime/testnet/Cargo.toml +++ b/operator/runtime/testnet/Cargo.toml @@ -32,6 +32,7 @@ frame-try-runtime = { workspace = true, optional = true } hex = { workspace = true } hex-literal = { workspace = true } log = { workspace = true } +num-bigint = { workspace = true, optional = true } num_enum = { workspace = true } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } @@ -76,6 +77,7 @@ scale-info = { workspace = true, features = ["derive", "serde"] } serde_json = { workspace = true, default-features = false, features = [ "alloc", ] } +smallvec = { workspace = true } snowbridge-beacon-primitives = { workspace = true } snowbridge-core = { workspace = true } snowbridge-inbound-queue-primitives = { workspace = true } @@ -114,6 +116,28 @@ xcm-executor = { workspace = true } # DataHaven precompiles pallet-evm-precompile-registry = { workspace = true } +# StorageHub +pallet-bucket-nfts = { workspace = true, optional = true } +pallet-nfts = { workspace = true, optional = true } +pallet-cr-randomness = { workspace = true, optional = true } +pallet-file-system = { workspace = true, optional = true } +pallet-file-system-runtime-api = { workspace = true, optional = true } +pallet-payment-streams = { workspace = true, optional = true } +pallet-payment-streams-runtime-api = { workspace = true, optional = true } +pallet-proofs-dealer = { workspace = true, optional = true } +pallet-proofs-dealer-runtime-api = { workspace = true, optional = true } +pallet-randomness = { workspace = true, optional = true } +pallet-storage-providers = { workspace = true, optional = true } +pallet-storage-providers-runtime-api = { workspace = true, optional = true } +shp-constants = { workspace = true, optional = true } +shp-file-metadata = { workspace = true, optional = true } +shp-traits = { workspace = true, optional = true } +shp-treasury-funding = { workspace = true, optional = true } +shp-forest-verifier = { workspace = true, optional = true } +shp-file-key-verifier = { workspace = true, optional = true } +shp-data-price-updater = { workspace = true, optional = true } +sp-trie = { workspace = true, optional = true } + [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true, default-features = true } @@ -132,6 +156,29 @@ snowbridge-pallet-system = { workspace = true } snowbridge-pallet-system-v2 = { workspace = true } [features] +storage-hub = [ + "dep:num-bigint", + "dep:pallet-bucket-nfts", + "dep:pallet-nfts", + "dep:pallet-cr-randomness", + "dep:pallet-file-system", + "dep:pallet-file-system-runtime-api", + "dep:pallet-payment-streams", + "dep:pallet-payment-streams-runtime-api", + "dep:pallet-proofs-dealer", + "dep:pallet-proofs-dealer-runtime-api", + "dep:pallet-randomness", + "dep:pallet-storage-providers", + "dep:pallet-storage-providers-runtime-api", + "dep:shp-constants", + "dep:shp-file-metadata", + "dep:shp-traits", + "dep:shp-treasury-funding", + "dep:shp-forest-verifier", + "dep:shp-file-key-verifier", + "dep:shp-data-price-updater", + "dep:sp-trie" + ] default = ["std"] std = [ "codec/std", @@ -214,6 +261,33 @@ std = [ "pallet-external-validators-rewards/std", "pallet-external-validators-rewards-runtime-api/std", "pallet-datahaven-native-transfer/std", + + # StorageHub + "pallet-authorship/std", + "pallet-balances/std", + "pallet-bucket-nfts/std", + "pallet-nfts/std", + "pallet-cr-randomness/std", + "pallet-file-system/std", + "pallet-file-system-runtime-api/std", + "pallet-payment-streams/std", + "pallet-payment-streams-runtime-api/std", + "pallet-proofs-dealer/std", + "pallet-proofs-dealer-runtime-api/std", + "pallet-randomness/std", + "pallet-session/std", + "pallet-storage-providers/std", + "pallet-storage-providers-runtime-api/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "shp-constants/std", + "shp-file-metadata/std", + "shp-forest-verifier/std", + "shp-traits/std", + "shp-treasury-funding/std", + "shp-file-key-verifier/std", ] runtime-benchmarks = [ diff --git a/operator/runtime/testnet/src/configs/mod.rs b/operator/runtime/testnet/src/configs/mod.rs index 8a4dbcd2f..01d620aae 100644 --- a/operator/runtime/testnet/src/configs/mod.rs +++ b/operator/runtime/testnet/src/configs/mod.rs @@ -22,6 +22,8 @@ // OTHER DEALINGS IN THE SOFTWARE. // // For more information, please refer to +#[cfg(feature = "storage-hub")] +mod storagehub; pub mod runtime_params; diff --git a/operator/runtime/testnet/src/configs/runtime_params.rs b/operator/runtime/testnet/src/configs/runtime_params.rs index e2978d999..9cb3c457e 100644 --- a/operator/runtime/testnet/src/configs/runtime_params.rs +++ b/operator/runtime/testnet/src/configs/runtime_params.rs @@ -6,7 +6,17 @@ use sp_std::vec; use crate::Runtime; +#[cfg(feature = "storage-hub")] +use crate::currency::{GIGAWEI, HAVE}; + +#[cfg(feature = "storage-hub")] +use crate::configs::storagehub::{ChallengeTicksTolerance, ReplicationTargetType, SpMinDeposit}; + +#[cfg(feature = "storage-hub")] +use datahaven_runtime_common::{Balance, BlockNumber}; + #[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +#[cfg(not(feature = "storage-hub"))] pub mod dynamic_params { use super::*; #[dynamic_pallet_params] @@ -51,6 +61,314 @@ pub mod dynamic_params { } } +#[cfg(feature = "storage-hub")] +#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +pub mod dynamic_params { + use super::*; + #[dynamic_pallet_params] + #[codec(index = 0)] + pub mod runtime_config { + + use super::*; + + #[codec(index = 0)] + #[allow(non_upper_case_globals)] + /// Set the initial address of the Snowbridge Gateway contract on Ethereum. + /// The fact that this is a parameter means that we can set it initially to the zero address, + /// and then change it later via governance, to the actual address of the deployed contract. + pub static EthereumGatewayAddress: H160 = H160::repeat_byte(0x0); + + #[codec(index = 1)] + #[allow(non_upper_case_globals)] + /// Set the initial address of the Rewards Registry contract on Ethereum. + /// The fact that this is a parameter means that we can set it initially to the zero address, + /// and then change it later via governance, to the actual address of the deployed contract. + pub static RewardsRegistryAddress: H160 = H160::repeat_byte(0x0); + + #[codec(index = 2)] + #[allow(non_upper_case_globals)] + /// The Selector is the first 4 bytes of the keccak256 hash of the function signature("updateRewardsMerkleRoot(bytes32)") + pub static RewardsUpdateSelector: BoundedVec> = + BoundedVec::truncate_from(vec![0xdc, 0x3d, 0x04, 0xec]); + + #[codec(index = 3)] + #[allow(non_upper_case_globals)] + /// The RewardsAgentOrigin is the hash of the string "external_validators_rewards" + /// TODO: Decide which agent origin we want to use. Currently for testing it's the zero hash + pub static RewardsAgentOrigin: H256 = H256::from_slice(&hex!( + "c505dfb2df107d106d08bd0f1a0acd10052ca9aa078629a4ccfd0c90c6e69b65" + )); + + // Proportion of fees allocated to the Treasury (remainder are burned). + // e.g. 20% to the treasury, 80% burned. + #[codec(index = 4)] + #[allow(non_upper_case_globals)] + pub static FeesTreasuryProportion: Perbill = Perbill::from_percent(20); + + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ + + #[codec(index = 5)] + #[allow(non_upper_case_globals)] + /// 20 HAVEs + pub static SlashAmountPerMaxFileSize: Balance = 20 * HAVE; + + #[codec(index = 6)] + #[allow(non_upper_case_globals)] + /// 10k HAVEs * [`MinChallengePeriod`] = 10k HAVEs * 30 = 300k HAVEs + /// + /// This can be interpreted as "a Provider with 10k HAVEs of stake would get the minimum challenge period". + pub static StakeToChallengePeriod: Balance = + 10_000 * HAVE * Into::::into(MinChallengePeriod::get()); + + #[codec(index = 7)] + #[allow(non_upper_case_globals)] + /// The [`CheckpointChallengePeriod`] is set to be equal to the longest possible challenge period + /// (i.e. the [`StakeToChallengePeriod`] divided by the [`SpMinDeposit`]). + /// + // 300k HAVEs / 100 HAVEs + 50 + 1 = ~3k ticks (i.e. ~5 hours with 6 seconds per tick) + pub static CheckpointChallengePeriod: BlockNumber = (StakeToChallengePeriod::get() + / SpMinDeposit::get()).saturating_add(ChallengeTicksTolerance::get() as u128).saturating_add(1) + .try_into() + .expect( + "StakeToChallengePeriod / SpMinDeposit should be a number of ticks that can fit in BlockNumber numerical type", + ); + + #[codec(index = 8)] + #[allow(non_upper_case_globals)] + /// 30 ticks, or 3 minutes with 6 seconds per tick. + pub static MinChallengePeriod: BlockNumber = 30; + + #[codec(index = 9)] + #[allow(non_upper_case_globals)] + /// Price decreases when system utilisation is below 30%. + pub static SystemUtilisationLowerThresholdPercentage: Perbill = Perbill::from_percent(30); + + #[codec(index = 10)] + #[allow(non_upper_case_globals)] + /// Price increases when system utilisation is above 95%. + pub static SystemUtilisationUpperThresholdPercentage: Perbill = Perbill::from_percent(95); + + #[codec(index = 11)] + #[allow(non_upper_case_globals)] + /// 50 [`GIGAWEI`]s is the price per GB of data, per tick. + /// + /// With 6 seconds per tick, this means that over a month, the price of 1 GB is: + /// 50e-9 [`HAVE`]s * 10 ticks/min * 60 min/h * 24 h/day * 30 days/month = 21.6e-3 [`HAVE`]s + pub static MostlyStablePrice: Balance = 50 * GIGAWEI; + + #[codec(index = 12)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] * 10 = 500 [`GIGAWEI`]s + pub static MaxPrice: Balance = MostlyStablePrice::get() * 10; + + #[codec(index = 13)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] / 5 = 10 [`GIGAWEI`]s + pub static MinPrice: Balance = MostlyStablePrice::get() / 5; + + #[codec(index = 14)] + #[allow(non_upper_case_globals)] + /// u = [`UpperExponentFactor`] + /// system_utilisation = 1 + /// + /// [`MaxPrice`] = [`MostlyStablePrice`] + u * e ^ ( 1 - [`SystemUtilisationUpperThresholdPercentage`] ) + /// + /// 500 = 50 + u * (e ^ (1 - 0.95) - 1) + /// u = (500 - 50) / (e ^ (1 - 0.95) - 1) ≈ 8777 + pub static UpperExponentFactor: u32 = 8777; + + #[codec(index = 15)] + #[allow(non_upper_case_globals)] + /// l = [`LowerExponentFactor`] + /// system_utilisation = 0 + /// + /// [`MinPrice`] = [`MostlyStablePrice`] - u * e ^ ( [`SystemUtilisationLowerThresholdPercentage`] - 0 ) + /// + /// 10 = 50 - l * (e ^ (0.3 - 0) - 1) + /// l = (50 - 10) / (e ^ (0.3 - 0) - 1) ≈ 114 + pub static LowerExponentFactor: u32 = 114; + + #[codec(index = 16)] + #[allow(non_upper_case_globals)] + /// 0-size bucket fixed rate payment stream representing the price for 1 GB of data. + /// + /// Base rate for a new fixed payment stream established between an MSP and a user. + pub static ZeroSizeBucketFixedRate: Balance = 50 * GIGAWEI; + + #[codec(index = 17)] + #[allow(non_upper_case_globals)] + /// Ideal utilisation rate of the system + pub static IdealUtilisationRate: Perbill = Perbill::from_percent(85); + + #[codec(index = 18)] + #[allow(non_upper_case_globals)] + /// Decay rate of the power of two function that determines the percentage of funds that go to + /// the treasury for utilisation rates greater than the ideal. + pub static DecayRate: Perbill = Perbill::from_percent(5); + + #[codec(index = 19)] + #[allow(non_upper_case_globals)] + /// The minimum treasury cut that can be taken from the amount charged from a payment stream. + pub static MinimumTreasuryCut: Perbill = Perbill::from_percent(1); + + #[codec(index = 20)] + #[allow(non_upper_case_globals)] + /// The maximum treasury cut that can be taken from the amount charged from a payment stream. + pub static MaximumTreasuryCut: Perbill = Perbill::from_percent(5); + + #[codec(index = 21)] + #[allow(non_upper_case_globals)] + /// The penalty a BSP must pay when they forcefully stop storing a file. + /// We set this to be half of the `SlashAmountPerMaxFileSize` with the rationale that + /// for a BSP that has lost this file, it should be more convenient to voluntarily + /// show up and pay this penalty in good faith, rather than risking being slashed for + /// being unable to submit a proof that should include this file. + pub static BspStopStoringFilePenalty: Balance = SlashAmountPerMaxFileSize::get() / 2; + + /// Time-to-live for a provider to top up their deposit to cover a capacity deficit. + /// Set to 14_400 relay blocks = 1 day with 6 second timeslots. + #[codec(index = 22)] + #[allow(non_upper_case_globals)] + pub static ProviderTopUpTtl: BlockNumber = 14_400; + + /// The following parameters are the replication targets for the different security levels + /// that a storage request (and thus the file it represents) can have. + /// + /// These are associated with the probability that a malicious actor could hold the file hostage by controlling + /// all BSPs that volunteered and confirmed storing it. + /// The values were calculated from the probabilities derived using binomial distribution calculations, + /// where the total number of BSPs is set to 1000, the fraction of malicious BSPs is 1/3, and the target number of BSPs + /// is incremented until the probability of all selected BSPs being malicious falls below the required percentage. + /// + /// The formula used is: + /// num_bsps = 1000 + /// fraction_evil = 1/3 + /// n_evil = int(num_bsps * fraction_evil) // = 333 + /// target = range(1, num_bsps) + /// p_init = target / num_bsps + /// prob = binomial_cdf_at_least(n_evil, target, p_init) + /// + /// This ensures that the replication targets were selected optimally to balance security and storage efficiency. + /// -------------------------------------------------------------------------------------------------------------------- + /// The amount of BSPs that a basic security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~1%. + #[codec(index = 23)] + #[allow(non_upper_case_globals)] + pub static BasicReplicationTarget: ReplicationTargetType = 7; + + /// The amount of BSPs that a standard security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.1%. + #[codec(index = 24)] + #[allow(non_upper_case_globals)] + pub static StandardReplicationTarget: ReplicationTargetType = 12; + + /// The amount of BSPs that a high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.01%. + #[codec(index = 25)] + #[allow(non_upper_case_globals)] + pub static HighSecurityReplicationTarget: ReplicationTargetType = 17; + + /// The amount of BSPs that a super high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.001%. + #[codec(index = 26)] + #[allow(non_upper_case_globals)] + pub static SuperHighSecurityReplicationTarget: ReplicationTargetType = 22; + + /// The amount of BSPs that an ultra high security storage request should use as the replication target. + /// + /// This must be the lowest amount of BSPs that guarantee that the probability that a malicious + /// actor controlling 1/3 of the BSPs can hold the file hostage by controlling all its + /// volunteered BSPs is ~0.0001%. + #[codec(index = 27)] + #[allow(non_upper_case_globals)] + pub static UltraHighSecurityReplicationTarget: ReplicationTargetType = 26; + + /// The maximum amount of BSPs that a user can require a storage request to use as the replication target. + /// + /// This is a safety measure to prevent users from issuing storage requests that are too large and would + /// require a large number of BSPs to store the file. + #[codec(index = 28)] + #[allow(non_upper_case_globals)] + pub static MaxReplicationTarget: ReplicationTargetType = + UltraHighSecurityReplicationTarget::get() + .saturating_mul(150) + .saturating_div(100); + + /// The amount of ticks that have to pass for the threshold to volunteer for a specific storage request + /// to arrive at its maximum value. + /// + /// This is big enough so volunteering for a storage request is not open to everyone inmediatly, preventing + /// a select few BSPs from taking all the requests, while small enough so that storage requests don't take + /// too long to be filled. + #[codec(index = 29)] + #[allow(non_upper_case_globals)] + pub static TickRangeToMaximumThreshold: BlockNumber = 3600; // 6 hours with a 6 second block time + + /// The amount of ticks after which a storage request is considered expired and can be removed from storage. + /// + /// It's a function of the TickRangeToMaximumThreshold since it does not make sense for a storage request to + /// expire before arriving at its maximum threshold for volunteering. + #[codec(index = 30)] + #[allow(non_upper_case_globals)] + pub static StorageRequestTtl: BlockNumber = TickRangeToMaximumThreshold::get() + .saturating_mul(110) + .saturating_div(100); + + /// The minimum amount of ticks between a stop storing request from a BSP and that BSP being able to + /// confirm to stop storing that file key. + /// + /// It's a function of the checkpoint challenge period since this makes it so BSPs can't avoid checkpoint + /// challenges by stopping storing a file key right before the challenge period ends in case they lost it. + #[codec(index = 31)] + #[allow(non_upper_case_globals)] + pub static MinWaitForStopStoring: BlockNumber = CheckpointChallengePeriod::get() + .saturating_mul(110) + .saturating_div(100); + + #[codec(index = 32)] + #[allow(non_upper_case_globals)] + /// 20 ticks, or 2 minutes with 6 seconds per tick. + pub static MinSeedPeriod: BlockNumber = 20; + + #[codec(index = 33)] + #[allow(non_upper_case_globals)] + /// 10k HAVEs * [`MinSeedPeriod`] = 10k HAVEs * 20 = 200k HAVEs + /// + /// This can be interpreted as "a Provider with 10k HAVEs of stake would get the minimum seed period". + pub static StakeToSeedPeriod: Balance = + 10_000 * HAVE * Into::::into(MinSeedPeriod::get()); + + #[codec(index = 34)] + #[allow(non_upper_case_globals)] + /// The amount of ticks to charge a user upfront when it tries to issue a new storage request. + /// This is done as a deterrent to avoid users spamming the network with huge files but never + /// actually planning to store them longterm. + /// + /// 72k ticks = 5 days with 6 seconds per tick. + /// This means that a user must pay for 5 days of storage upfront, which gets transferred to the + /// treasury. Governance can then decide what to do with the accumulated funds. + /// + /// With a stable price (defined as `MostlyStablePrice` in this file) of 50 GIGAWEIs per gigabyte + /// per tick and a standard replication target (`StandardReplicationTarget`) of 12 BSPs, the upfront + /// cost for the user to issue a storage request for a 1 GB file would be: + /// 50 GIGAWEIs per gigabyte per tick * 12 BSPs * 72k ticks * 1 GB = 0.0432 HAVEs + pub static UpfrontTicksToPay: BlockNumber = 72_000; + // ╚══════════════════════ StorageHub Pallets ═══════════════════════╝ + } +} + #[cfg(feature = "runtime-benchmarks")] impl Default for RuntimeParameters { fn default() -> Self { diff --git a/operator/runtime/testnet/src/configs/storagehub/mod.rs b/operator/runtime/testnet/src/configs/storagehub/mod.rs new file mode 100644 index 000000000..636393e87 --- /dev/null +++ b/operator/runtime/testnet/src/configs/storagehub/mod.rs @@ -0,0 +1,610 @@ +use super::{ + AccountId, Balance, Balances, BlockNumber, Hash, RuntimeEvent, RuntimeHoldReason, HAVE, +}; +use crate::configs::runtime_params::dynamic_params::runtime_config; +use crate::{ + BucketNfts, Nfts, PaymentStreams, ProofsDealer, Providers, Runtime, Signature, WeightToFee, + HOURS, +}; +use core::marker::PhantomData; +use datahaven_runtime_common::time::{DAYS, MINUTES}; +use frame_support::pallet_prelude::DispatchClass; +use frame_support::traits::AsEnsureOriginWithArg; +use frame_support::{ + parameter_types, + traits::{ConstU128, ConstU32, ConstU64}, + weights::Weight, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use frame_system::EnsureRoot; +use frame_system::EnsureSigned; +use num_bigint::BigUint; +use pallet_nfts::PalletFeatures; +use polkadot_runtime_common::prod_or_fast; +use shp_data_price_updater::{MostlyStablePriceIndexUpdater, MostlyStablePriceIndexUpdaterConfig}; +use shp_file_key_verifier::FileKeyVerifier; +use shp_file_metadata::{ChunkId, FileMetadata}; +use shp_forest_verifier::ForestVerifier; +use shp_treasury_funding::{ + LinearThenPowerOfTwoTreasuryCutCalculator, LinearThenPowerOfTwoTreasuryCutCalculatorConfig, +}; +use sp_core::Get; +use sp_core::Hasher; +use sp_core::H256; +use sp_runtime::traits::Convert; +use sp_runtime::traits::ConvertBack; +use sp_runtime::traits::Verify; +use sp_runtime::traits::Zero; +use sp_runtime::SaturatedConversion; +use sp_runtime::{traits::BlakeTwo256, Perbill}; +use sp_std::convert::{From, Into}; +use sp_std::vec; +use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; + +/// Type representing the storage data units in StorageHub. +pub type StorageDataUnit = u64; + +pub type StorageProofsMerkleTrieLayout = LayoutV1; + +pub type Hashing = BlakeTwo256; + +// TODO: remove this and replace with pallet treasury +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + AccountId::from([0; 32]) + } +} + +/****** NFTs pallet ******/ +parameter_types! { + pub const CollectionDeposit: Balance = 100 * HAVE; + pub const ItemDeposit: Balance = 1 * HAVE; + pub const MetadataDepositBase: Balance = 10 * HAVE; + pub const MetadataDepositPerByte: Balance = 1 * HAVE; + pub const ApprovalsLimit: u32 = 20; + pub const ItemAttributesApprovalsLimit: u32 = 20; + pub const MaxTips: u32 = 10; + pub const MaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + pub const MaxAttributesPerCall: u32 = 10; + pub Features: PalletFeatures = PalletFeatures::all_enabled(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type CollectionDeposit = CollectionDeposit; + type ItemDeposit = ItemDeposit; + type MetadataDepositBase = MetadataDepositBase; + type AttributeDepositBase = MetadataDepositBase; + type DepositPerByte = MetadataDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ApprovalsLimit; + type ItemAttributesApprovalsLimit = ItemAttributesApprovalsLimit; + type MaxTips = MaxTips; + type MaxDeadlineDuration = MaxDeadlineDuration; + type MaxAttributesPerCall = MaxAttributesPerCall; + type Features = Features; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = pallet_nfts::weights::SubstrateWeight; + type Locker = (); +} +/****** ****** ****** ******/ + +/****** Relay Randomness pallet ******/ +impl pallet_randomness::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type BabeDataGetter = BabeDataGetter; + type BabeBlockGetter = BlockNumberGetter; + type WeightInfo = (); + type BabeDataGetterBlockNumber = BlockNumber; +} + +pub struct BabeDataGetter; +impl pallet_randomness::GetBabeData for BabeDataGetter { + fn get_epoch_index() -> u64 { + todo!("implement `get_epoch_index`"); + } + fn get_epoch_randomness() -> Hash { + todo!("implement `get_epoch_randomness`"); + } + fn get_parent_randomness() -> Hash { + todo!("implement `get_parent_randomness`"); + } +} + +pub struct BlockNumberGetter {} +impl sp_runtime::traits::BlockNumberProvider for BlockNumberGetter { + type BlockNumber = BlockNumber; + + fn current_block_number() -> Self::BlockNumber { + frame_system::Pallet::::block_number() + } +} + +/****** ****** ****** ******/ + +/****** Storage Providers pallet ******/ +parameter_types! { + pub const SpMinDeposit: Balance = 100 * HAVE; + pub const BucketDeposit: Balance = 100 * HAVE; + pub const BspSignUpLockPeriod: BlockNumber = 90 * DAYS; // ~3 months + pub const MaxBlocksForRandomness: BlockNumber = prod_or_fast!(2 * HOURS, 2 * MINUTES); + // TODO: If the next line is uncommented (which should be eventually, replacing the line above), compilation breaks (most likely because of mismatched dependency issues) + // pub const MaxBlocksForRandomness: BlockNumber = prod_or_fast!(2 * runtime_constants::time::EPOCH_DURATION_IN_SLOTS, 2 * MINUTES); +} + +impl pallet_storage_providers::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_storage_providers::weights::SubstrateWeight; + type ProvidersRandomness = pallet_randomness::RandomnessFromOneEpochAgo; + type PaymentStreams = PaymentStreams; + type ProofDealer = ProofsDealer; + type FileMetadataManager = FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type NativeBalance = Balances; + type CrRandomness = MockCrRandomness; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = StorageDataUnit; + type StorageDataUnitAndBalanceConvert = StorageDataUnitAndBalanceConverter; + type SpCount = u32; + type BucketCount = u128; + type MerklePatriciaRoot = Hash; + type MerkleTrieHashing = Hashing; + type ProviderId = Hash; + type ProviderIdHashing = Hashing; + type ValuePropId = Hash; + type ValuePropIdHashing = Hashing; + type ReadAccessGroupId = ::CollectionId; + type ProvidersProofSubmitters = ProofsDealer; + type ReputationWeightType = u32; + type StorageHubTickGetter = ProofsDealer; + type Treasury = TreasuryAccount; + type SpMinDeposit = SpMinDeposit; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = ConstU32<100>; + type MaxMultiAddressAmount = ConstU32<5>; + type MaxProtocols = ConstU32<100>; + type BucketDeposit = BucketDeposit; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = MaxBlocksForRandomness; + type MinBlocksBetweenCapacityChanges = ConstU32<10>; + type DefaultMerkleRoot = DefaultMerkleRoot; + type SlashAmountPerMaxFileSize = runtime_config::SlashAmountPerMaxFileSize; + type StartingReputationWeight = ConstU32<1>; + type BspSignUpLockPeriod = BspSignUpLockPeriod; + type MaxCommitmentSize = ConstU32<1000>; + type ZeroSizeBucketFixedRate = runtime_config::ZeroSizeBucketFixedRate; + type ProviderTopUpTtl = runtime_config::ProviderTopUpTtl; + type MaxExpiredItemsInBlock = ConstU32<100>; +} + +pub struct StorageDataUnitAndBalanceConverter; +impl Convert for StorageDataUnitAndBalanceConverter { + fn convert(data_unit: StorageDataUnit) -> Balance { + data_unit.saturated_into() + } +} +impl ConvertBack for StorageDataUnitAndBalanceConverter { + fn convert_back(balance: Balance) -> StorageDataUnit { + balance.saturated_into() + } +} + +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +/****** ****** ****** ******/ + +/****** Payment Streams pallet ******/ +parameter_types! { + pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); + pub const UserWithoutFundsCooldown: BlockNumber = 100; +} + +impl pallet_payment_streams::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_payment_streams::weights::SubstrateWeight; + type NativeBalance = Balances; + type ProvidersPallet = Providers; + type RuntimeHoldReason = RuntimeHoldReason; + type UserWithoutFundsCooldown = UserWithoutFundsCooldown; // Amount of blocks that a user will have to wait before being able to clear the out of funds flag + type NewStreamDeposit = ConstU32<10>; // Amount of blocks that the deposit of a new stream should be able to pay for + type Units = StorageDataUnit; // Storage unit + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = ProofsDealer; + type TreasuryCutCalculator = LinearThenPowerOfTwoTreasuryCutCalculator; + type TreasuryAccount = TreasuryAccount; + type MaxUsersToCharge = ConstU32<10>; + type BaseDeposit = ConstU128<10>; +} + +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert for BlockNumberToBalance { + fn convert(block_number: BlockNumber) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +impl LinearThenPowerOfTwoTreasuryCutCalculatorConfig for Runtime { + type Balance = Balance; + type ProvidedUnit = StorageDataUnit; + type IdealUtilisationRate = runtime_config::IdealUtilisationRate; + type DecayRate = runtime_config::DecayRate; + type MinimumCut = runtime_config::MinimumTreasuryCut; + type MaximumCut = runtime_config::MaximumTreasuryCut; +} +/****** ****** ****** ******/ + +/****** Proofs Dealer pallet ******/ +const RANDOM_CHALLENGES_PER_BLOCK: u32 = 10; +const MAX_CUSTOM_CHALLENGES_PER_BLOCK: u32 = 10; +const TOTAL_MAX_CHALLENGES_PER_BLOCK: u32 = + RANDOM_CHALLENGES_PER_BLOCK + MAX_CUSTOM_CHALLENGES_PER_BLOCK; + +parameter_types! { + pub const RandomChallengesPerBlock: u32 = RANDOM_CHALLENGES_PER_BLOCK; + pub const MaxCustomChallengesPerBlock: u32 = MAX_CUSTOM_CHALLENGES_PER_BLOCK; + pub const TotalMaxChallengesPerBlock: u32 = TOTAL_MAX_CHALLENGES_PER_BLOCK; + pub const TargetTicksStorageOfSubmitters: u32 = 3; + pub const ChallengeHistoryLength: BlockNumber = 100; + pub const ChallengesQueueLength: u32 = 100; + pub const ChallengesFee: Balance = 1 * HAVE; + pub const ChallengeTicksTolerance: u32 = 50; +} + +impl pallet_proofs_dealer::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_proofs_dealer::weights::SubstrateWeight; + type ProvidersPallet = Providers; + type NativeBalance = Balances; + type MerkleTrieHash = Hash; + type MerkleTrieHashing = BlakeTwo256; + type ForestVerifier = ForestVerifier; + type KeyVerifier = FileKeyVerifier< + StorageProofsMerkleTrieLayout, + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type StakeToBlockNumber = SaturatingBalanceToBlockNumber; + type RandomChallengesPerBlock = RandomChallengesPerBlock; + type MaxCustomChallengesPerBlock = MaxCustomChallengesPerBlock; + type MaxSubmittersPerTick = MaxSubmittersPerTick; + type TargetTicksStorageOfSubmitters = TargetTicksStorageOfSubmitters; + type ChallengeHistoryLength = ChallengeHistoryLength; + type ChallengesQueueLength = ChallengesQueueLength; + type CheckpointChallengePeriod = runtime_config::CheckpointChallengePeriod; + type ChallengesFee = ChallengesFee; + type Treasury = TreasuryAccount; + // TODO: Once the client logic to keep track of CR randomness deadlines and execute their submissions is implemented + // AND after the chain has been live for enough time to have enough providers to avoid the commit-reveal randomness being + // gameable, the randomness provider should be CrRandomness + type RandomnessProvider = pallet_randomness::ParentBlockRandomness; + type StakeToChallengePeriod = runtime_config::StakeToChallengePeriod; + type MinChallengePeriod = runtime_config::MinChallengePeriod; + type ChallengeTicksTolerance = ChallengeTicksTolerance; + type BlockFullnessPeriod = ChallengeTicksTolerance; // We purposely set this to `ChallengeTicksTolerance` so that spamming of the chain is evaluated for the same blocks as the tolerance BSPs are given. + type BlockFullnessHeadroom = BlockFullnessHeadroom; + type MinNotFullBlocksRatio = MinNotFullBlocksRatio; + type MaxSlashableProvidersPerTick = MaxSlashableProvidersPerTick; +} + +// Converter from the Balance type to the BlockNumber type for math. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct SaturatingBalanceToBlockNumber; +impl Convert> for SaturatingBalanceToBlockNumber { + fn convert(block_number: Balance) -> BlockNumberFor { + block_number.saturated_into() + } +} + +pub struct MaxSubmittersPerTick; +impl Get for MaxSubmittersPerTick { + fn get() -> u32 { + let block_weights = ::BlockWeights::get(); + + // Not being able to get the `max_total` weight for the Normal dispatch class is considered + // a critical bug. So we set it to be zero, essentially allowing zero submitters per tick. + // This value can be read from the constants of a node, but with the current configuration, this is: + // + // max_total: { + // ref_time: 1,500,000,000,000 + // proof_size: 3,932,160 + // } + let max_weight_for_class = block_weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(Zero::zero()); + + // Get the minimum weight a `submit_proof` extrinsic can have. + // This would be the case where the proof is just made up of a single file key proof, that is a + // response to all the random challenges. And there are no checkpoint challenges. + // With the current benchmarking, this is: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // min_weight_for_submit_proof: { + // ref_time: 2,980,252,675 + // proof_size: 16,056 + // } + let min_weight_for_submit_proof = + as pallet_proofs_dealer::weights::WeightInfo>::submit_proof_no_checkpoint_challenges_key_proofs(1); + + // Calculate the maximum number of submit proofs that is possible to have in a block/tick. + // With the current values, this would be: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // 244 proof submissions per block (limited by `proof_size`) + let max_proof_submissions_per_tick = max_weight_for_class + .checked_div_per_component(&min_weight_for_submit_proof) + .unwrap_or(0); + + // Saturating u64 to u32 should be enough. + max_proof_submissions_per_tick.saturated_into() + } +} + +pub struct BlockFullnessHeadroom; +impl Get for BlockFullnessHeadroom { + fn get() -> Weight { + // The block headroom is set to be the maximum benchmarked weight that a `submit_proof` extrinsic can have. + // That is, when the proof includes two file key proofs for every single random challenge, and for the maximum + // number of checkpoint challenges as well. + as pallet_proofs_dealer::weights::WeightInfo>::submit_proof_with_checkpoint_challenges_key_proofs(TOTAL_MAX_CHALLENGES_PER_BLOCK * 2) + } +} + +pub struct MinNotFullBlocksRatio; +impl Get for MinNotFullBlocksRatio { + fn get() -> Perbill { + // This means that we tolerate at most 50% of misbehaving collators. + Perbill::from_percent(50) + } +} + +pub struct MaxSlashableProvidersPerTick; +impl Get for MaxSlashableProvidersPerTick { + fn get() -> u32 { + // With the maximum number of slashable providers per tick being `N`, the absolute maximum + // weight that the `on_poll` hook can have, with the current benchmarking, is: + // + // TODO: UPDATE THIS WITH THE FINAL BENCHMARKING + // new_challenges_round_weight: { + // ref_time: 576,000,000 + N * 551,601,146 + // proof_size: 8,523 + N * 3,158 + // } + // new_checkpoint_challenge_round_max_weight: { + // ref_time: 587,205,208 + ChallengesQueueLength * 225,083 = 610,554,678 + // proof_size: 4,787 + // } + // check_spamming_condition_weight: { + // ref_time: 313,000,000 + // proof_size: 6,012 + // } + // + // For `N` = 1000, this would be: + // max_on_poll_weight: { + // ref_time: 313,000,000 + 610,554,678 + 576,000,000 + N * 551,601,146 ≈ 553,100,700,678 + // proof_size: 6,012 + 4,787 + 8,523 + N * 3,158 ≈ 3,177,322 + // } + // + // Consider that the maximum block weight is: + // maxBlock: { + // ref_time: 2,000,000,000,000 + // proof_size: 5,242,880 + // } + // + // This `on_poll` hook would consume roughly 1/4 of the block `ref_time` and 3/5 of the block `proof_size`. + // This is naturally a lot. But it would be a very unlikely scenario. + // + // This would be the case where all `N` Providers have synchronised their challenge periods + // and have the same deadline, plus, all of them missed their proof submissions. + // The normal scenario would be that NONE (or just a small number) of the Providers have + // missed their proof submissions. + let max_slashable_providers_per_tick = 1000; + max_slashable_providers_per_tick + } +} +/****** ****** ****** ******/ + +/****** File System pallet ******/ +type ThresholdType = u32; +pub type ReplicationTargetType = u32; + +parameter_types! { + pub const BaseStorageRequestCreationDeposit: Balance = 1 * HAVE; + pub const FileDeletionRequestCreationDeposit: Balance = 1 * HAVE; + pub const FileSystemStorageRequestCreationHoldReason: RuntimeHoldReason = RuntimeHoldReason::FileSystem(pallet_file_system::HoldReason::StorageRequestCreationHold); + pub const FileSystemFileDeletionRequestHoldReason: RuntimeHoldReason = RuntimeHoldReason::FileSystem(pallet_file_system::HoldReason::FileDeletionRequestHold); +} + +impl pallet_file_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_file_system::weights::SubstrateWeight; + type Providers = Providers; + type ProofDealer = ProofsDealer; + type PaymentStreams = PaymentStreams; + // TODO: Replace the mocked CR randomness with the actual one when it's ready + // type CrRandomness = CrRandomness; + type CrRandomness = MockCrRandomness; + type UpdateStoragePrice = MostlyStablePriceIndexUpdater; + type UserSolvency = PaymentStreams; + type Fingerprint = Hash; + type ReplicationTargetType = ReplicationTargetType; + type ThresholdType = ThresholdType; + type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; + type HashToThresholdType = HashToThresholdTypeConverter; + type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; + type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; + type Currency = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type Nfts = Nfts; + type CollectionInspector = BucketNfts; + type BspStopStoringFilePenalty = runtime_config::BspStopStoringFilePenalty; + type TreasuryAccount = TreasuryAccount; + type MaxBatchConfirmStorageRequests = ConstU32<10>; + type MaxFilePathSize = ConstU32<512u32>; + type MaxPeerIdSize = ConstU32<100>; + type MaxNumberOfPeerIds = ConstU32<5>; + type MaxDataServerMultiAddresses = ConstU32<10>; + type MaxExpiredItemsInTick = ConstU32<100>; + type StorageRequestTtl = runtime_config::StorageRequestTtl; + type MoveBucketRequestTtl = ConstU32<40u32>; + type MaxUserPendingDeletionRequests = ConstU32<10u32>; + type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; + type MinWaitForStopStoring = runtime_config::MinWaitForStopStoring; + type BaseStorageRequestCreationDeposit = BaseStorageRequestCreationDeposit; + type UpfrontTicksToPay = runtime_config::UpfrontTicksToPay; + type WeightToFee = WeightToFee; + type ReplicationTargetToBalance = ReplicationTargetToBalance; + type TickNumberToBalance = TickNumberToBalance; + type StorageDataUnitToBalance = StorageDataUnitToBalance; + type FileDeletionRequestDeposit = FileDeletionRequestCreationDeposit; + type BasicReplicationTarget = runtime_config::BasicReplicationTarget; + type StandardReplicationTarget = runtime_config::StandardReplicationTarget; + type HighSecurityReplicationTarget = runtime_config::HighSecurityReplicationTarget; + type SuperHighSecurityReplicationTarget = runtime_config::SuperHighSecurityReplicationTarget; + type UltraHighSecurityReplicationTarget = runtime_config::UltraHighSecurityReplicationTarget; + type MaxReplicationTarget = runtime_config::MaxReplicationTarget; + type TickRangeToMaximumThreshold = runtime_config::TickRangeToMaximumThreshold; +} + +impl MostlyStablePriceIndexUpdaterConfig for Runtime { + type Price = Balance; + type StorageDataUnit = StorageDataUnit; + type LowerThreshold = runtime_config::SystemUtilisationLowerThresholdPercentage; + type UpperThreshold = runtime_config::SystemUtilisationUpperThresholdPercentage; + type MostlyStablePrice = runtime_config::MostlyStablePrice; + type MaxPrice = runtime_config::MaxPrice; + type MinPrice = runtime_config::MinPrice; + type UpperExponentFactor = runtime_config::UpperExponentFactor; + type LowerExponentFactor = runtime_config::LowerExponentFactor; +} + +// Converter from the ThresholdType to the BlockNumber type and vice versa. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct ThresholdTypeToBlockNumberConverter; +impl Convert> for ThresholdTypeToBlockNumberConverter { + fn convert(threshold: ThresholdType) -> BlockNumberFor { + threshold.saturated_into() + } +} + +impl ConvertBack> for ThresholdTypeToBlockNumberConverter { + fn convert_back(block_number: BlockNumberFor) -> ThresholdType { + block_number.into() + } +} + +/// Converter from the [`Hash`] type to the [`ThresholdType`]. +pub struct HashToThresholdTypeConverter; +impl Convert<::Hash, ThresholdType> + for HashToThresholdTypeConverter +{ + fn convert(hash: ::Hash) -> ThresholdType { + // Get the hash as bytes + let hash_bytes = hash.as_ref(); + + // Get the 4 least significant bytes of the hash and interpret them as an u32 + let truncated_hash_bytes: [u8; 4] = + hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); + + ThresholdType::from_be_bytes(truncated_hash_bytes) + } +} + +// Converter from the MerkleHash (H256) type to the RandomnessOutput (H256) type. +pub struct MerkleHashToRandomnessOutputConverter; +impl Convert for MerkleHashToRandomnessOutputConverter { + fn convert(hash: H256) -> H256 { + hash + } +} + +// Converter from the ChunkId type to the MerkleHash (H256) type. +pub struct ChunkIdToMerkleHashConverter; + +impl Convert for ChunkIdToMerkleHashConverter { + fn convert(chunk_id: ChunkId) -> H256 { + let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); + let mut bytes = chunk_id_biguint.to_bytes_be(); + + // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros + if bytes.len() < 32 { + let mut padded_bytes = vec![0u8; 32 - bytes.len()]; + padded_bytes.extend(bytes); + bytes = padded_bytes; + } + + H256::from_slice(&bytes) + } +} + +// Converter from the ReplicationTargetType type to the Balance type. +pub struct ReplicationTargetToBalance; +impl Convert for ReplicationTargetToBalance { + fn convert(replication_target: ReplicationTargetType) -> Balance { + replication_target.into() + } +} + +// Converter from the TickNumber type to the Balance type. +pub type TickNumber = BlockNumber; +pub struct TickNumberToBalance; +impl Convert for TickNumberToBalance { + fn convert(tick_number: TickNumber) -> Balance { + tick_number.into() + } +} + +// Converter from the StorageDataUnit type to the Balance type. +pub struct StorageDataUnitToBalance; +impl Convert for StorageDataUnitToBalance { + fn convert(storage_data_unit: StorageDataUnit) -> Balance { + storage_data_unit.into() + } +} +/****** ****** ****** ******/ + +/****** Bucket NFTs pallet ******/ +impl pallet_bucket_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_bucket_nfts::weights::SubstrateWeight; + type Buckets = Providers; +} +/****** ****** ****** ******/ + +/****** Commit-Reveal Randomness pallet ******/ +pub struct MockCrRandomness; +impl shp_traits::CommitRevealRandomnessInterface for MockCrRandomness { + type ProviderId = Hash; + + fn initialise_randomness_cycle( + _who: &Self::ProviderId, + ) -> frame_support::dispatch::DispatchResult { + Ok(()) + } + + fn stop_randomness_cycle(_who: &Self::ProviderId) -> frame_support::dispatch::DispatchResult { + Ok(()) + } +} +/****** ****** ****** ******/ diff --git a/operator/runtime/testnet/src/lib.rs b/operator/runtime/testnet/src/lib.rs index 6175b2d49..1a8db20e1 100644 --- a/operator/runtime/testnet/src/lib.rs +++ b/operator/runtime/testnet/src/lib.rs @@ -20,7 +20,10 @@ use frame_support::{ pallet_prelude::{TransactionValidity, TransactionValidityError}, parameter_types, traits::{KeyOwnerProofSystem, OnFinalize}, - weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + weights::{ + constants::ExtrinsicBaseWeight, constants::WEIGHT_REF_TIME_PER_SECOND, Weight, + WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, + }, }; pub use frame_system::Call as SystemCall; pub use pallet_balances::Call as BalancesCall; @@ -29,6 +32,7 @@ use pallet_evm::{Account as EVMAccount, FeeCalculator, GasWeightMapping, Runner} use pallet_external_validators::traits::EraIndex; use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId}; pub use pallet_timestamp::Call as TimestampCall; +use smallvec::smallvec; use snowbridge_core::AgentId; use snowbridge_merkle_tree::MerkleProof; use sp_api::impl_runtime_apis; @@ -231,8 +235,36 @@ where } } +/// 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 { + // in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIHAVE: + // in our template, we map to 1/10 of that, or 1/10 MILLIHAVE + let p = currency::MILLIHAVE / 10; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } +} + // Create the runtime by composing the FRAME pallets that were previously configured. #[frame_support::runtime] +#[cfg(not(feature = "storage-hub"))] mod runtime { #[runtime::runtime] #[runtime::derive( @@ -384,6 +416,179 @@ mod runtime { // ╚═══════════════════ DataHaven-specific Pallets ══════════════════╝ } +#[frame_support::runtime] +#[cfg(feature = "storage-hub")] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + // ╔══════════════════ System and Consensus Pallets ═════════════════╗ + #[runtime::pallet_index(0)] + pub type System = frame_system; + + // Babe must be before session. + #[runtime::pallet_index(1)] + pub type Babe = pallet_babe; + + #[runtime::pallet_index(2)] + pub type Timestamp = pallet_timestamp; + + #[runtime::pallet_index(3)] + pub type Balances = pallet_balances; + + // Consensus support. + // Authorship must be before session in order to note author in the correct session and era. + #[runtime::pallet_index(4)] + pub type Authorship = pallet_authorship; + + #[runtime::pallet_index(5)] + pub type Offences = pallet_offences; + + #[runtime::pallet_index(6)] + pub type Historical = pallet_session::historical; + + // External Validators must be before Session. + #[runtime::pallet_index(7)] + pub type ExternalValidators = pallet_external_validators; + + #[runtime::pallet_index(8)] + pub type Session = pallet_session; + + #[runtime::pallet_index(9)] + pub type ImOnline = pallet_im_online; + + #[runtime::pallet_index(10)] + pub type Grandpa = pallet_grandpa; + + #[runtime::pallet_index(11)] + pub type TransactionPayment = pallet_transaction_payment; + + #[runtime::pallet_index(12)] + pub type Beefy = pallet_beefy; + + #[runtime::pallet_index(13)] + pub type Mmr = pallet_mmr; + + #[runtime::pallet_index(14)] + pub type BeefyMmrLeaf = pallet_beefy_mmr; + // ╚═════════════════ System and Consensus Pallets ══════════════════╝ + + // ╔═════════════════ Polkadot SDK Utility Pallets ══════════════════╗ + #[runtime::pallet_index(30)] + pub type Utility = pallet_utility; + + #[runtime::pallet_index(31)] + pub type Scheduler = pallet_scheduler; + + #[runtime::pallet_index(32)] + pub type Preimage = pallet_preimage; + + #[runtime::pallet_index(33)] + pub type Identity = pallet_identity; + + #[runtime::pallet_index(34)] + pub type Multisig = pallet_multisig; + + #[runtime::pallet_index(35)] + pub type Parameters = pallet_parameters; + + #[runtime::pallet_index(36)] + pub type Sudo = pallet_sudo; + + #[runtime::pallet_index(37)] + pub type Treasury = pallet_treasury; + + #[runtime::pallet_index(38)] + pub type Proxy = pallet_proxy; + // ╚═════════════════ Polkadot SDK Utility Pallets ══════════════════╝ + + // ╔════════════════════ Frontier (EVM) Pallets ═════════════════════╗ + #[runtime::pallet_index(50)] + pub type Ethereum = pallet_ethereum; + + #[runtime::pallet_index(51)] + pub type Evm = pallet_evm; + + #[runtime::pallet_index(52)] + pub type EvmChainId = pallet_evm_chain_id; + // ╚════════════════════ Frontier (EVM) Pallets ═════════════════════╝ + + // ╔══════════════════════ Snowbridge Pallets ═══════════════════════╗ + #[runtime::pallet_index(60)] + pub type EthereumBeaconClient = snowbridge_pallet_ethereum_client; + + #[runtime::pallet_index(61)] + pub type EthereumInboundQueueV2 = snowbridge_pallet_inbound_queue_v2; + + #[runtime::pallet_index(62)] + pub type EthereumOutboundQueueV2 = snowbridge_pallet_outbound_queue_v2; + + #[runtime::pallet_index(63)] + pub type SnowbridgeSystem = snowbridge_pallet_system; + + #[runtime::pallet_index(64)] + pub type SnowbridgeSystemV2 = snowbridge_pallet_system_v2; + // ╚══════════════════════ Snowbridge Pallets ═══════════════════════╝ + + // ╔════════════ Polkadot SDK Utility Pallets - Block 2 ═════════════╗ + // The Message Queue pallet has to be after the Snowbridge Outbound + // Queue V2 pallet since the former processes messages in its + // `on_initialize` hook and the latter clears up messages in + // its `on_initialize` hook, so otherwise messages will be cleared + // up before they are processed. + #[runtime::pallet_index(70)] + pub type MessageQueue = pallet_message_queue; + // ╚════════════ Polkadot SDK Utility Pallets - Block 2 ═════════════╝ + + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ + // Start with index 80 + #[runtime::pallet_index(80)] + pub type Providers = pallet_storage_providers; + + #[runtime::pallet_index(81)] + pub type FileSystem = pallet_file_system; + + #[runtime::pallet_index(82)] + pub type ProofsDealer = pallet_proofs_dealer; + + #[runtime::pallet_index(83)] + pub type Randomness = pallet_randomness; + + #[runtime::pallet_index(84)] + pub type PaymentStreams = pallet_payment_streams; + + #[runtime::pallet_index(85)] + pub type BucketNfts = pallet_bucket_nfts; + + #[runtime::pallet_index(90)] + pub type Nfts = pallet_nfts; + // ╚══════════════════════ StorageHub Pallets ═══════════════════════╝ + + // ╔═══════════════════ DataHaven-specific Pallets ══════════════════╗ + // Start with index 100 + #[runtime::pallet_index(100)] + pub type OutboundCommitmentStore = pallet_outbound_commitment_store; + + #[runtime::pallet_index(101)] + pub type ExternalValidatorsRewards = pallet_external_validators_rewards; + + #[runtime::pallet_index(102)] + pub type DataHavenNativeTransfer = pallet_datahaven_native_transfer; + + // ╚═══════════════════ DataHaven-specific Pallets ══════════════════╝ +} + /// MMR helper types. mod mmr { use super::Runtime; From b4347d574c631e5db34613d7f7cbee3bac33c58b Mon Sep 17 00:00:00 2001 From: Steve Degosserie <723552+stiiifff@users.noreply.github.com> Date: Tue, 2 Sep 2025 15:56:04 +0200 Subject: [PATCH 4/5] Merge branch 'main' into sde/registry-precompile --- operator/Cargo.lock | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/operator/Cargo.lock b/operator/Cargo.lock index 8ee67f51c..6a80b9978 100644 --- a/operator/Cargo.lock +++ b/operator/Cargo.lock @@ -2382,6 +2382,7 @@ dependencies = [ "hex-literal 0.3.4", "log", "num-bigint", + "num_enum", "pallet-authorship", "pallet-babe", "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", @@ -2476,8 +2477,8 @@ dependencies = [ "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-trie", - "sp-version", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2734,6 +2735,7 @@ dependencies = [ "hex-literal 0.3.4", "log", "num-bigint", + "num_enum", "pallet-authorship", "pallet-babe", "pallet-balances 40.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", @@ -2828,8 +2830,8 @@ dependencies = [ "sp-storage 22.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-tracing 17.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-transaction-pool", - "sp-trie", - "sp-version", + "sp-trie 38.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2412)", + "sp-version 38.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", From 7bf861d637f7b12aa43f9bb70e05f4f468f9ac00 Mon Sep 17 00:00:00 2001 From: Steve Degosserie <723552+stiiifff@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:51:09 +0200 Subject: [PATCH 5/5] fix: Comment out Identity benchmark helper function - needs SDK stable2412-8 --- operator/runtime/mainnet/src/configs/mod.rs | 24 +++++++++++--------- operator/runtime/stagenet/src/configs/mod.rs | 24 +++++++++++--------- operator/runtime/testnet/src/configs/mod.rs | 24 +++++++++++--------- 3 files changed, 39 insertions(+), 33 deletions(-) diff --git a/operator/runtime/mainnet/src/configs/mod.rs b/operator/runtime/mainnet/src/configs/mod.rs index 0c084c5c8..8210c7baf 100644 --- a/operator/runtime/mainnet/src/configs/mod.rs +++ b/operator/runtime/mainnet/src/configs/mod.rs @@ -508,17 +508,19 @@ impl pallet_identity::Config for Runtime { type UsernameDeposit = (); type UsernameGracePeriod = (); - #[cfg(feature = "runtime-benchmarks")] - fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { - let public = sp_io::crypto::ecdsa_generate(0.into(), None); - let eth_signer: Self::SigningPublicKey = public.into(); - let hash_msg = sp_io::hashing::keccak_256(message); - let signature = Self::OffchainSignature::new( - sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), - ); - - (eth_signer.encode(), signature.encode()) - } + // TODO: Re-enable after upgrade to Polkadot SDK stable2412-8 + // see https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412-8 + // #[cfg(feature = "runtime-benchmarks")] + // fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { + // let public = sp_io::crypto::ecdsa_generate(0.into(), None); + // let eth_signer: Self::SigningPublicKey = public.into(); + // let hash_msg = sp_io::hashing::keccak_256(message); + // let signature = Self::OffchainSignature::new( + // sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), + // ); + + // (eth_signer.encode(), signature.encode()) + // } } parameter_types! { diff --git a/operator/runtime/stagenet/src/configs/mod.rs b/operator/runtime/stagenet/src/configs/mod.rs index 8bb3a6ecb..1fdb3b22d 100644 --- a/operator/runtime/stagenet/src/configs/mod.rs +++ b/operator/runtime/stagenet/src/configs/mod.rs @@ -508,17 +508,19 @@ impl pallet_identity::Config for Runtime { type UsernameDeposit = (); type UsernameGracePeriod = (); - #[cfg(feature = "runtime-benchmarks")] - fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { - let public = sp_io::crypto::ecdsa_generate(0.into(), None); - let eth_signer: Self::SigningPublicKey = public.into(); - let hash_msg = sp_io::hashing::keccak_256(message); - let signature = Self::OffchainSignature::new( - sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), - ); - - (eth_signer.encode(), signature.encode()) - } + // TODO: Re-enable after upgrade to Polkadot SDK stable2412-8 + // see https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412-8 + // #[cfg(feature = "runtime-benchmarks")] + // fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { + // let public = sp_io::crypto::ecdsa_generate(0.into(), None); + // let eth_signer: Self::SigningPublicKey = public.into(); + // let hash_msg = sp_io::hashing::keccak_256(message); + // let signature = Self::OffchainSignature::new( + // sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), + // ); + + // (eth_signer.encode(), signature.encode()) + // } } parameter_types! { diff --git a/operator/runtime/testnet/src/configs/mod.rs b/operator/runtime/testnet/src/configs/mod.rs index 5448d6f84..fac772f63 100644 --- a/operator/runtime/testnet/src/configs/mod.rs +++ b/operator/runtime/testnet/src/configs/mod.rs @@ -507,17 +507,19 @@ impl pallet_identity::Config for Runtime { type UsernameDeposit = (); type UsernameGracePeriod = (); - #[cfg(feature = "runtime-benchmarks")] - fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { - let public = sp_io::crypto::ecdsa_generate(0.into(), None); - let eth_signer: Self::SigningPublicKey = public.into(); - let hash_msg = sp_io::hashing::keccak_256(message); - let signature = Self::OffchainSignature::new( - sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), - ); - - (eth_signer.encode(), signature.encode()) - } + // TODO: Re-enable after upgrade to Polkadot SDK stable2412-8 + // see https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2412-8 + // #[cfg(feature = "runtime-benchmarks")] + // fn benchmark_helper(message: &[u8]) -> (Vec, Vec) { + // let public = sp_io::crypto::ecdsa_generate(0.into(), None); + // let eth_signer: Self::SigningPublicKey = public.into(); + // let hash_msg = sp_io::hashing::keccak_256(message); + // let signature = Self::OffchainSignature::new( + // sp_io::crypto::ecdsa_sign_prehashed(0.into(), &public, &hash_msg).unwrap(), + // ); + + // (eth_signer.encode(), signature.encode()) + // } } parameter_types! {