diff --git a/operator/Cargo.lock b/operator/Cargo.lock index dba90d56..01b00e21 100644 --- a/operator/Cargo.lock +++ b/operator/Cargo.lock @@ -917,7 +917,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "hash-db", "log", @@ -1159,7 +1159,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1176,7 +1176,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1192,7 +1192,7 @@ dependencies = [ [[package]] name = "bp-parachains" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1209,7 +1209,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bp-messages", "bp-runtime", @@ -1226,7 +1226,7 @@ dependencies = [ [[package]] name = "bp-relayers" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bp-header-chain", "bp-messages", @@ -1244,7 +1244,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.19.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -1267,7 +1267,7 @@ dependencies = [ [[package]] name = "bridge-hub-common" version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1935,6 +1935,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -2030,7 +2045,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2052,7 +2067,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2068,7 +2083,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2082,7 +2097,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -2092,7 +2107,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2111,7 +2126,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2534,11 +2549,14 @@ dependencies = [ "hex", "hex-literal 0.3.4", "log", + "num-bigint", "pallet-authorship", "pallet-babe", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", + "pallet-bucket-nfts", + "pallet-cr-randomness", "pallet-datahaven-native-transfer", "pallet-ethereum", "pallet-evm", @@ -2546,18 +2564,28 @@ 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-randomness", "pallet-scheduler", "pallet-session", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -2569,6 +2597,14 @@ dependencies = [ "polkadot-runtime-common", "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", @@ -2600,6 +2636,7 @@ dependencies = [ "sp-storage", "sp-tracing", "sp-transaction-pool", + "sp-trie", "sp-version", "staging-xcm", "staging-xcm-builder", @@ -3806,7 +3843,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", ] @@ -3934,7 +3971,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-support-procedural", @@ -3958,7 +3995,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "46.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "Inflector", "array-bytes", @@ -4020,7 +4057,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "14.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -4031,7 +4068,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4046,8 +4083,8 @@ dependencies = [ [[package]] name = "frame-executive" -version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +version = "39.1.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "aquamarine", "frame-support", @@ -4100,7 +4137,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "const-hex", @@ -4116,7 +4153,7 @@ dependencies = [ [[package]] name = "frame-support" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "aquamarine", "array-bytes", @@ -4159,7 +4196,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "31.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "Inflector", "cfg-expr", @@ -4179,7 +4216,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.3.0", @@ -4191,7 +4228,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "proc-macro2", "quote", @@ -4201,7 +4238,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-executive", @@ -4228,7 +4265,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -4241,7 +4278,7 @@ dependencies = [ [[package]] name = "frame-system" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "cfg-if", "docify", @@ -4261,7 +4298,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4275,7 +4312,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "parity-scale-codec", @@ -4285,7 +4322,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "parity-scale-codec", @@ -4467,6 +4504,20 @@ dependencies = [ "byteorder", ] +[[package]] +name = "generator" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.1", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -4782,9 +4833,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.24.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ "async-trait", "cfg-if", @@ -4796,8 +4847,9 @@ dependencies = [ "idna 1.0.3", "ipnet", "once_cell", - "rand 0.8.5", - "thiserror 1.0.69", + "rand 0.9.1", + "ring 0.17.14", + "thiserror 2.0.12", "tinyvec", "tokio", "tracing", @@ -4806,21 +4858,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" dependencies = [ "cfg-if", "futures-util", "hickory-proto", "ipconfig", - "lru-cache", + "moka", "once_cell", "parking_lot 0.12.3", - "rand 0.8.5", + "rand 0.9.1", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -5226,7 +5278,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.53.0", ] [[package]] @@ -6500,9 +6552,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litep2p" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71056c23c896bb0e18113b2d2f1989be95135e6bdeedb0b757422ee21a073eb" +checksum = "14fb10e63363204b89d91e1292df83322fd9de5d7fa76c3d5c78ddc2f8f3efa9" dependencies = [ "async-trait", "bs58", @@ -6540,7 +6592,7 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.4", + "yamux 0.13.5", "yasna", "zeroize", ] @@ -6561,6 +6613,19 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lru" version = "0.12.5" @@ -6822,7 +6887,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", @@ -6887,6 +6952,25 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "moka" +version = "0.12.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "loom", + "parking_lot 0.12.3", + "portable-atomic", + "rustc_version 0.4.1", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "uuid", +] + [[package]] name = "multiaddr" version = "0.17.1" @@ -7345,6 +7429,10 @@ name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -7460,7 +7548,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7478,7 +7566,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7492,7 +7580,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -7507,7 +7595,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -7520,7 +7608,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7543,7 +7631,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -7558,7 +7646,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "40.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -7577,7 +7665,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -7602,7 +7690,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bitvec", "frame-benchmarking", @@ -7617,6 +7705,50 @@ dependencies = [ "sp-runtime", ] +[[package]] +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", + "num-bigint", + "pallet-balances", + "pallet-file-system", + "pallet-nfts", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "shp-data-price-updater", + "shp-file-metadata", + "shp-traits", + "sp-core", + "sp-keyring", + "sp-runtime", + "sp-std", +] + +[[package]] +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", + "log", + "pallet-proofs-dealer", + "parity-scale-codec", + "scale-info", + "serde", + "shp-session-keys", + "shp-traits", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-datahaven-native-transfer" version = "0.1.0" @@ -7640,7 +7772,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "38.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7662,7 +7794,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7791,7 +7923,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -7806,10 +7938,50 @@ dependencies = [ "sp-staking", ] +[[package]] +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", + "log", + "num-bigint", + "pallet-file-system-runtime-api", + "pallet-nfts", + "pallet-payment-streams", + "pallet-proofs-dealer", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", + "sp-weights", +] + +[[package]] +name = "pallet-file-system-runtime-api" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-grandpa" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7831,7 +8003,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7847,7 +8019,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7866,7 +8038,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "environmental", "frame-benchmarking", @@ -7885,7 +8057,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7902,7 +8074,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "39.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "parity-scale-codec", @@ -7910,10 +8082,27 @@ dependencies = [ "scale-info", ] +[[package]] +name = "pallet-nfts" +version = "33.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", +] + [[package]] name = "pallet-offences" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -7940,7 +8129,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.10.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -7954,10 +8143,42 @@ dependencies = [ "sp-runtime", ] +[[package]] +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", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "shp-constants", + "shp-traits", + "shp-treasury-funding", + "sp-runtime", + "sp-weights", +] + +[[package]] +name = "pallet-payment-streams-runtime-api" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-preimage" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7970,10 +8191,63 @@ dependencies = [ "sp-runtime", ] +[[package]] +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", + "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", +] + +[[package]] +name = "pallet-proofs-dealer-runtime-api" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +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", + "log", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "serde", + "shp-session-keys", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-scheduler" version = "40.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -7990,7 +8264,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -8011,7 +8285,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8033,16 +8307,49 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "sp-arithmetic", ] +[[package]] +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", + "log", + "pallet-randomness", + "pallet-storage-providers-runtime-api", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "shp-constants", + "shp-traits", + "sp-arithmetic", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-storage-providers-runtime-api" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", +] + [[package]] name = "pallet-sudo" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -8057,7 +8364,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -8076,7 +8383,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -8092,7 +8399,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "jsonrpsee 0.24.9", "pallet-transaction-payment-rpc-runtime-api", @@ -8108,7 +8415,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8120,7 +8427,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -8139,7 +8446,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -8154,7 +8461,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-benchmarking", "frame-support", @@ -8168,7 +8475,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "18.1.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -8508,7 +8815,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -8519,7 +8826,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bs58", "futures", @@ -8538,7 +8845,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -8563,7 +8870,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bitvec", "bounded-vec", @@ -8589,7 +8896,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "bitvec", @@ -8618,7 +8925,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -8640,7 +8947,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -8656,7 +8963,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bitvec", "hex-literal 0.4.1", @@ -8684,7 +8991,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bitvec", "frame-benchmarking", @@ -8735,7 +9042,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bs58", "frame-benchmarking", @@ -8747,7 +9054,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "18.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -8796,7 +9103,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.8.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-benchmarking", @@ -8830,7 +9137,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -10207,7 +10514,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "sp-core", @@ -10218,7 +10525,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -10248,7 +10555,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "futures", "futures-timer", @@ -10270,7 +10577,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "sp-api", @@ -10285,7 +10592,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "docify", @@ -10312,7 +10619,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -10323,7 +10630,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.50.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "chrono", @@ -10365,7 +10672,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "fnv", "futures", @@ -10392,7 +10699,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.45.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "hash-db", "kvdb", @@ -10418,7 +10725,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -10442,7 +10749,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -10471,7 +10778,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "fork-tree", @@ -10507,7 +10814,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -10543,7 +10850,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "futures", "jsonrpsee 0.24.9", @@ -10563,7 +10870,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10576,7 +10883,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "ahash", "array-bytes", @@ -10620,7 +10927,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "assert_matches", "async-trait", @@ -10655,7 +10962,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -10678,7 +10985,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -10701,7 +11008,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "polkavm", "sc-allocator", @@ -10714,7 +11021,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "polkavm", @@ -10725,7 +11032,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "anyhow", "cfg-if", @@ -10743,7 +11050,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "console", "futures", @@ -10760,7 +11067,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "parking_lot 0.12.3", @@ -10774,7 +11081,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -10803,7 +11110,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.48.4" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -10854,7 +11161,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -10872,7 +11179,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "ahash", "futures", @@ -10891,7 +11198,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -10912,7 +11219,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -10948,7 +11255,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "futures", @@ -10967,7 +11274,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.15.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bs58", "ed25519-dalek", @@ -10984,7 +11291,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "bytes", @@ -11021,7 +11328,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11030,7 +11337,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "futures", "jsonrpsee 0.24.9", @@ -11062,7 +11369,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", @@ -11082,7 +11389,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -11106,7 +11413,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "futures", @@ -11138,7 +11445,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "directories", @@ -11202,7 +11509,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.37.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "parity-scale-codec", @@ -11213,7 +11520,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "derive_more 0.99.20", "futures", @@ -11234,7 +11541,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "chrono", "futures", @@ -11254,7 +11561,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "chrono", "console", @@ -11282,7 +11589,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -11293,7 +11600,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -11324,7 +11631,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -11340,7 +11647,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-channel 1.9.0", "futures", @@ -11527,6 +11834,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -11846,6 +12159,121 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +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", +] + +[[package]] +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", + "parity-scale-codec", + "scale-info", + "serde", + "shp-traits", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +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", + "parity-scale-codec", + "scale-info", + "serde", + "shp-file-metadata", + "shp-traits", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "shp-file-metadata" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "hex", + "num-bigint", + "parity-scale-codec", + "scale-info", + "serde", + "shp-traits", + "sp-arithmetic", + "sp-core", + "sp-std", +] + +[[package]] +name = "shp-forest-verifier" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "shp-traits", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "shp-session-keys" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "shp-traits" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "shp-treasury-funding" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/storage-hub.git?rev=e32b6a8fbbdf241d19d211c3325be7329869b85d#e32b6a8fbbdf241d19d211c3325be7329869b85d" +dependencies = [ + "log", + "shp-traits", + "sp-arithmetic", + "sp-core", +] + [[package]] name = "signal-hook-registry" version = "1.4.5" @@ -11923,7 +12351,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "enumn", "parity-scale-codec", @@ -12103,7 +12531,7 @@ dependencies = [ [[package]] name = "snowbridge-beacon-primitives" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "byte-slice-cast", "frame-support", @@ -12150,7 +12578,7 @@ dependencies = [ [[package]] name = "snowbridge-core" version = "0.12.2" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "ethabi-decode", "frame-support", @@ -12194,7 +12622,7 @@ dependencies = [ [[package]] name = "snowbridge-ethereum" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "ethabi-decode", "ethbloom", @@ -12269,7 +12697,7 @@ dependencies = [ [[package]] name = "snowbridge-outbound-queue-merkle-tree" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12405,7 +12833,7 @@ dependencies = [ [[package]] name = "snowbridge-pallet-outbound-queue" version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bridge-hub-common 0.12.0", "ethabi-decode", @@ -12606,7 +13034,7 @@ dependencies = [ [[package]] name = "sp-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "hash-db", @@ -12627,8 +13055,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +version = "21.0.2" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "Inflector", "blake2 0.10.6", @@ -12642,7 +13070,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12654,7 +13082,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "integer-sqrt", @@ -12668,7 +13096,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12680,7 +13108,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "sp-api", "sp-inherents", @@ -12690,7 +13118,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "futures", "parity-scale-codec", @@ -12709,7 +13137,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "futures", @@ -12724,7 +13152,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -12740,7 +13168,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -12758,7 +13186,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12778,7 +13206,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "finality-grandpa", "log", @@ -12795,7 +13223,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12806,7 +13234,7 @@ dependencies = [ [[package]] name = "sp-core" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -12866,7 +13294,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "blake2b_simd", "byteorder", @@ -12879,7 +13307,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?branch=stable2412)", @@ -12889,7 +13317,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -12898,7 +13326,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "proc-macro2", "quote", @@ -12908,7 +13336,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "environmental", "parity-scale-codec", @@ -12918,7 +13346,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -12930,7 +13358,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -12943,7 +13371,7 @@ dependencies = [ [[package]] name = "sp-io" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bytes", "docify", @@ -12969,7 +13397,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "sp-core", "sp-runtime", @@ -12979,7 +13407,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -12990,7 +13418,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -12999,7 +13427,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-metadata 18.0.0", "parity-scale-codec", @@ -13009,7 +13437,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -13020,7 +13448,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "log", "parity-scale-codec", @@ -13037,7 +13465,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "35.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -13050,7 +13478,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "sp-api", "sp-core", @@ -13060,7 +13488,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "backtrace", "regex", @@ -13069,7 +13497,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -13079,7 +13507,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "binary-merkle-tree", "docify", @@ -13108,7 +13536,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -13127,7 +13555,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "Inflector", "expander", @@ -13140,7 +13568,7 @@ dependencies = [ [[package]] name = "sp-session" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "scale-info", @@ -13154,7 +13582,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -13167,7 +13595,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "hash-db", "log", @@ -13187,7 +13615,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -13211,12 +13639,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -13228,7 +13656,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -13240,7 +13668,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "tracing", @@ -13251,7 +13679,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "sp-api", "sp-runtime", @@ -13260,7 +13688,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "async-trait", "parity-scale-codec", @@ -13274,7 +13702,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "ahash", "hash-db", @@ -13296,7 +13724,7 @@ dependencies = [ [[package]] name = "sp-version" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -13313,7 +13741,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "parity-scale-codec", "proc-macro-warning 1.84.1", @@ -13325,7 +13753,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -13337,7 +13765,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -13549,7 +13977,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-xcm" version = "15.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "bounded-collections", @@ -13570,7 +13998,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "18.2.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "frame-system", @@ -13592,7 +14020,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "18.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "environmental", "frame-benchmarking", @@ -13699,7 +14127,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -13711,12 +14139,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" [[package]] name = "substrate-frame-rpc-system" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -13736,7 +14164,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -13750,7 +14178,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "25.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "array-bytes", "build-helper", @@ -14020,6 +14448,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "tap" version = "1.0.1" @@ -14468,7 +14902,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "coarsetime", "polkadot-primitives", @@ -14479,7 +14913,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "expander", "proc-macro-crate 3.3.0", @@ -14844,6 +15278,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.1" @@ -15423,6 +15868,28 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" +dependencies = [ + "windows-collections", + "windows-core 0.61.0", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.0", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -15446,6 +15913,16 @@ dependencies = [ "windows-strings", ] +[[package]] +name = "windows-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32" +dependencies = [ + "windows-core 0.61.0", + "windows-link", +] + [[package]] name = "windows-implement" version = "0.60.0" @@ -15474,6 +15951,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.0", + "windows-link", +] + [[package]] name = "windows-result" version = "0.1.2" @@ -15871,7 +16358,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "Inflector", "proc-macro2", @@ -15882,7 +16369,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.5.3" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#aa89c59bbc09efca21b4cdd0323c49aa0af8bb3a" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=stable2412#128a93179953ddfbf807c874a04060350c4902e6" dependencies = [ "frame-support", "parity-scale-codec", @@ -15925,16 +16412,16 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17610762a1207ee816c6fadc29220904753648aba0a9ed61c7b8336e80a559c4" +checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" dependencies = [ "futures", "log", "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand 0.9.1", "static_assertions", "web-time", ] diff --git a/operator/Cargo.toml b/operator/Cargo.toml index 2452a475..18f33fac 100644 --- a/operator/Cargo.toml +++ b/operator/Cargo.toml @@ -67,6 +67,7 @@ serde = { version = "1.0.197", default-features = false, features = ["derive"] } serde-big-array = { version = "0.3.2" } serde_json = { version = "1.0.127", default-features = false } sha3 = { version = "0.10", default-features = false } +smallvec = "1.11.0" ssz_rs = { version = "0.9.0", default-features = false } ssz_rs_derive = { version = "0.9.0", default-features = false } static_assertions = { version = "1.1.0", default-features = false } @@ -214,3 +215,31 @@ fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier", branch = " 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 } + +# StorageHub +storage-hub-runtime = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-bucket-nfts = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-cr-randomness = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-file-system = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-file-system-runtime-api = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-payment-streams = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-payment-streams-runtime-api = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-proofs-dealer = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-proofs-dealer-runtime-api = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-randomness = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-storage-providers = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +pallet-storage-providers-runtime-api = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-constants = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-file-metadata = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-traits = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-treasury-funding = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-forest-verifier = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-file-key-verifier = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } +shp-data-price-updater = { git = "https://github.com/Moonsong-Labs/storage-hub.git", rev = "e32b6a8fbbdf241d19d211c3325be7329869b85d", default-features = false } + +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2412", default-features = false } +# TODO: Change sp-trie to the next stable version when it's released with the applied fix of this [PR](https://github.com/paritytech/polkadot-sdk/pull/6486) +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2412", default-features = false } + +num-bigint = { version = "0.4.3", default-features = false } + diff --git a/operator/node/src/command.rs b/operator/node/src/command.rs index c77728d8..a178d9d2 100644 --- a/operator/node/src/command.rs +++ b/operator/node/src/command.rs @@ -263,7 +263,7 @@ pub fn run() -> sc_cli::Result<()> { None => { let runner = cli.create_runner(&cli.run)?; runner.run_node_until_exit(|config| async move { - match config.network.network_backend.unwrap_or_default() { + match config.network.network_backend { sc_network::config::NetworkBackendType::Libp2p => match config.chain_spec { ref spec if spec.is_mainnet() => { service::new_full::< diff --git a/operator/runtime/stagenet/Cargo.toml b/operator/runtime/stagenet/Cargo.toml index 77f15cec..bc8c1278 100644 --- a/operator/runtime/stagenet/Cargo.toml +++ b/operator/runtime/stagenet/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 } pallet-authorship = { workspace = true } pallet-babe = { workspace = true } pallet-balances = { workspace = true } @@ -68,6 +69,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 } @@ -102,6 +104,28 @@ xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { 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 } @@ -118,6 +142,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", @@ -196,6 +243,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/stagenet/src/configs/mod.rs b/operator/runtime/stagenet/src/configs/mod.rs index efec593f..1703ad08 100644 --- a/operator/runtime/stagenet/src/configs/mod.rs +++ b/operator/runtime/stagenet/src/configs/mod.rs @@ -23,6 +23,9 @@ // // For more information, please refer to +#[cfg(feature = "storage-hub")] +mod storagehub; + pub mod runtime_params; use super::{ diff --git a/operator/runtime/stagenet/src/configs/runtime_params.rs b/operator/runtime/stagenet/src/configs/runtime_params.rs index 9672fac9..6c1b7922 100644 --- a/operator/runtime/stagenet/src/configs/runtime_params.rs +++ b/operator/runtime/stagenet/src/configs/runtime_params.rs @@ -1,10 +1,14 @@ -use crate::Runtime; +use crate::{Balance, BlockNumber, Runtime, NANO_UNIT, UNIT}; use frame_support::dynamic_params::{dynamic_pallet_params, dynamic_params}; use hex_literal::hex; use sp_core::{ConstU32, H160, H256}; use sp_runtime::{BoundedVec, Perbill}; use sp_std::vec; +#[cfg(feature = "storage-hub")] +use crate::configs::storagehub::{ChallengeTicksTolerance, ReplicationTargetType, SpMinDeposit}; + +#[cfg(not(feature = "storage-hub"))] #[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] pub mod dynamic_params { use super::*; @@ -50,6 +54,308 @@ 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" + )); + + // ╔══════════════════════ StorageHub Pallets ═══════════════════════╗ + + #[codec(index = 4)] + #[allow(non_upper_case_globals)] + /// 20 UNITs + pub static SlashAmountPerMaxFileSize: Balance = 20 * UNIT; + + #[codec(index = 5)] + #[allow(non_upper_case_globals)] + /// 10k UNITs * [`MinChallengePeriod`] = 10k UNITs * 30 = 300k UNITs + /// + /// This can be interpreted as "a Provider with 10k UNITs of stake would get the minimum challenge period". + pub static StakeToChallengePeriod: Balance = + 10_000 * UNIT * Into::::into(MinChallengePeriod::get()); + + #[codec(index = 6)] + #[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 UNITs / 100 UNITs + 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 = 7)] + #[allow(non_upper_case_globals)] + /// 30 ticks, or 3 minutes with 6 seconds per tick. + pub static MinChallengePeriod: BlockNumber = 30; + + #[codec(index = 8)] + #[allow(non_upper_case_globals)] + /// Price decreases when system utilisation is below 30%. + pub static SystemUtilisationLowerThresholdPercentage: Perbill = Perbill::from_percent(30); + + #[codec(index = 9)] + #[allow(non_upper_case_globals)] + /// Price increases when system utilisation is above 95%. + pub static SystemUtilisationUpperThresholdPercentage: Perbill = Perbill::from_percent(95); + + #[codec(index = 10)] + #[allow(non_upper_case_globals)] + /// 50 [`NANOUNIT`]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 [`UNIT`]s * 10 ticks/min * 60 min/h * 24 h/day * 30 days/month = 21.6e-3 [`UNIT`]s + pub static MostlyStablePrice: Balance = 50 * NANO_UNIT; + + #[codec(index = 11)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] * 10 = 500 [`NANOUNIT`]s + pub static MaxPrice: Balance = MostlyStablePrice::get() * 10; + + #[codec(index = 12)] + #[allow(non_upper_case_globals)] + /// [`MostlyStablePrice`] / 5 = 10 [`NANOUNIT`]s + pub static MinPrice: Balance = MostlyStablePrice::get() / 5; + + #[codec(index = 13)] + #[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 = 14)] + #[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 = 15)] + #[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 * NANO_UNIT; + + #[codec(index = 16)] + #[allow(non_upper_case_globals)] + /// Ideal utilisation rate of the system + pub static IdealUtilisationRate: Perbill = Perbill::from_percent(85); + + #[codec(index = 17)] + #[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)] + #[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)] + #[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)] + #[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 = 21)] + #[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 = 22)] + #[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 = 23)] + #[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 = 24)] + #[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 = 25)] + #[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 = 26)] + #[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 = 27)] + #[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 = 28)] + #[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 = 29)] + #[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 = 30)] + #[allow(non_upper_case_globals)] + pub static MinWaitForStopStoring: BlockNumber = CheckpointChallengePeriod::get() + .saturating_mul(110) + .saturating_div(100); + + #[codec(index = 31)] + #[allow(non_upper_case_globals)] + /// 20 ticks, or 2 minutes with 6 seconds per tick. + pub static MinSeedPeriod: BlockNumber = 20; + + #[codec(index = 32)] + #[allow(non_upper_case_globals)] + /// 10k UNITs * [`MinSeedPeriod`] = 10k UNITs * 20 = 200k UNITs + /// + /// This can be interpreted as "a Provider with 10k UNITs of stake would get the minimum seed period". + pub static StakeToSeedPeriod: Balance = + 10_000 * UNIT * Into::::into(MinSeedPeriod::get()); + + #[codec(index = 33)] + #[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 NANOUNITs 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 NANOUNITs per gigabyte per tick * 12 BSPs * 72k ticks * 1 GB = 0.0432 UNITs + pub static UpfrontTicksToPay: BlockNumber = 72_000; + // ╚══════════════════════ StorageHub Pallets ═══════════════════════╝ + } +} + #[cfg(feature = "runtime-benchmarks")] impl Default for RuntimeParameters { fn default() -> Self { diff --git a/operator/runtime/stagenet/src/configs/storagehub/mod.rs b/operator/runtime/stagenet/src/configs/storagehub/mod.rs new file mode 100644 index 00000000..aecf7d06 --- /dev/null +++ b/operator/runtime/stagenet/src/configs/storagehub/mod.rs @@ -0,0 +1,610 @@ +use super::{ + AccountId, Balance, Balances, BlockNumber, Hash, RuntimeEvent, RuntimeHoldReason, UNIT, +}; +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 * UNIT; + pub const ItemDeposit: Balance = 1 * UNIT; + pub const MetadataDepositBase: Balance = 10 * UNIT; + pub const MetadataDepositPerByte: Balance = 1 * UNIT; + 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 * UNIT; + pub const BucketDeposit: Balance = 100 * UNIT; + 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 * UNIT; + 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 * UNIT; + pub const FileDeletionRequestCreationDeposit: Balance = 1 * UNIT; + 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/stagenet/src/lib.rs b/operator/runtime/stagenet/src/lib.rs index 9d2b1a2d..2bc1c909 100644 --- a/operator/runtime/stagenet/src/lib.rs +++ b/operator/runtime/stagenet/src/lib.rs @@ -47,6 +47,14 @@ use sp_version::NativeVersion; use sp_version::RuntimeVersion; use xcm::VersionedLocation; +// Need by storage hub +use frame_support::weights::{ + constants::ExtrinsicBaseWeight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, +}; +use smallvec::smallvec; +use sp_runtime::Perbill; + pub use datahaven_runtime_common::{ time::EpochDurationInBlocks, AccountId, Address, Balance, BlockNumber, Hash, Header, Nonce, Signature, @@ -132,8 +140,11 @@ pub const SUPPLY_FACTOR: Balance = 1; // Unit = the base number of indivisible units for balances pub const UNIT: Balance = 1_000_000_000_000; +pub const CENTS: Balance = UNIT / 100; pub const MILLI_UNIT: Balance = 1_000_000_000; pub const MICRO_UNIT: Balance = 1_000_000; +pub const NANO_UNIT: Balance = 1_000; +pub const PICO_UNIT: Balance = 1; pub const STORAGE_BYTE_FEE: Balance = 100 * MICRO_UNIT * SUPPLY_FACTOR; @@ -212,8 +223,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 MILLIUNIT: + // in our template, we map to 1/10 of that, or 1/10 MILLIUNIT + let p = MILLI_UNIT / 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( @@ -346,6 +385,193 @@ mod runtime { // ╔══════════════════════ 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 ══════════════════╝ +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +#[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; + // ╚═════════════════ 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 ══════════════════╗ diff --git a/operator/runtime/testnet/Cargo.toml b/operator/runtime/testnet/Cargo.toml index 26f2c3f1..ed88d470 100644 --- a/operator/runtime/testnet/Cargo.toml +++ b/operator/runtime/testnet/Cargo.toml @@ -118,6 +118,7 @@ snowbridge-pallet-system-v2 = { workspace = true } snowbridge-outbound-queue-primitives = { workspace = true } [features] +storage-hub = [] default = ["std"] std = [ "codec/std",