From da9a8188c7518ad034968a77eafe0fa73c2c039f Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Thu, 21 Nov 2024 18:01:38 +0600 Subject: [PATCH 1/6] Downgrade to v1.2.0, node syncing with mainnet --- Cargo.lock | 18702 +++++----------- Cargo.toml | 267 +- .../babe-consensus-data-provider/Cargo.toml | 20 + .../babe-consensus-data-provider/src/lib.rs | 207 + modules/claims/src/lib.rs | 1109 +- modules/evm-accounts/src/lib.rs | 416 +- node/Cargo.toml | 89 +- node/build.rs | 34 +- node/src/chain_spec.rs | 973 +- node/src/cli.rs | 128 +- node/src/command.rs | 224 +- node/src/eth.rs | 292 +- node/src/lib.rs | 51 +- node/src/main.rs | 4 +- node/src/rpc.rs | 245 + node/src/rpc/eth.rs | 202 - node/src/rpc/mod.rs | 231 - node/src/service.rs | 1813 +- primitives/src/lib.rs | 52 +- runtime/Cargo.toml | 16 +- runtime/build.rs | 11 +- runtime/src/impls.rs | 113 +- runtime/src/lib.rs | 318 +- runtime/src/mock.rs | 140 +- runtime/src/precompiles.rs | 30 +- runtime/src/tests.rs | 37 +- runtime/src/voter_bags.rs | 402 +- 27 files changed, 9953 insertions(+), 16173 deletions(-) create mode 100644 crates/babe-consensus-data-provider/Cargo.toml create mode 100644 crates/babe-consensus-data-provider/src/lib.rs create mode 100644 node/src/rpc.rs delete mode 100644 node/src/rpc/eth.rs delete mode 100644 node/src/rpc/mod.rs diff --git a/Cargo.lock b/Cargo.lock index d5030c3..1fdf554 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.29.0", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -53,7 +53,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -65,10 +65,10 @@ checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", "aes", - "cipher 0.4.4", + "cipher", "ctr", "ghash", - "subtle 2.6.1", + "subtle 2.4.1", ] [[package]] @@ -106,74 +106,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "alloy-primitives" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if 1.0.0", - "const-hex", - "derive_more", - "hex-literal 0.4.1", - "itoa", - "proptest", - "rand 0.8.5", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" -dependencies = [ - "arrayvec 0.7.6", - "bytes", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c" -dependencies = [ - "const-hex", - "dunce", - "heck 0.4.1", - "proc-macro-error", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-types" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98d7107bed88e8f09f0ddcc3335622d87bfb6821f3e0c7473329fb1cfad5e015" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - -[[package]] -name = "always-assert" -version = "0.1.3" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "android-tzdata" @@ -201,9 +136,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -216,43 +151,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "approx" @@ -265,39 +200,16 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.5.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" dependencies = [ "include_dir", - "itertools 0.10.5", + "itertools", "proc-macro-error", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "ark-bls12-377" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bls12-377-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-models-ext", - "ark-std 0.4.0", + "syn 1.0.109", ] [[package]] @@ -307,48 +219,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bls12-381-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bw6-761" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bw6-761-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" -dependencies = [ - "ark-bw6-761", - "ark-ec", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", + "ark-ff", + "ark-serialize", + "ark-std", ] [[package]] @@ -357,43 +230,17 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff 0.4.2", + "ark-ff", "ark-poly", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", - "itertools 0.10.5", + "itertools", "num-traits", - "rayon", "zeroize", ] -[[package]] -name = "ark-ed-on-bls12-377" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ed-on-bls12-377-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" -dependencies = [ - "ark-ec", - "ark-ed-on-bls12-377", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-ed-on-bls12-381-bandersnatch" version = "0.4.0" @@ -402,39 +249,8 @@ checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" dependencies = [ "ark-bls12-381", "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ed-on-bls12-381-bandersnatch-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" -dependencies = [ - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", + "ark-ff", + "ark-std", ] [[package]] @@ -443,13 +259,13 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", "derivative", "digest 0.10.7", - "itertools 0.10.5", + "itertools", "num-bigint", "num-traits", "paste", @@ -457,16 +273,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote 1.0.37", - "syn 1.0.109", -] - [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -477,18 +283,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote 1.0.37", - "syn 1.0.109", -] - [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -497,59 +291,50 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] -[[package]] -name = "ark-models-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", -] - [[package]] name = "ark-poly" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-serialize", + "ark-std", "derivative", "hashbrown 0.13.2", ] [[package]] name = "ark-scale" -version = "0.0.12" +version = "0.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +checksum = "49b08346a3e38e2be792ef53ee168623c9244d968ff00cd70fb9932f6fe36393" dependencies = [ "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff", + "ark-serialize", + "ark-std", "parity-scale-codec", - "scale-info", ] [[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript", + "digest 0.10.7", + "rand_core 0.6.4", + "zeroize", ] [[package]] @@ -559,7 +344,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-serialize-derive", - "ark-std 0.4.0", + "ark-std", "digest 0.10.7", "num-bigint", ] @@ -570,30 +355,32 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] [[package]] name = "ark-std" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", "rand 0.8.5", ] [[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" dependencies = [ - "num-traits", - "rand 0.8.5", - "rayon", + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3 0.10.8", ] [[package]] @@ -604,18 +391,15 @@ checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.4.12" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" @@ -629,24 +413,8 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive 0.4.0", - "asn1-rs-impl 0.1.0", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "asn1-rs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" -dependencies = [ - "asn1-rs-derive 0.5.1", - "asn1-rs-impl 0.2.0", + "asn1-rs-derive", + "asn1-rs-impl", "displaydoc", "nom", "num-traits", @@ -661,103 +429,29 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", "synstructure 0.12.6", ] -[[package]] -name = "asn1-rs-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", - "synstructure 0.13.1", -] - [[package]] name = "asn1-rs-impl" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] -[[package]] -name = "asn1-rs-impl" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - [[package]] name = "assert_matches" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" -[[package]] -name = "asset-test-utils" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "frame-support", - "frame-system", - "pallet-assets", - "pallet-balances", - "pallet-collator-selection", - "pallet-session", - "pallet-timestamp", - "pallet-xcm", - "pallet-xcm-bridge-hub-router", - "parachains-common", - "parachains-runtimes-test-utils", - "parity-scale-codec", - "sp-io", - "sp-runtime", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - -[[package]] -name = "assets-common" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-asset-conversion", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "substrate-wasm-builder", -] - [[package]] name = "async-channel" version = "1.9.0" @@ -770,88 +464,22 @@ dependencies = [ ] [[package]] -name = "async-channel" -version = "2.3.1" +name = "async-io" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ + "async-lock", + "cfg-if 1.0.0", "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.1.1", - "futures-lite 2.3.0", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if 1.0.0", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" -dependencies = [ - "async-lock 3.4.0", - "cfg-if 1.0.0", - "concurrent-queue", - "futures-io", - "futures-lite 2.3.0", - "parking", - "polling 3.7.3", - "rustix 0.38.35", - "slab", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 0.38.41", + "slab", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -862,70 +490,18 @@ checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ "event-listener 5.3.1", "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-net" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" -dependencies = [ - "async-io 1.13.0", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-process" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" -dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if 1.0.0", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.35", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-signal" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" -dependencies = [ - "async-io 2.3.4", - "async-lock 3.4.0", - "atomic-waker", - "cfg-if 1.0.0", - "futures-core", - "futures-io", - "rustix 0.38.35", - "signal-hook-registry", - "slab", - "windows-sys 0.59.0", + "pin-project-lite 0.2.15", ] -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] @@ -938,7 +514,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite", + "pin-project-lite 0.2.15", ] [[package]] @@ -950,29 +526,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "atomic-take" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "attohttpc" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" -dependencies = [ - "http 0.2.12", - "log", - "url 2.5.2", -] - [[package]] name = "atty" version = "0.2.14" @@ -990,30 +543,51 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.22.0", - "cc", + "addr2line 0.24.2", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.36.4", + "object 0.36.5", "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.1" +source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin 3.0.0", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "ring 0.1.0", + "sha2 0.10.8", + "zeroize", ] [[package]] @@ -1028,6 +602,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base58" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" + [[package]] name = "base64" version = "0.13.1" @@ -1040,12 +620,6 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - [[package]] name = "base64ct" version = "1.6.0" @@ -1061,15 +635,6 @@ dependencies = [ "serde", ] -[[package]] -name = "binary-merkle-tree" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "hash-db", - "log", -] - [[package]] name = "bincode" version = "1.3.3" @@ -1091,59 +656,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.22", - "proc-macro2 1.0.86", + "prettyplease 0.2.25", + "proc-macro2 1.0.91", "quote 1.0.37", "regex", "rustc-hash", "shlex", - "syn 2.0.77", -] - -[[package]] -name = "bip39" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" -dependencies = [ - "bitcoin_hashes 0.11.0", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitcoin-internals" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" - -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - -[[package]] -name = "bitcoin_hashes" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" -dependencies = [ - "bitcoin-internals", - "hex-conservative", + "syn 2.0.89", ] [[package]] @@ -1166,23 +685,10 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", - "serde", "tap", "wyz", ] -[[package]] -name = "blake2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" -dependencies = [ - "byte-tools", - "crypto-mac 0.7.0", - "digest 0.8.1", - "opaque-debug 0.2.3", -] - [[package]] name = "blake2" version = "0.10.6" @@ -1192,16 +698,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "blake2-rfc" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" -dependencies = [ - "arrayvec 0.4.12", - "constant_time_eq 0.1.5", -] - [[package]] name = "blake2b_simd" version = "1.0.2" @@ -1210,7 +706,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -1221,7 +717,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -1234,7 +730,7 @@ dependencies = [ "arrayvec 0.7.6", "cc", "cfg-if 1.0.0", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -1243,7 +739,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding", + "block-padding 0.1.5", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -1255,6 +751,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ + "block-padding 0.2.1", "generic-array 0.14.7", ] @@ -1277,23 +774,16 @@ dependencies = [ ] [[package]] -name = "blocking" -version = "1.6.1" +name = "block-padding" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" -dependencies = [ - "async-channel 2.3.1", - "async-task", - "futures-io", - "futures-lite 2.3.0", - "piper", -] +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-collections" -version = "0.2.0" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" dependencies = [ "log", "parity-scale-codec", @@ -1302,455 +792,62 @@ dependencies = [ ] [[package]] -name = "bounded-vec" -version = "0.7.1" +name = "bs58" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" -dependencies = [ - "thiserror", -] +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] -name = "bp-asset-hub-rococo" -version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "bp-xcm-bridge-hub-router", - "frame-support", - "parity-scale-codec", - "scale-info", + "tinyvec", ] [[package]] -name = "bp-asset-hub-westend" -version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "bstr" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ - "bp-xcm-bridge-hub-router", - "frame-support", - "parity-scale-codec", - "scale-info", + "memchr", + "serde", ] [[package]] -name = "bp-bridge-hub-cumulus" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "frame-system", - "polkadot-primitives", - "sp-api", - "sp-std", + "semver 0.6.0", ] [[package]] -name = "bp-bridge-hub-kusama" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", -] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] -name = "bp-bridge-hub-polkadot" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", -] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] -name = "bp-bridge-hub-rococo" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", -] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] -name = "bp-bridge-hub-westend" -version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-bridge-hub-cumulus", - "bp-messages", - "bp-runtime", - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-header-chain" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-runtime", - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-consensus-grandpa", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-kusama" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-std", -] - -[[package]] -name = "bp-parachains" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "impl-trait-for-tuples 0.2.2", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-polkadot" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-polkadot-bulletin" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "parity-util-mem", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-relayers" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-rococo" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-runtime" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "frame-system", - "hash-db", - "impl-trait-for-tuples 0.2.2", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "trie-db", -] - -[[package]] -name = "bp-test-utils" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-parachains", - "bp-polkadot-core", - "bp-runtime", - "ed25519-dalek", - "finality-grandpa", - "parity-scale-codec", - "sp-application-crypto", - "sp-consensus-grandpa", - "sp-core", - "sp-runtime", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bp-westend" -version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-xcm-bridge-hub" -version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "sp-std", -] - -[[package]] -name = "bp-xcm-bridge-hub-router" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "bridge-hub-common" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "pallet-message-queue", - "parity-scale-codec", - "scale-info", - "snowbridge-core", - "sp-core", - "sp-runtime", - "staging-xcm", -] - -[[package]] -name = "bridge-hub-test-utils" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "asset-test-utils", - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-relayers", - "bp-runtime", - "bp-test-utils", - "bridge-runtime-common", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-balances", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-bridge-parachains", - "pallet-bridge-relayers", - "pallet-timestamp", - "pallet-utility", - "parachains-common", - "parachains-runtimes-test-utils", - "parity-scale-codec", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-tracing", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "bridge-runtime-common" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-parachains", - "bp-polkadot-core", - "bp-relayers", - "bp-runtime", - "bp-xcm-bridge-hub", - "bp-xcm-bridge-hub-router", - "frame-support", - "frame-system", - "log", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-bridge-parachains", - "pallet-bridge-relayers", - "pallet-transaction-payment", - "pallet-utility", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", - "sp-trie", - "staging-xcm", - "staging-xcm-builder", - "tuplex", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "build-helper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" -dependencies = [ - "semver 0.6.0", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - -[[package]] -name = "bytemuck" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" +name = "bytemuck" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" [[package]] name = "byteorder" @@ -1760,9 +857,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "bzip2-sys" @@ -1775,16 +872,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "c2-chacha" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" -dependencies = [ - "cipher 0.2.5", - "ppv-lite86", -] - [[package]] name = "camino" version = "1.1.9" @@ -1819,21 +906,15 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.15" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cexpr" version = "0.6.0" @@ -1870,16 +951,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" -[[package]] -name = "chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" -dependencies = [ - "byteorder", - "keystream", -] - [[package]] name = "chacha20" version = "0.9.1" @@ -1887,7 +958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -1899,7 +970,7 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] @@ -1926,38 +997,16 @@ checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash 0.17.0", + "multihash", "serde", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] -name = "cid" -version = "0.10.1" +name = "cipher" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" -dependencies = [ - "core2", - "multibase", - "multihash 0.18.1", - "serde", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", @@ -1986,15 +1035,15 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap", - "unicode-width", + "unicode-width 0.1.14", "vec_map", ] [[package]] name = "clap" -version = "4.5.16" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -2002,34 +1051,33 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim 0.11.1", - "terminal_size", ] [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "cloudabi" @@ -2044,12 +1092,13 @@ dependencies = [ name = "clover" version = "0.9.0" dependencies = [ - "clap 4.5.16", + "array-bytes", + "clap 4.5.21", + "clover-babe-consensus-provider", "clover-primitives", "clover-rpc", "clover-runtime", "fc-api", - "fc-cli", "fc-consensus", "fc-db", "fc-mapping-sync", @@ -2059,22 +1108,23 @@ dependencies = [ "fp-consensus", "fp-evm", "fp-rpc", - "fp-storage", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-system", "frame-system-rpc-runtime-api", - "futures 0.3.30", + "futures 0.3.31", "hex-literal 0.3.4", - "jsonrpc-core", - "jsonrpc-pubsub", "jsonrpsee", "log", "pallet-contracts", "pallet-ethereum", "pallet-evm", + "pallet-im-online", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "polkadot-sdk", "primitive-types", + "rand 0.8.5", "sc-authority-discovery", "sc-basic-authorship", "sc-chain-spec", @@ -2090,15 +1140,21 @@ dependencies = [ "sc-consensus-slots", "sc-executor", "sc-keystore", - "sc-mixnet", "sc-network", + "sc-network-statement", "sc-network-sync", + "sc-offchain", "sc-rpc", "sc-rpc-api", + "sc-rpc-spec-v2", "sc-service", + "sc-statement-store", + "sc-storage-monitor", "sc-sync-state-rpc", + "sc-sysinfo", "sc-telemetry", "sc-transaction-pool", + "sc-transaction-pool-api", "serde", "serde_json", "sp-api", @@ -2111,40 +1167,43 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keyring", "sp-keystore", "sp-offchain", "sp-runtime", "sp-session", + "sp-statement-store", "sp-timestamp", "sp-transaction-pool", "sp-transaction-storage-proof", - "staging-node-inspect", + "sp-version", "structopt", + "substrate-build-script-utils", "substrate-frame-rpc-system", + "substrate-state-trie-migration-rpc", ] [[package]] -name = "clover-claims" -version = "0.9.0" +name = "clover-babe-consensus-provider" +version = "0.1.0" dependencies = [ - "frame-support", - "frame-system", - "hex-literal 0.3.4", - "log", - "pallet-balances", - "parity-scale-codec", - "rustc-hex", + "fc-rpc", + "sc-client-api", + "sc-consensus-babe", + "sc-service", "scale-info", - "serde", + "schnorrkel 0.9.1", + "sp-api", + "sp-application-crypto", + "sp-consensus-babe", "sp-core", - "sp-io", + "sp-inherents", + "sp-keystore", "sp-runtime", - "sp-std", - "type-utils", ] [[package]] -name = "clover-crc20" +name = "clover-claims" version = "0.9.0" dependencies = [ "frame-support", @@ -2152,7 +1211,6 @@ dependencies = [ "hex-literal 0.3.4", "log", "pallet-balances", - "pallet-evm", "parity-scale-codec", "rustc-hex", "scale-info", @@ -2170,7 +1228,7 @@ version = "0.9.0" dependencies = [ "enum-iterator", "int-enum", - "num-derive 0.2.5", + "num-derive", "num-traits", "parity-scale-codec", "scale-info", @@ -2217,12 +1275,11 @@ name = "clover-runtime" version = "0.9.0" dependencies = [ "clover-claims", - "clover-crc20", "clover-primitives", "clover-rpc-runtime-api", "clover-traits", "enum-iterator", - "evm", + "evm 0.39.1", "evm-accounts", "fp-evm", "fp-rpc", @@ -2241,6 +1298,7 @@ dependencies = [ "pallet-bounties", "pallet-collective", "pallet-contracts", + "pallet-contracts-primitives", "pallet-democracy", "pallet-elections-phragmen", "pallet-ethereum", @@ -2259,6 +1317,7 @@ dependencies = [ "pallet-session", "pallet-staking", "pallet-staking-reward-curve", + "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", @@ -2277,13 +1336,13 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe", "sp-core", - "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", "sp-runtime", "sp-session", "sp-staking", + "sp-statement-store", "sp-std", "sp-transaction-pool", "sp-version", @@ -2300,7 +1359,7 @@ dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples 0.1.3", - "num-derive 0.2.5", + "num-derive", "num-traits", "pallet-balances", "parity-scale-codec", @@ -2312,17 +1371,6 @@ dependencies = [ "type-utils", ] -[[package]] -name = "coarsetime" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d" -dependencies = [ - "libc", - "wasix", - "wasm-bindgen", -] - [[package]] name = "codespan-reporting" version = "0.11.1" @@ -2330,34 +1378,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ "termcolor", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] -name = "combine" -version = "4.6.7" +name = "comfy-table" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" dependencies = [ - "bytes", - "memchr", + "strum 0.26.3", + "strum_macros 0.26.4", + "unicode-width 0.2.0", ] [[package]] -name = "comfy-table" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof?rev=8657210#86572101f4210647984ab4efedba6b3fcc890895" dependencies = [ - "strum 0.26.3", - "strum_macros 0.26.4", - "unicode-width", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "merlin 3.0.0", + "rand_chacha 0.3.1", ] [[package]] @@ -2375,32 +1428,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", -] - -[[package]] -name = "const-hex" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "hex", - "proptest", - "serde", -] - [[package]] name = "const-oid" version = "0.9.6" @@ -2427,30 +1454,12 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "constant_time_eq" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" -[[package]] -name = "constcat" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - [[package]] name = "core-foundation" version = "0.9.4" @@ -2485,21 +1494,11 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "cpu-time" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -2528,7 +1527,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2 0.6.1", + "regalloc2", "smallvec", "target-lexicon", ] @@ -2595,7 +1594,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.10.5", + "itertools", "log", "smallvec", "wasmparser", @@ -2674,7 +1673,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.4.1", "zeroize", ] @@ -2706,7 +1705,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.6.1", + "subtle 2.4.1", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.4.1", ] [[package]] @@ -2715,12968 +1724,7580 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] -name = "cumulus-client-cli" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "curve25519-dalek" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" dependencies = [ - "clap 4.5.16", - "parity-scale-codec", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-service", - "sp-blockchain", - "sp-core", - "sp-runtime", - "url 2.5.2", + "byteorder", + "digest 0.8.1", + "rand_core 0.5.1", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "cumulus-client-collator" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" dependencies = [ - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-primitives-core", - "futures 0.3.30", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", - "tracing", + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "cumulus-client-consensus-aura" -version = "0.17.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "async-trait", - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-consensus-proposer", - "cumulus-client-parachain-inherent", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.30", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-slots", - "sc-telemetry", - "sc-utils", - "schnellru", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", - "substrate-prometheus-endpoint", - "tokio", - "tracing", + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version 0.4.1", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "cumulus-client-consensus-common" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "async-trait", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "dyn-clone", - "futures 0.3.30", - "log", - "parity-scale-codec", - "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "schnellru", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots", - "sp-core", - "sp-runtime", - "sp-timestamp", - "sp-trie", - "sp-version", - "substrate-prometheus-endpoint", - "tracing", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "cumulus-client-consensus-proposer" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "cxx" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c042a0ba58aaff55299632834d1ea53ceff73d62373f62c9ae60890ad1b942" dependencies = [ - "anyhow", - "async-trait", - "cumulus-primitives-parachain-inherent", - "sp-consensus", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "thiserror", + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", ] [[package]] -name = "cumulus-client-consensus-relay-chain" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "cxx-build" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45dc1c88d0fdac57518a9b1f6c4f4fb2aca8f3c30c0d03d7d8518b47ca0bcea6" dependencies = [ - "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.30", - "parking_lot 0.12.3", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", + "cc", + "codespan-reporting", + "proc-macro2 1.0.91", + "quote 1.0.37", + "scratch", + "syn 2.0.89", ] [[package]] -name = "cumulus-client-network" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "cumulus-relay-chain-interface", - "futures 0.3.30", - "futures-timer", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-parachain-primitives", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-version", - "tracing", -] +name = "cxxbridge-flags" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa7ed7d30b289e2592cc55bc2ccd89803a63c913e008e6eb59f06cddf45bb52f" [[package]] -name = "cumulus-client-parachain-inherent" -version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "cxxbridge-macro" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c465d22de46b851c04630a5fc749a26005b263632ed2e0d9cc81518ead78d" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", - "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-crypto-hashing", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", - "tracing", + "proc-macro2 1.0.91", + "quote 1.0.37", + "rustversion", + "syn 2.0.89", ] [[package]] -name = "cumulus-client-pov-recovery" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.30", - "futures-timer", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "rand 0.8.5", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime", - "sp-version", - "tracing", + "data-encoding", + "data-encoding-macro-internal", ] [[package]] -name = "cumulus-client-service" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-client-cli", - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", - "cumulus-relay-chain-inprocess-interface", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-minimal-node", - "futures 0.3.30", - "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-sync", - "sc-network-transactions", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-io", - "sp-runtime", - "sp-transaction-pool", +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", ] [[package]] -name = "cumulus-pallet-aura-ext" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ - "cumulus-pallet-parachain-system", - "frame-support", - "frame-system", - "pallet-aura", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", + "const-oid", + "zeroize", ] [[package]] -name = "cumulus-pallet-dmp-queue" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "cumulus-primitives-core", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "staging-xcm", + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", ] [[package]] -name = "cumulus-pallet-parachain-system" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ - "bytes", - "cumulus-pallet-parachain-system-proc-macro", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-primitives-proof-size-hostfunction", - "environmental", - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-message-queue", - "parity-scale-codec", - "polkadot-parachain-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "scale-info", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "trie-db", + "powerfmt", ] [[package]] -name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 1.0.109", ] [[package]] -name = "cumulus-pallet-session-benchmarking" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", - "parity-scale-codec", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "cumulus-pallet-solo-to-para" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "cumulus-pallet-parachain-system", - "frame-support", - "frame-system", - "pallet-sudo", - "parity-scale-codec", - "polkadot-primitives", - "scale-info", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "cumulus-pallet-xcm" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "staging-xcm", + "derive_more-impl", ] [[package]] -name = "cumulus-pallet-xcmp-queue" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "bounded-collections", - "bp-xcm-bridge-hub-router", - "cumulus-primitives-core", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-message-queue", - "parity-scale-codec", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "cumulus-ping" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-pallet-xcm", - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "staging-xcm", -] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] -name = "cumulus-primitives-aura" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-primitives", - "sp-api", - "sp-consensus-aura", - "sp-runtime", + "generic-array 0.12.4", ] [[package]] -name = "cumulus-primitives-core" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-primitives", - "scale-info", - "sp-api", - "sp-runtime", - "sp-trie", - "staging-xcm", + "generic-array 0.14.7", ] [[package]] -name = "cumulus-primitives-parachain-inherent" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle 2.4.1", ] [[package]] -name = "cumulus-primitives-proof-size-hostfunction" -version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "sp-externalities", - "sp-runtime-interface", - "sp-trie", + "dirs-sys", ] [[package]] -name = "cumulus-primitives-storage-weight-reclaim" -version = "7.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", - "docify", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "cfg-if 1.0.0", + "dirs-sys-next", ] [[package]] -name = "cumulus-primitives-timestamp" -version = "0.15.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ - "cumulus-primitives-core", - "sp-inherents", - "sp-timestamp", + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", ] [[package]] -name = "cumulus-primitives-utility" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ - "cumulus-primitives-core", - "frame-support", - "log", - "pallet-asset-conversion", - "parity-scale-codec", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "sp-io", - "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", + "libc", + "redox_users", + "winapi", ] [[package]] -name = "cumulus-relay-chain-inprocess-interface" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures 0.3.30", - "futures-timer", - "polkadot-cli", - "polkadot-service", - "sc-cli", - "sc-client-api", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "cumulus-relay-chain-interface" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "futures 0.3.30", - "jsonrpsee-core", - "parity-scale-codec", - "polkadot-overseer", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-state-machine", - "sp-version", - "thiserror", + "ark-ec", + "ark-ff", + "ark-scale", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript", + "arrayvec 0.7.6", + "rand_core 0.6.4", + "zeroize", ] [[package]] -name = "cumulus-relay-chain-minimal-node" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "docify" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a772b62b1837c8f060432ddcc10b17aae1453ef17617a99bc07789252d2a5896" dependencies = [ - "array-bytes", - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-rpc-interface", - "futures 0.3.30", - "polkadot-core-primitives", - "polkadot-network-bridge", - "polkadot-node-network-protocol", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "polkadot-service", - "sc-authority-discovery", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-service", - "sc-tracing", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-runtime", - "substrate-prometheus-endpoint", - "tokio", - "tracing", + "docify_macros", ] [[package]] -name = "cumulus-relay-chain-rpc-interface" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "docify_macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7" dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "either", - "futures 0.3.30", - "futures-timer", - "jsonrpsee", - "parity-scale-codec", - "pin-project", - "polkadot-overseer", - "rand 0.8.5", - "sc-client-api", - "sc-rpc-api", - "sc-service", - "schnellru", - "serde", - "serde_json", - "smoldot", - "smoldot-light", - "sp-api", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-version", - "thiserror", - "tokio", - "tokio-util", - "tracing", - "url 2.5.2", + "common-path", + "derive-syn-parse 0.2.0", + "once_cell", + "proc-macro2 1.0.91", + "quote 1.0.37", + "regex", + "syn 2.0.89", + "termcolor", + "toml 0.8.19", + "walkdir", ] [[package]] -name = "cumulus-test-relay-sproof-builder" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-primitives-core", - "parity-scale-codec", - "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-trie", -] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] -name = "curve25519-dalek" -version = "4.1.3" +name = "downcast" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "rustc_version 0.4.1", - "subtle 2.6.1", - "zeroize", -] +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" +name = "downcast-rs" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" +name = "dtoa" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] -name = "cxx" -version = "1.0.128" +name = "dyn-clonable" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "dyn-clonable-impl", + "dyn-clone", ] [[package]] -name = "cxx-build" -version = "1.0.128" +name = "dyn-clonable-impl" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "scratch", - "syn 2.0.77", + "syn 1.0.109", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.128" +name = "dyn-clone" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] -name = "cxxbridge-macro" -version = "1.0.128" +name = "ecdsa" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", ] [[package]] -name = "dashmap" -version = "5.5.3" +name = "ed25519" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "cfg-if 1.0.0", - "hashbrown 0.14.5", - "lock_api 0.4.12", - "once_cell", - "parking_lot_core 0.9.10", + "pkcs8", + "signature", ] [[package]] -name = "data-encoding" -version = "2.6.0" +name = "ed25519-dalek" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "subtle 2.4.1", + "zeroize", +] [[package]] -name = "data-encoding-macro" -version = "0.1.15" +name = "ed25519-zebra" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ - "data-encoding", - "data-encoding-macro-internal", + "curve25519-dalek 3.2.0", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", ] [[package]] -name = "data-encoding-macro-internal" -version = "0.1.13" +name = "either" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" dependencies = [ - "data-encoding", - "syn 1.0.109", + "serde", ] [[package]] -name = "der" -version = "0.7.9" +name = "elliptic-curve" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "const-oid", + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array 0.14.7", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle 2.4.1", "zeroize", ] [[package]] -name = "der-parser" -version = "8.2.0" +name = "enum-as-inner" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "asn1-rs 0.5.2", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", + "heck 0.4.1", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "der-parser" -version = "9.0.0" +name = "enum-iterator" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +checksum = "c79a6321a1197d7730510c7e3f6cb80432dfefecb32426de8cea0aa19b4bb8d7" dependencies = [ - "asn1-rs 0.6.2", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", + "enum-iterator-derive", ] [[package]] -name = "deranged" -version = "0.3.11" +name = "enum-iterator-derive" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06" dependencies = [ - "powerfmt", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "enumflags2" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "enumflags2_derive", ] [[package]] -name = "derive-syn-parse" -version = "0.2.0" +name = "enumflags2_derive" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] -name = "derive_more" -version = "0.99.18" +name = "env_logger" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ - "convert_case", - "proc-macro2 1.0.86", - "quote 1.0.37", - "rustc_version 0.4.1", - "syn 2.0.77", + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", ] [[package]] -name = "difflib" -version = "0.4.0" +name = "environmental" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] -name = "digest" -version = "0.8.1" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "digest" -version = "0.9.0" +name = "errno" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "generic-array 0.14.7", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "digest" -version = "0.10.7" +name = "ethbloom" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle 2.6.1", + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", ] [[package]] -name = "directories" -version = "5.0.1" +name = "ethereum" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" dependencies = [ - "dirs-sys", + "bytes", + "ethereum-types", + "hash-db 0.15.2", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3 0.10.8", + "triehash", ] [[package]] -name = "directories-next" -version = "2.0.0" +name = "ethereum" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", + "bytes", + "ethereum-types", + "hash-db 0.16.0", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3 0.10.8", + "trie-root", ] [[package]] -name = "dirs-sys" -version = "0.4.1" +name = "ethereum-types" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "displaydoc" -version = "0.2.5" +name = "event-listener" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "concurrent-queue", + "parking", + "pin-project-lite 0.2.15", ] [[package]] -name = "docify" -version = "0.2.8" +name = "event-listener-strategy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "docify_macros", + "event-listener 5.3.1", + "pin-project-lite 0.2.15", ] [[package]] -name = "docify_macros" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +name = "evm" +version = "0.39.1" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ - "common-path", - "derive-syn-parse", - "once_cell", - "proc-macro2 1.0.86", - "quote 1.0.37", - "regex", - "syn 2.0.77", - "termcolor", - "toml 0.8.19", - "walkdir", + "auto_impl", + "environmental", + "ethereum 0.14.0", + "evm-core 0.39.0", + "evm-gasometer 0.39.0", + "evm-runtime 0.39.0", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3 0.10.8", ] [[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "downcast" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dtoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clonable" -version = "0.9.0" +name = "evm" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" dependencies = [ - "dyn-clonable-impl", - "dyn-clone", + "auto_impl", + "environmental", + "ethereum 0.15.0", + "evm-core 0.41.0", + "evm-gasometer 0.41.0", + "evm-runtime 0.41.0", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3 0.10.8", ] [[package]] -name = "dyn-clonable-impl" +name = "evm-accounts" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "clover-traits", + "fp-evm", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.1.3", + "libsecp256k1 0.3.5", + "pallet-balances", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "type-utils", ] [[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +name = "evm-core" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature", - "spki", + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", ] [[package]] -name = "ed25519" -version = "2.2.3" +name = "evm-core" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +checksum = "d1da6cedc5cedb4208e59467106db0d1f50db01b920920589f8e672c02fdc04f" dependencies = [ - "pkcs8", - "signature", + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", ] [[package]] -name = "ed25519-dalek" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +name = "evm-gasometer" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2 0.10.8", - "subtle 2.6.1", - "zeroize", + "environmental", + "evm-core 0.39.0", + "evm-runtime 0.39.0", + "primitive-types", ] [[package]] -name = "ed25519-zebra" -version = "4.0.3" +name = "evm-gasometer" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" dependencies = [ - "curve25519-dalek", - "ed25519", - "hashbrown 0.14.5", - "hex", - "rand_core 0.6.4", - "sha2 0.10.8", - "zeroize", + "environmental", + "evm-core 0.41.0", + "evm-runtime 0.41.0", + "primitive-types", ] [[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +name = "evm-runtime" +version = "0.39.0" +source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" dependencies = [ - "serde", + "auto_impl", + "environmental", + "evm-core 0.39.0", + "primitive-types", + "sha3 0.10.8", ] [[package]] -name = "elliptic-curve" -version = "0.13.8" +name = "evm-runtime" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array 0.14.7", - "group", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "emulated-integration-tests-common" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "asset-test-utils", - "bp-messages", - "bridge-runtime-common", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "frame-support", - "pallet-assets", - "pallet-balances", - "pallet-bridge-messages", - "pallet-message-queue", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "paste", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "sc-consensus-grandpa", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-core", - "sp-runtime", - "staging-xcm", - "xcm-emulator", + "auto_impl", + "environmental", + "evm-core 0.41.0", + "primitive-types", + "sha3 0.10.8", ] [[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "enum-as-inner" -version = "0.5.1" +name = "exit-future" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "futures 0.3.31", ] [[package]] -name = "enum-as-inner" -version = "0.6.0" +name = "expander" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.86", + "blake2", + "file-guard", + "fs-err", + "prettyplease 0.2.25", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] -name = "enum-iterator" -version = "0.6.0" +name = "failure" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79a6321a1197d7730510c7e3f6cb80432dfefecb32426de8cea0aa19b4bb8d7" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" dependencies = [ - "enum-iterator-derive", + "backtrace", + "failure_derive", ] [[package]] -name = "enum-iterator-derive" -version = "0.6.0" +name = "failure_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", + "synstructure 0.12.6", ] [[package]] -name = "enumflags2" -version = "0.7.10" +name = "fake-simd" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" -dependencies = [ - "enumflags2_derive", -] +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] -name = "enumflags2_derive" -version = "0.7.10" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] -name = "enumn" -version = "0.1.14" +name = "fastrand" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +name = "fc-api" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", + "async-trait", + "fp-storage", + "parity-scale-codec", + "sp-core", + "sp-runtime", ] [[package]] -name = "environmental" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +name = "fc-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "libc", - "windows-sys 0.52.0", + "async-trait", + "fp-consensus", + "fp-rpc", + "sc-consensus", + "sp-api", + "sp-block-builder", + "sp-consensus", + "sp-runtime", + "thiserror", ] [[package]] -name = "ethabi-decode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d398648d65820a727d6a81e58b962f874473396a047e4c30bafe3240953417" +name = "fc-db" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum-types", - "tiny-keccak", + "async-trait", + "ethereum 0.15.0", + "fc-api", + "fc-storage", + "fp-consensus", + "fp-rpc", + "fp-storage", + "futures 0.3.31", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-client-db", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-storage", + "sqlx", + "tokio", ] [[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +name = "fc-mapping-sync" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", + "fc-db", + "fc-storage", + "fp-consensus", + "fp-rpc", + "futures 0.3.31", + "futures-timer", + "log", + "parking_lot 0.12.3", + "sc-client-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tokio", ] [[package]] -name = "ethereum" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" +name = "fc-rpc" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "bytes", + "ethereum 0.15.0", "ethereum-types", - "hash-db", - "hash256-std-hasher", + "evm 0.41.1", + "fc-api", + "fc-mapping-sync", + "fc-rpc-core", + "fc-storage", + "fp-evm", + "fp-rpc", + "fp-storage", + "futures 0.3.31", + "hex", + "jsonrpsee", + "libsecp256k1 0.7.1", + "log", + "pallet-evm", "parity-scale-codec", + "prometheus", + "rand 0.8.5", "rlp", - "scale-info", + "sc-client-api", + "sc-consensus-aura", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-rpc", + "sc-service", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "schnellru", "serde", - "sha3", - "trie-root", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", ] [[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +name = "fc-rpc-core" +version = "1.1.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", + "ethereum 0.15.0", + "ethereum-types", + "jsonrpsee", + "rustc-hex", + "serde", + "serde_json", ] [[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +name = "fc-storage" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" +dependencies = [ + "ethereum 0.15.0", + "ethereum-types", + "fp-rpc", + "fp-storage", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-storage", +] [[package]] -name = "event-listener" -version = "3.1.0" +name = "fdlimit" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", + "libc", ] [[package]] -name = "event-listener" -version = "5.3.1" +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "event-listener-strategy" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" dependencies = [ - "event-listener 5.3.1", - "pin-project-lite", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin 3.0.0", ] [[package]] -name = "evm" -version = "0.41.1" +name = "fiat-crypto" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" -dependencies = [ - "auto_impl", - "environmental", - "ethereum", - "evm-core", - "evm-gasometer", - "evm-runtime", - "log", - "parity-scale-codec", - "primitive-types", - "rlp", - "scale-info", - "serde", - "sha3", -] +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] -name = "evm-accounts" -version = "0.9.0" +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" dependencies = [ - "clover-traits", - "fp-evm", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.1.3", - "libsecp256k1 0.3.5", - "pallet-balances", - "pallet-evm", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "type-utils", + "libc", + "winapi", ] [[package]] -name = "evm-core" -version = "0.41.0" +name = "file-per-thread-logger" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da6cedc5cedb4208e59467106db0d1f50db01b920920589f8e672c02fdc04f" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "parity-scale-codec", - "primitive-types", - "scale-info", - "serde", + "env_logger", + "log", ] [[package]] -name = "evm-gasometer" -version = "0.41.0" +name = "filetime" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ - "environmental", - "evm-core", - "evm-runtime", - "primitive-types", + "cfg-if 1.0.0", + "libc", + "libredox", + "windows-sys 0.59.0", ] [[package]] -name = "evm-runtime" -version = "0.41.0" +name = "finality-grandpa" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ - "auto_impl", - "environmental", - "evm-core", - "primitive-types", - "sha3", + "either", + "futures 0.3.31", + "futures-timer", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.3", + "scale-info", ] [[package]] -name = "exit-future" -version = "0.2.0" +name = "fixed-hash" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ - "futures 0.3.30", + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", ] [[package]] -name = "expander" -version = "2.2.1" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ - "blake2 0.10.6", - "file-guard", - "fs-err", - "prettyplease 0.2.22", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "crc32fast", + "libz-sys", + "miniz_oxide", ] [[package]] -name = "failure" -version = "0.1.8" +name = "float-cmp" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" dependencies = [ - "backtrace", - "failure_derive", + "num-traits", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "flume" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", - "synstructure 0.12.6", + "futures-core", + "futures-sink", + "spin 0.9.8", ] [[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fallible-iterator" -version = "0.3.0" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "fastrand" -version = "1.9.0" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "instant", + "foreign-types-shared", ] [[package]] -name = "fastrand" -version = "2.1.1" +name = "foreign-types-shared" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +name = "fork-tree" +version = "3.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", + "parity-scale-codec", ] [[package]] -name = "fatality" -version = "0.1.1" +name = "form_urlencoded" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "fatality-proc-macro", - "thiserror", + "percent-encoding 2.3.1", ] [[package]] -name = "fatality-proc-macro" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" +name = "fp-account" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "expander", - "indexmap 2.5.0", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "hex", + "impl-serde", + "libsecp256k1 0.7.1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", ] [[package]] -name = "fc-api" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "fp-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "async-trait", - "fp-storage", + "ethereum 0.15.0", "parity-scale-codec", "sp-core", "sp-runtime", + "sp-std", ] [[package]] -name = "fc-cli" +name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "clap 4.5.16", + "ethereum 0.15.0", "ethereum-types", - "fc-db", - "fp-rpc", - "fp-storage", - "sc-cli", - "serde", - "serde_json", - "sp-api", - "sp-blockchain", - "sp-runtime", + "fp-evm", + "frame-support", + "parity-scale-codec", + "sp-std", ] [[package]] -name = "fc-consensus" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "async-trait", - "fp-consensus", - "fp-rpc", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-consensus", + "evm 0.41.1", + "frame-support", + "num_enum", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", "sp-runtime", - "thiserror", + "sp-std", ] [[package]] -name = "fc-db" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "fp-rpc" +version = "3.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "async-trait", - "ethereum", - "fc-api", - "fc-storage", - "fp-consensus", - "fp-rpc", - "fp-storage", - "futures 0.3.30", - "kvdb-rocksdb", - "log", - "parity-db", + "ethereum 0.15.0", + "ethereum-types", + "fp-evm", "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-client-db", - "smallvec", + "scale-info", "sp-api", - "sp-blockchain", "sp-core", - "sp-database", "sp-runtime", - "sqlx", - "tokio", + "sp-state-machine", + "sp-std", ] [[package]] -name = "fc-mapping-sync" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "fp-storage" +version = "2.0.0" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "fc-db", - "fc-storage", - "fp-consensus", - "fp-rpc", - "futures 0.3.30", - "futures-timer", + "parity-scale-codec", + "serde", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "frame-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" +dependencies = [ + "frame-support", + "frame-support-procedural", + "frame-system", + "linregress", "log", - "parking_lot 0.12.3", - "sc-client-api", - "sc-utils", + "parity-scale-codec", + "paste", + "scale-info", + "serde", "sp-api", - "sp-blockchain", - "sp-consensus", + "sp-application-crypto", "sp-core", + "sp-io", "sp-runtime", - "tokio", + "sp-runtime-interface", + "sp-std", + "sp-storage", + "static_assertions", ] [[package]] -name = "fc-rpc" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "frame-benchmarking-cli" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "ethereum", - "ethereum-types", - "evm", - "fc-api", - "fc-mapping-sync", - "fc-rpc-core", - "fc-storage", - "fp-evm", - "fp-rpc", - "fp-storage", - "futures 0.3.30", - "hex", - "jsonrpsee", - "libsecp256k1 0.7.1", + "Inflector", + "array-bytes", + "chrono", + "clap 4.5.21", + "comfy-table", + "frame-benchmarking", + "frame-support", + "frame-system", + "gethostname", + "handlebars", + "itertools", + "lazy_static", + "linked-hash-map", "log", - "pallet-evm", "parity-scale-codec", - "prometheus", "rand 0.8.5", - "rlp", + "rand_pcg", + "sc-block-builder", + "sc-cli", "sc-client-api", - "sc-consensus-aura", - "sc-network", - "sc-network-sync", - "sc-rpc", + "sc-client-db", + "sc-executor", "sc-service", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", + "sc-sysinfo", "serde", + "serde_json", "sp-api", - "sp-block-builder", "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", "sp-core", + "sp-database", "sp-externalities", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-state-machine", "sp-storage", - "sp-timestamp", - "substrate-prometheus-endpoint", + "sp-trie", + "sp-wasm-interface", "thiserror", - "tokio", + "thousands", ] [[package]] -name = "fc-rpc-core" -version = "1.1.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "frame-election-provider-solution-type" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "ethereum", - "ethereum-types", - "jsonrpsee", - "rlp", - "rustc-hex", - "serde", - "serde_json", - "sp-crypto-hashing", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "fc-storage" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "frame-election-provider-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "ethereum", - "ethereum-types", - "fp-rpc", - "fp-storage", + "frame-election-provider-solution-type", + "frame-support", + "frame-system", "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-io", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-npos-elections", "sp-runtime", - "sp-storage", + "sp-std", ] [[package]] -name = "fdlimit" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" +name = "frame-executive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "libc", - "thiserror", + "frame-support", + "frame-system", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] -name = "ff" -version = "0.13.0" +name = "frame-metadata" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ - "rand_core 0.6.4", - "subtle 2.6.1", + "cfg-if 1.0.0", + "parity-scale-codec", + "scale-info", + "serde", ] [[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +name = "frame-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" +dependencies = [ + "aquamarine", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural", + "impl-trait-for-tuples 0.2.3", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-debug-derive", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-metadata-ir", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-weights", + "static_assertions", + "tt-call", +] [[package]] -name = "file-guard" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +name = "frame-support-procedural" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "libc", - "winapi", + "Inflector", + "cfg-expr", + "derive-syn-parse 0.1.5", + "expander", + "frame-support-procedural-tools", + "itertools", + "macro_magic", + "proc-macro-warning", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "file-per-thread-logger" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" +name = "frame-support-procedural-tools" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "env_logger", - "log", + "frame-support-procedural-tools-derive", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "filetime" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +name = "frame-support-procedural-tools-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "libc", - "libredox", - "windows-sys 0.59.0", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "finality-grandpa" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +name = "frame-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "either", - "futures 0.3.30", - "futures-timer", + "cfg-if 1.0.0", + "frame-support", "log", - "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", + "sp-weights", ] [[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +name = "frame-system-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", + "parity-scale-codec", + "sp-api", ] [[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +name = "frame-try-runtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" +dependencies = [ + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] [[package]] -name = "float-cmp" -version = "0.9.0" +name = "fs-err" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" dependencies = [ - "num-traits", + "autocfg", ] [[package]] -name = "flume" -version = "0.11.0" +name = "fs2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", + "libc", + "winapi", ] [[package]] -name = "fnv" -version = "1.0.7" +name = "fs4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +dependencies = [ + "rustix 0.38.41", + "windows-sys 0.48.0", +] [[package]] -name = "foreign-types" -version = "0.3.2" +name = "funty" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "futures" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] -name = "fork-tree" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "parity-scale-codec", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "futures-channel" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ - "percent-encoding 2.3.1", + "futures-core", + "futures-sink", ] [[package]] -name = "forwarded-header-value" -version = "0.1.1" +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ - "nonempty", - "thiserror", + "futures-core", + "futures-task", + "futures-util", + "num_cpus", ] [[package]] -name = "fp-account" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ - "hex", - "impl-serde", - "libsecp256k1 0.7.1", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "staging-xcm", + "futures-core", + "lock_api 0.4.12", + "parking_lot 0.12.3", ] [[package]] -name = "fp-consensus" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "ethereum", - "parity-scale-codec", - "sp-core", - "sp-runtime", + "futures-core", + "pin-project-lite 0.2.15", ] [[package]] -name = "fp-ethereum" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "ethereum", - "ethereum-types", - "fp-evm", - "frame-support", - "parity-scale-codec", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "fp-evm" -version = "3.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "futures-rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ - "evm", - "frame-support", - "num_enum", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", + "futures-io", + "rustls 0.20.9", + "webpki", ] [[package]] -name = "fp-rpc" -version = "3.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "ethereum", - "ethereum-types", - "fp-evm", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-state-machine", + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite 0.2.15", + "pin-utils", + "slab", ] [[package]] -name = "fp-storage" -version = "2.0.0" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" dependencies = [ - "parity-scale-codec", - "serde", + "byteorder", ] [[package]] -name = "fragile" -version = "2.0.0" +name = "generic-array" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] [[package]] -name = "frame-benchmarking" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "frame-support", - "frame-support-procedural", - "frame-system", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-storage", - "static_assertions", + "typenum", + "version_check", + "zeroize", ] [[package]] -name = "frame-benchmarking-cli" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" dependencies = [ - "Inflector", - "array-bytes", - "chrono", - "clap 4.5.16", - "comfy-table", - "frame-benchmarking", - "frame-support", - "frame-system", - "gethostname", - "handlebars", - "itertools 0.11.0", - "lazy_static", - "linked-hash-map", - "log", - "parity-scale-codec", - "rand 0.8.5", - "rand_pcg", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-executor", - "sc-service", - "sc-sysinfo", - "serde", - "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-externalities", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", - "sp-wasm-interface", - "thiserror", - "thousands", + "libc", + "winapi", ] [[package]] -name = "frame-benchmarking-pallet-pov" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] -name = "frame-election-provider-solution-type" -version = "14.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] -name = "frame-election-provider-support" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "frame-election-provider-solution-type", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-npos-elections", - "sp-runtime", + "rand_core 0.6.4", ] [[package]] -name = "frame-executive" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "aquamarine", - "frame-support", - "frame-system", - "frame-try-runtime", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-tracing", + "opaque-debug 0.3.1", + "polyval", ] [[package]] -name = "frame-metadata" -version = "16.0.0" +name = "gimli" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "cfg-if 1.0.0", - "parity-scale-codec", - "scale-info", - "serde", + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", ] [[package]] -name = "frame-metadata-hash-extension" -version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" dependencies = [ - "array-bytes", - "docify", - "frame-support", - "frame-system", + "aho-corasick", + "bstr", "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] -name = "frame-remote-externalities" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "futures 0.3.30", - "indicatif", - "jsonrpsee", - "log", - "parity-scale-codec", - "serde", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-runtime", - "sp-state-machine", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", + "ff", + "rand_core 0.6.4", + "subtle 2.4.1", ] [[package]] -name = "frame-support" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "aquamarine", - "array-bytes", - "bitflags 1.3.2", - "docify", - "environmental", - "frame-metadata", - "frame-support-procedural", - "impl-trait-for-tuples 0.2.2", - "k256", +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ "log", - "macro_magic", - "parity-scale-codec", - "paste", - "scale-info", + "pest", + "pest_derive", "serde", "serde_json", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing-proc-macro", - "sp-debug-derive", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-metadata-ir", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-weights", - "static_assertions", - "tt-call", + "thiserror", ] [[package]] -name = "frame-support-procedural" -version = "30.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse", - "expander", - "frame-support-procedural-tools", - "itertools 0.11.0", - "macro_magic", - "proc-macro-warning 1.0.2", - "proc-macro2 1.0.86", - "quote 1.0.37", - "sp-crypto-hashing", - "syn 2.0.77", -] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" [[package]] -name = "frame-support-procedural-tools" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support-procedural-tools-derive", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] +name = "hash-db" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" [[package]] -name = "frame-support-procedural-tools-derive" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "crunchy", ] [[package]] -name = "frame-system" -version = "37.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "cfg-if 1.0.0", - "docify", - "frame-support", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", - "sp-weights", + "ahash 0.7.8", ] [[package]] -name = "frame-system-benchmarking" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "ahash 0.8.11", ] [[package]] -name = "frame-system-rpc-runtime-api" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "docify", - "parity-scale-codec", - "sp-api", + "ahash 0.8.11", + "allocator-api2", ] [[package]] -name = "frame-try-runtime" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "parity-scale-codec", - "sp-api", - "sp-runtime", -] +name = "hashbrown" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" [[package]] -name = "fs-err" -version = "2.11.0" +name = "hashlink" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "autocfg", + "hashbrown 0.14.5", ] [[package]] -name = "fs2" -version = "0.4.3" +name = "heck" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ - "libc", - "winapi", + "unicode-segmentation", ] [[package]] -name = "fs4" -version = "0.7.0" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" dependencies = [ - "rustix 0.38.35", - "windows-sys 0.48.0", + "unicode-segmentation", ] [[package]] -name = "funty" -version = "2.0.0" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] -name = "futures" -version = "0.1.31" +name = "hermit-abi" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] [[package]] -name = "futures" -version = "0.3.30" +name = "hermit-abi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] -name = "futures-bounded" -version = "0.1.0" +name = "hermit-abi" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b07bbbe7d7e78809544c6f718d875627addc73a7c3582447abc052cd3dc67e0" -dependencies = [ - "futures-timer", - "futures-util", -] +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] -name = "futures-channel" -version = "0.3.30" +name = "hex" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "futures-core" -version = "0.3.30" +name = "hex-literal" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" [[package]] -name = "futures-executor" -version = "0.3.30" +name = "hex-literal" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] -name = "futures-intrusive" -version = "0.5.0" +name = "hkdf" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "futures-core", - "lock_api 0.4.12", - "parking_lot 0.12.3", + "hmac 0.12.1", ] [[package]] -name = "futures-io" -version = "0.3.30" +name = "hmac" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +dependencies = [ + "crypto-mac 0.7.0", + "digest 0.8.1", +] [[package]] -name = "futures-lite" -version = "1.13.0" +name = "hmac" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", + "crypto-mac 0.8.0", + "digest 0.9.0", ] [[package]] -name = "futures-lite" -version = "2.3.0" +name = "hmac" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "fastrand 2.1.1", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", + "crypto-mac 0.11.1", + "digest 0.9.0", ] [[package]] -name = "futures-macro" -version = "0.3.30" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "digest 0.10.7", ] [[package]] -name = "futures-rustls" -version = "0.24.0" +name = "hmac-drbg" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28" +checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" dependencies = [ - "futures-io", - "rustls 0.21.12", + "digest 0.8.1", + "generic-array 0.12.4", + "hmac 0.7.1", ] [[package]] -name = "futures-sink" -version = "0.3.30" +name = "hmac-drbg" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.7", + "hmac 0.8.1", +] [[package]] -name = "futures-task" -version = "0.3.30" +name = "home" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] [[package]] -name = "futures-timer" -version = "3.0.3" +name = "hostname" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] [[package]] -name = "futures-util" -version = "0.3.30" +name = "http" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "futures 0.1.31", - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "http-body" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "byteorder", + "bytes", + "http", + "pin-project-lite 0.2.15", ] [[package]] -name = "generate-bags" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "chrono", - "frame-election-provider-support", - "frame-support", - "frame-system", - "num-format", - "pallet-staking", - "sp-staking", -] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] -name = "generic-array" -version = "0.12.4" +name = "httparse" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] -name = "generic-array" -version = "0.14.7" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] -name = "gethostname" -version = "0.2.3" +name = "humantime" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" -dependencies = [ - "libc", - "winapi", -] +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] -name = "getrandom" -version = "0.1.16" +name = "hyper" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite 0.2.15", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "hyper-rustls" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs", + "tokio", + "tokio-rustls", ] [[package]] -name = "getrandom_or_panic" -version = "0.0.3" +name = "iana-time-zone" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ - "rand 0.8.5", - "rand_core 0.6.4", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", ] [[package]] -name = "ghash" -version = "0.5.1" +name = "iana-time-zone-haiku" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "opaque-debug 0.3.1", - "polyval", + "cc", ] [[package]] -name = "gimli" -version = "0.27.3" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ - "fallible-iterator 0.2.0", - "indexmap 1.9.3", - "stable_deref_trait", + "displaydoc", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "gimli" -version = "0.28.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ - "fallible-iterator 0.3.0", - "stable_deref_trait", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "gimli" -version = "0.29.0" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] [[package]] -name = "glob" -version = "0.3.1" +name = "icu_locid_transform_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] -name = "governor" -version = "0.6.3" +name = "icu_normalizer" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ - "cfg-if 1.0.0", - "dashmap", - "futures 0.3.30", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot 0.12.3", - "portable-atomic", - "quanta", - "rand 0.8.5", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", "smallvec", - "spinning_top", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", ] [[package]] -name = "group" -version = "0.13.0" +name = "icu_normalizer_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle 2.6.1", -] +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] -name = "h2" -version = "0.3.26" +name = "icu_properties" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.5.0", - "slab", - "tokio", - "tokio-util", - "tracing", + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "h2" -version = "0.4.6" +name = "icu_properties_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap 2.5.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] -name = "handlebars" -version = "5.1.2" +name = "icu_provider" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "hash-db" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" - -[[package]] -name = "hash256-std-hasher" -version = "0.15.2" +name = "icu_provider_macros" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "crunchy", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "idna" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" dependencies = [ - "ahash 0.7.8", + "matches", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "hashbrown" -version = "0.13.2" +name = "idna" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ - "ahash 0.8.11", + "matches", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "hashbrown" -version = "0.14.5" +name = "idna" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "ahash 0.8.11", - "allocator-api2", - "serde", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "hashlink" -version = "0.8.4" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "hashbrown 0.14.5", + "icu_normalizer", + "icu_properties", ] [[package]] -name = "heck" -version = "0.3.3" +name = "if-addrs" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" dependencies = [ - "unicode-segmentation", + "libc", + "windows-sys 0.48.0", ] [[package]] -name = "heck" -version = "0.4.1" +name = "if-watch" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ - "unicode-segmentation", + "async-io", + "core-foundation", + "fnv", + "futures 0.3.31", + "if-addrs", + "ipnet", + "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-proto", + "netlink-sys", + "rtnetlink", + "system-configuration", + "tokio", + "windows", ] [[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.1.19" +name = "impl-codec" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "libc", + "parity-scale-codec", ] [[package]] -name = "hermit-abi" -version = "0.3.9" +name = "impl-rlp" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] [[package]] -name = "hermit-abi" +name = "impl-serde" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] [[package]] -name = "hex" -version = "0.4.3" +name = "impl-trait-for-tuples" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" +dependencies = [ + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", +] [[package]] -name = "hex-conservative" -version = "0.1.2" +name = "impl-trait-for-tuples" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] -name = "hex-literal" -version = "0.3.4" +name = "include_dir" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +dependencies = [ + "include_dir_macros", +] [[package]] -name = "hex-literal" -version = "0.4.1" +name = "include_dir_macros" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +dependencies = [ + "proc-macro2 1.0.91", + "quote 1.0.37", +] [[package]] -name = "hkdf" -version = "0.12.4" +name = "indexmap" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "hmac 0.12.1", + "autocfg", + "hashbrown 0.12.3", + "serde", ] [[package]] -name = "hmac" -version = "0.7.1" +name = "indexmap" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ - "crypto-mac 0.7.0", - "digest 0.8.1", + "equivalent", + "hashbrown 0.15.1", ] [[package]] -name = "hmac" -version = "0.8.1" +name = "indexmap-nostd" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", -] +checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] -name = "hmac" -version = "0.12.1" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "digest 0.10.7", + "generic-array 0.14.7", ] [[package]] -name = "hmac-drbg" -version = "0.2.0" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "digest 0.8.1", - "generic-array 0.12.4", - "hmac 0.7.1", + "cfg-if 1.0.0", ] [[package]] -name = "hmac-drbg" -version = "0.3.0" +name = "int-enum" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +checksum = "2b1428b2b1abe959e6eedb0a17d0ab12f6ba20e1106cc29fc4874e3ba393c177" dependencies = [ - "digest 0.9.0", - "generic-array 0.14.7", - "hmac 0.8.1", + "cfg-if 0.1.10", + "int-enum-impl", ] [[package]] -name = "home" -version = "0.5.9" +name = "int-enum-impl" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "a2c3cecaad8ca1a5020843500c696de2b9a07b63b624ddeef91f85f9bafb3671" dependencies = [ - "windows-sys 0.52.0", + "cfg-if 0.1.10", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "hostname" -version = "0.3.1" +name = "integer-sqrt" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "libc", - "match_cfg", - "winapi", + "num-traits", ] [[package]] -name = "http" -version = "0.2.12" +name = "io-lifetimes" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "bytes", - "fnv", - "itoa", + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", ] [[package]] -name = "http" -version = "1.1.0" +name = "ip_network" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] -name = "http-body" -version = "0.4.6" +name = "ipconfig" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", + "socket2 0.5.7", + "widestring", + "windows-sys 0.48.0", + "winreg", ] [[package]] -name = "http-body" -version = "1.0.1" +name = "ipnet" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.1.0", -] +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] -name = "http-body-util" -version = "0.1.2" +name = "is-terminal" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "pin-project-lite", + "hermit-abi 0.4.0", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "httparse" -version = "1.9.4" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] -name = "httpdate" -version = "1.0.3" +name = "itertools" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] [[package]] -name = "humantime" -version = "2.1.0" +name = "itoa" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" [[package]] -name = "hyper" -version = "0.14.30" +name = "jobserver" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.7", - "tokio", - "tower-service", - "tracing", - "want", + "libc", ] [[package]] -name = "hyper" -version = "1.4.1" +name = "js-sys" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", + "wasm-bindgen", ] [[package]] -name = "hyper-rustls" -version = "0.24.2" +name = "jsonrpc-client-transports" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.30", + "failure", + "futures 0.1.31", + "jsonrpc-core", + "jsonrpc-pubsub", "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", + "serde", + "serde_json", + "url 1.7.2", ] [[package]] -name = "hyper-rustls" -version = "0.27.2" +name = "jsonrpc-core" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.4.1", - "hyper-util", + "futures 0.1.31", "log", - "rustls 0.23.12", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.0", - "tower-service", + "serde", + "serde_derive", + "serde_json", ] [[package]] -name = "hyper-util" -version = "0.1.7" +name = "jsonrpc-core-client" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", - "pin-project-lite", - "socket2 0.5.7", - "tokio", - "tower", - "tower-service", - "tracing", + "jsonrpc-client-transports", ] [[package]] -name = "iana-time-zone" -version = "0.1.60" +name = "jsonrpc-derive" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core 0.52.0", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" +name = "jsonrpc-pubsub" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" dependencies = [ - "cc", + "jsonrpc-core", + "log", + "parking_lot 0.10.2", + "rand 0.7.3", + "serde", ] [[package]] -name = "idna" -version = "0.1.5" +name = "jsonrpsee" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "tracing", ] [[package]] -name = "idna" -version = "0.2.3" +name = "jsonrpsee-core" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "anyhow", + "arrayvec 0.7.6", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", ] [[package]] -name = "idna" -version = "0.4.0" +name = "jsonrpsee-proc-macros" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "idna" -version = "0.5.0" +name = "jsonrpsee-server" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", ] [[package]] -name = "if-addrs" -version = "0.10.2" +name = "jsonrpsee-types" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" dependencies = [ - "libc", - "windows-sys 0.48.0", + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", ] [[package]] -name = "if-watch" -version = "3.2.0" +name = "k256" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "async-io 2.3.4", - "core-foundation", - "fnv", - "futures 0.3.30", - "if-addrs", - "ipnet", - "log", - "rtnetlink", - "system-configuration", - "tokio", - "windows", + "cfg-if 1.0.0", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", ] [[package]] -name = "igd-next" -version = "0.14.3" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "async-trait", - "attohttpc", - "bytes", - "futures 0.3.30", - "http 0.2.12", - "hyper 0.14.30", - "log", - "rand 0.8.5", - "tokio", - "url 2.5.2", - "xmltree", + "cpufeatures", ] [[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +name = "keytool" +version = "0.9.0" dependencies = [ - "parity-scale-codec", + "secp256k1 0.20.3", + "sha3 0.9.1", + "sp-core", + "sp-runtime", + "structopt", + "tiny-bip39 0.8.2", + "tiny-hderive", ] [[package]] -name = "impl-rlp" -version = "0.3.0" +name = "kvdb" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" dependencies = [ - "rlp", + "smallvec", ] [[package]] -name = "impl-serde" -version = "0.4.0" +name = "kvdb-memorydb" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ - "serde", + "kvdb", + "parking_lot 0.12.3", ] [[package]] -name = "impl-trait-for-tuples" -version = "0.1.3" +name = "kvdb-rocksdb" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "kvdb", + "num_cpus", + "parking_lot 0.12.3", + "regex", + "rocksdb", + "smallvec", ] [[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", -] +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "include_dir" -version = "0.7.4" +name = "lazycell" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] -name = "include_dir_macros" -version = "0.7.4" +name = "libc" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", -] +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] -name = "indexmap" -version = "1.9.3" +name = "libloading" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ - "equivalent", - "hashbrown 0.14.5", + "cfg-if 1.0.0", + "windows-targets 0.52.6", ] [[package]] -name = "indexmap-nostd" -version = "0.4.0" +name = "libm" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] -name = "indicatif" -version = "0.17.8" +name = "libp2p" +version = "0.51.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" dependencies = [ - "console", + "bytes", + "futures 0.3.31", + "futures-timer", + "getrandom 0.2.15", "instant", - "number_prefix", - "portable-atomic", - "unicode-width", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", + "libp2p-dns", + "libp2p-identify", + "libp2p-identity", + "libp2p-kad", + "libp2p-mdns", + "libp2p-metrics", + "libp2p-noise", + "libp2p-ping", + "libp2p-quic", + "libp2p-request-response", + "libp2p-swarm", + "libp2p-tcp", + "libp2p-wasm-ext", + "libp2p-websocket", + "libp2p-yamux", + "multiaddr", + "pin-project", ] [[package]] -name = "inout" -version = "0.1.3" +name = "libp2p-allow-block-list" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" dependencies = [ - "generic-array 0.14.7", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", ] [[package]] -name = "instant" -version = "0.1.13" +name = "libp2p-connection-limits" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" dependencies = [ - "cfg-if 1.0.0", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", ] [[package]] -name = "int-enum" -version = "0.4.0" +name = "libp2p-core" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b1428b2b1abe959e6eedb0a17d0ab12f6ba20e1106cc29fc4874e3ba393c177" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" dependencies = [ - "cfg-if 0.1.10", - "int-enum-impl", + "either", + "fnv", + "futures 0.3.31", + "futures-timer", + "instant", + "libp2p-identity", + "log", + "multiaddr", + "multihash", + "multistream-select", + "once_cell", + "parking_lot 0.12.3", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "smallvec", + "thiserror", + "unsigned-varint", + "void", ] [[package]] -name = "int-enum-impl" -version = "0.4.0" +name = "libp2p-dns" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c3cecaad8ca1a5020843500c696de2b9a07b63b624ddeef91f85f9bafb3671" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ - "cfg-if 0.1.10", - "proc-macro-crate 0.1.5", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "futures 0.3.31", + "libp2p-core", + "log", + "parking_lot 0.12.3", + "smallvec", + "trust-dns-resolver", ] [[package]] -name = "integer-encoding" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" - -[[package]] -name = "integer-sqrt" -version = "0.1.5" +name = "libp2p-identify" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" dependencies = [ - "num-traits", + "asynchronous-codec", + "either", + "futures 0.3.31", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "lru", + "quick-protobuf", + "quick-protobuf-codec", + "smallvec", + "thiserror", + "void", ] [[package]] -name = "io-lifetimes" -version = "1.0.11" +name = "libp2p-identity" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", + "bs58 0.4.0", + "ed25519-dalek", + "log", + "multiaddr", + "multihash", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "zeroize", ] [[package]] -name = "ip_network" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" - -[[package]] -name = "ipconfig" -version = "0.3.2" +name = "libp2p-kad" +version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ - "socket2 0.5.7", - "widestring", - "windows-sys 0.48.0", - "winreg", + "arrayvec 0.7.6", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures 0.3.31", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "smallvec", + "thiserror", + "uint", + "unsigned-varint", + "void", ] [[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.13" +name = "libp2p-mdns" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", + "data-encoding", + "futures 0.3.31", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "rand 0.8.5", + "smallvec", + "socket2 0.4.10", + "tokio", + "trust-dns-proto", + "void", ] [[package]] -name = "is_executable" -version = "1.0.1" +name = "libp2p-metrics" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ - "winapi", + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "prometheus-client", ] [[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" +name = "libp2p-noise" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ - "either", + "bytes", + "curve25519-dalek 3.2.0", + "futures 0.3.31", + "libp2p-core", + "libp2p-identity", + "log", + "once_cell", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "snow", + "static_assertions", + "thiserror", + "x25519-dalek 1.1.1", + "zeroize", ] [[package]] -name = "itertools" -version = "0.11.0" +name = "libp2p-ping" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ "either", + "futures 0.3.31", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-swarm", + "log", + "rand 0.8.5", + "void", ] [[package]] -name = "itertools" -version = "0.12.1" +name = "libp2p-quic" +version = "0.7.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ - "either", + "bytes", + "futures 0.3.31", + "futures-timer", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-tls", + "log", + "parking_lot 0.12.3", + "quinn-proto", + "rand 0.8.5", + "rustls 0.20.9", + "thiserror", + "tokio", ] [[package]] -name = "itoa" -version = "1.0.11" +name = "libp2p-request-response" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +dependencies = [ + "async-trait", + "futures 0.3.31", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "smallvec", +] [[package]] -name = "jni" -version = "0.19.0" +name = "libp2p-swarm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" dependencies = [ - "cesu8", - "combine", - "jni-sys", + "either", + "fnv", + "futures 0.3.31", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm-derive", "log", - "thiserror", - "walkdir", + "rand 0.8.5", + "smallvec", + "tokio", + "void", ] [[package]] -name = "jni-sys" -version = "0.3.0" +name = "libp2p-swarm-derive" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +dependencies = [ + "heck 0.4.1", + "quote 1.0.37", + "syn 1.0.109", +] [[package]] -name = "jobserver" -version = "0.1.32" +name = "libp2p-tcp" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ + "futures 0.3.31", + "futures-timer", + "if-watch", "libc", + "libp2p-core", + "log", + "socket2 0.4.10", + "tokio", ] [[package]] -name = "js-sys" -version = "0.3.70" +name = "libp2p-tls" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +dependencies = [ + "futures 0.3.31", + "futures-rustls", + "libp2p-core", + "libp2p-identity", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "thiserror", + "webpki", + "x509-parser", + "yasna", +] + +[[package]] +name = "libp2p-wasm-ext" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" dependencies = [ + "futures 0.3.31", + "js-sys", + "libp2p-core", + "parity-send-wrapper", "wasm-bindgen", + "wasm-bindgen-futures", ] [[package]] -name = "jsonrpc-client-transports" -version = "15.1.0" +name = "libp2p-websocket" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" dependencies = [ - "failure", - "futures 0.1.31", - "jsonrpc-core", - "jsonrpc-pubsub", + "either", + "futures 0.3.31", + "futures-rustls", + "libp2p-core", "log", - "serde", - "serde_json", - "url 1.7.2", + "parking_lot 0.12.3", + "quicksink", + "rw-stream-sink", + "soketto", + "url 2.5.3", + "webpki-roots", ] [[package]] -name = "jsonrpc-core" -version = "15.1.0" +name = "libp2p-yamux" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" dependencies = [ - "futures 0.1.31", + "futures 0.3.31", + "libp2p-core", "log", - "serde", - "serde_derive", - "serde_json", + "thiserror", + "yamux", ] [[package]] -name = "jsonrpc-core-client" -version = "15.1.0" +name = "libredox" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "jsonrpc-client-transports", + "bitflags 2.6.0", + "libc", + "redox_syscall 0.5.7", ] [[package]] -name = "jsonrpc-derive" -version = "15.1.0" +name = "librocksdb-sys" +version = "0.11.0+8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" dependencies = [ - "proc-macro-crate 0.1.5", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "tikv-jemalloc-sys", ] [[package]] -name = "jsonrpc-pubsub" -version = "15.1.0" +name = "libsecp256k1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" +checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" dependencies = [ - "jsonrpc-core", - "log", - "parking_lot 0.10.2", + "arrayref", + "crunchy", + "digest 0.8.1", + "hmac-drbg 0.2.0", "rand 0.7.3", - "serde", + "sha2 0.8.2", + "subtle 2.4.1", + "typenum", ] [[package]] -name = "jsonrpsee" -version = "0.23.2" +name = "libsecp256k1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "jsonrpsee-ws-client", - "tokio", - "tracing", + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "hmac-drbg 0.3.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.5", + "serde", + "sha2 0.9.9", + "typenum", ] [[package]] -name = "jsonrpsee-client-transport" -version = "0.23.2" +name = "libsecp256k1-core" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ - "base64 0.22.1", - "futures-util", - "http 1.1.0", - "jsonrpsee-core", - "pin-project", - "rustls 0.23.12", - "rustls-pki-types", - "rustls-platform-verifier", - "soketto 0.8.0", - "thiserror", - "tokio", - "tokio-rustls 0.26.0", - "tokio-util", - "tracing", - "url 2.5.2", + "crunchy", + "digest 0.9.0", + "subtle 2.4.1", ] [[package]] -name = "jsonrpsee-core" -version = "0.23.2" +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" dependencies = [ - "anyhow", - "async-trait", - "beef", - "bytes", - "futures-timer", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "jsonrpsee-types", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "rustc-hash", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-stream", - "tracing", + "libsecp256k1-core", ] [[package]] -name = "jsonrpsee-http-client" -version = "0.23.2" +name = "libsecp256k1-gen-genmult" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" dependencies = [ - "async-trait", - "base64 0.22.1", - "http-body 1.0.1", - "hyper 1.4.1", - "hyper-rustls 0.27.2", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "rustls 0.23.12", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url 2.5.2", + "libsecp256k1-core", ] [[package]] -name = "jsonrpsee-proc-macros" -version = "0.23.2" +name = "libsqlite3-sys" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" dependencies = [ - "heck 0.5.0", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "cc", + "pkg-config", + "vcpkg", ] [[package]] -name = "jsonrpsee-server" -version = "0.23.2" +name = "libz-sys" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ - "anyhow", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.4.1", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto 0.8.0", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", + "cc", + "pkg-config", + "vcpkg", ] [[package]] -name = "jsonrpsee-types" -version = "0.23.2" +name = "link-cplusplus" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ - "beef", - "http 1.1.0", - "serde", - "serde_json", - "thiserror", + "cc", ] [[package]] -name = "jsonrpsee-ws-client" -version = "0.23.2" +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" dependencies = [ - "http 1.1.0", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", - "url 2.5.2", + "linked-hash-map", ] [[package]] -name = "k256" -version = "0.13.3" +name = "linregress" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ - "cfg-if 1.0.0", - "ecdsa", - "elliptic-curve", - "once_cell", - "serdect", - "sha2 0.10.8", + "nalgebra", ] [[package]] -name = "keccak" -version = "0.1.5" +name = "linux-raw-sys" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" dependencies = [ - "cpufeatures", + "scopeguard", ] [[package]] -name = "keystream" -version = "1.0.0" +name = "lock_api" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] [[package]] -name = "kvdb" -version = "0.13.0" +name = "log" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" dependencies = [ - "smallvec", + "hashbrown 0.13.2", ] [[package]] -name = "kvdb-memorydb" -version = "0.13.0" +name = "lru-cache" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" dependencies = [ - "kvdb", - "parking_lot 0.12.3", + "linked-hash-map", ] [[package]] -name = "kvdb-rocksdb" -version = "0.19.0" +name = "lz4" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" +checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" dependencies = [ - "kvdb", - "num_cpus", - "parking_lot 0.12.3", - "regex", - "rocksdb", - "smallvec", + "lz4-sys", ] [[package]] -name = "landlock" -version = "0.3.1" +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ - "enumflags2", + "cc", "libc", - "thiserror", ] [[package]] -name = "lazy_static" -version = "1.5.0" +name = "mach" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] [[package]] -name = "lazycell" -version = "1.3.0" +name = "macro_magic" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] -name = "libc" -version = "0.2.158" +name = "macro_magic_core" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +dependencies = [ + "const-random", + "derive-syn-parse 0.1.5", + "macro_magic_core_macros", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] -name = "libloading" -version = "0.8.5" +name = "macro_magic_core_macros" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "d710e1214dffbab3b5dacb21475dde7d6ed84c69ff722b3a47a782668d44fbac" dependencies = [ - "cfg-if 1.0.0", - "windows-targets 0.52.6", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "libm" -version = "0.2.8" +name = "macro_magic_macros" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +dependencies = [ + "macro_magic_core", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] -name = "libp2p" -version = "0.52.4" +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94495eb319a85b70a68b85e2389a95bb3555c71c49025b78c691a854a7e6464" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" dependencies = [ - "bytes", - "either", - "futures 0.3.30", - "futures-timer", - "getrandom 0.2.15", - "instant", - "libp2p-allow-block-list", - "libp2p-connection-limits", - "libp2p-core", - "libp2p-dns", - "libp2p-identify", - "libp2p-identity", - "libp2p-kad", - "libp2p-mdns", - "libp2p-metrics", - "libp2p-noise", - "libp2p-ping", - "libp2p-quic", - "libp2p-request-response", - "libp2p-swarm", - "libp2p-tcp", - "libp2p-upnp", - "libp2p-wasm-ext", - "libp2p-websocket", - "libp2p-yamux", - "multiaddr 0.18.1", - "pin-project", - "rw-stream-sink", - "thiserror", + "regex-automata 0.1.10", ] [[package]] -name = "libp2p-allow-block-list" -version = "0.2.0" +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "matrixmultiply" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55b46558c5c0bf99d3e2a1a38fd54ff5476ca66dd1737b12466a1824dd219311" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", + "autocfg", + "rawpointer", ] [[package]] -name = "libp2p-connection-limits" -version = "0.2.1" +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memfd" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5107ad45cb20b2f6c3628c7b6014b996fcb13a88053f4569c872c6e30abf58" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", + "rustix 0.38.41", ] [[package]] -name = "libp2p-core" -version = "0.40.1" +name = "memmap2" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ - "either", - "fnv", - "futures 0.3.30", - "futures-timer", - "instant", - "libp2p-identity", - "log", - "multiaddr 0.18.1", - "multihash 0.19.1", - "multistream-select", - "once_cell", - "parking_lot 0.12.3", - "pin-project", - "quick-protobuf", - "rand 0.8.5", - "rw-stream-sink", - "smallvec", - "thiserror", - "unsigned-varint 0.7.2", - "void", + "libc", ] [[package]] -name = "libp2p-dns" -version = "0.40.1" +name = "memoffset" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ - "async-trait", - "futures 0.3.30", - "libp2p-core", - "libp2p-identity", - "log", - "parking_lot 0.12.3", - "smallvec", - "trust-dns-resolver", + "autocfg", ] [[package]] -name = "libp2p-identify" -version = "0.43.1" +name = "memory-db" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "asynchronous-codec", - "either", - "futures 0.3.30", - "futures-bounded", - "futures-timer", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "lru 0.12.4", - "quick-protobuf", - "quick-protobuf-codec", - "smallvec", - "thiserror", - "void", + "hash-db 0.16.0", ] [[package]] -name = "libp2p-identity" -version = "0.2.9" +name = "memzero" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c0d11ac30a033511ae414355d80f70d9f29a44a49140face477117a1ee90db" + +[[package]] +name = "merlin" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" +checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" dependencies = [ - "bs58 0.5.1", - "ed25519-dalek", - "hkdf", - "multihash 0.19.1", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", + "byteorder", + "keccak", + "rand_core 0.5.1", "zeroize", ] [[package]] -name = "libp2p-kad" -version = "0.44.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ea178dabba6dde6ffc260a8e0452ccdc8f79becf544946692fff9d412fc29d" +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ - "arrayvec 0.7.6", - "asynchronous-codec", - "bytes", - "either", - "fnv", - "futures 0.3.30", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "quick-protobuf", - "quick-protobuf-codec", - "rand 0.8.5", - "sha2 0.10.8", - "smallvec", - "thiserror", - "uint", - "unsigned-varint 0.7.2", - "void", + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", ] [[package]] -name = "libp2p-mdns" -version = "0.44.0" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a" -dependencies = [ - "data-encoding", - "futures 0.3.30", - "if-watch", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "rand 0.8.5", - "smallvec", - "socket2 0.5.7", - "tokio", - "trust-dns-proto 0.22.0", - "void", -] +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] -name = "libp2p-metrics" -version = "0.13.1" +name = "miniz_oxide" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239ba7d28f8d0b5d77760dc6619c05c7e88e74ec8fbbe97f856f20a56745e620" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "instant", - "libp2p-core", - "libp2p-identify", - "libp2p-identity", - "libp2p-kad", - "libp2p-ping", - "libp2p-swarm", - "once_cell", - "prometheus-client", + "adler2", ] [[package]] -name = "libp2p-noise" -version = "0.43.2" +name = "mio" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ - "bytes", - "curve25519-dalek", - "futures 0.3.30", - "libp2p-core", - "libp2p-identity", - "log", - "multiaddr 0.18.1", - "multihash 0.19.1", - "once_cell", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "snow", - "static_assertions", - "thiserror", - "x25519-dalek", - "zeroize", + "hermit-abi 0.3.9", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] -name = "libp2p-ping" -version = "0.43.1" +name = "mockall" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e702d75cd0827dfa15f8fd92d15b9932abe38d10d21f47c50438c71dd1b5dae3" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ - "either", - "futures 0.3.30", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "rand 0.8.5", - "void", + "cfg-if 1.0.0", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", ] [[package]] -name = "libp2p-quic" -version = "0.9.3" +name = "mockall_derive" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "130d451d83f21b81eb7b35b360bc7972aeafb15177784adc56528db082e6b927" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ - "bytes", - "futures 0.3.30", - "futures-timer", - "if-watch", - "libp2p-core", - "libp2p-identity", - "libp2p-tls", - "log", - "parking_lot 0.12.3", - "quinn 0.10.2", - "rand 0.8.5", - "ring 0.16.20", - "rustls 0.21.12", - "socket2 0.5.7", - "thiserror", - "tokio", + "cfg-if 1.0.0", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "libp2p-request-response" -version = "0.25.3" +name = "multiaddr" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e3b4d67870478db72bac87bfc260ee6641d0734e0e3e275798f089c3fecfd4" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" dependencies = [ - "async-trait", - "futures 0.3.30", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", + "arrayref", + "byteorder", + "data-encoding", "log", - "rand 0.8.5", - "smallvec", - "void", + "multibase", + "multihash", + "percent-encoding 2.3.1", + "serde", + "static_assertions", + "unsigned-varint", + "url 2.5.3", ] [[package]] -name = "libp2p-swarm" -version = "0.43.7" +name = "multibase" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580189e0074af847df90e75ef54f3f30059aedda37ea5a1659e8b9fca05c0141" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" dependencies = [ - "either", - "fnv", - "futures 0.3.30", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm-derive", - "log", - "multistream-select", - "once_cell", - "rand 0.8.5", - "smallvec", - "tokio", - "void", + "base-x", + "data-encoding", + "data-encoding-macro", ] [[package]] -name = "libp2p-swarm-derive" -version = "0.33.0" +name = "multihash" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d5ec2a3df00c7836d7696c136274c9c59705bac69133253696a6c932cd1d74" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ - "heck 0.4.1", - "proc-macro-warning 0.4.2", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3 0.10.8", + "unsigned-varint", ] [[package]] -name = "libp2p-tcp" -version = "0.40.1" +name = "multihash-derive" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b558dd40d1bcd1aaaed9de898e9ec6a436019ecc2420dd0016e712fbb61c5508" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "futures 0.3.30", - "futures-timer", - "if-watch", - "libc", - "libp2p-core", - "libp2p-identity", - "log", - "socket2 0.5.7", - "tokio", + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", + "synstructure 0.12.6", ] [[package]] -name = "libp2p-tls" -version = "0.2.1" +name = "multimap" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61" -dependencies = [ - "futures 0.3.30", - "futures-rustls", - "libp2p-core", - "libp2p-identity", - "rcgen", - "ring 0.16.20", - "rustls 0.21.12", - "rustls-webpki 0.101.7", - "thiserror", - "x509-parser 0.15.1", - "yasna", -] +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] -name = "libp2p-upnp" -version = "0.1.1" +name = "multistream-select" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82775a47b34f10f787ad3e2a22e2c1541e6ebef4fe9f28f3ac553921554c94c1" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" dependencies = [ - "futures 0.3.30", - "futures-timer", - "igd-next", - "libp2p-core", - "libp2p-swarm", + "bytes", + "futures 0.3.31", "log", - "tokio", - "void", + "pin-project", + "smallvec", + "unsigned-varint", ] [[package]] -name = "libp2p-wasm-ext" -version = "0.40.0" +name = "nalgebra" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ - "futures 0.3.30", - "js-sys", - "libp2p-core", - "send_wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", + "approx", + "matrixmultiply", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", ] [[package]] -name = "libp2p-websocket" -version = "0.42.2" +name = "names" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" +checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" dependencies = [ - "either", - "futures 0.3.30", - "futures-rustls", - "libp2p-core", - "libp2p-identity", - "log", - "parking_lot 0.12.3", - "pin-project-lite", - "rw-stream-sink", - "soketto 0.8.0", - "thiserror", - "url 2.5.2", - "webpki-roots 0.25.4", + "rand 0.8.5", ] [[package]] -name = "libp2p-yamux" -version = "0.44.1" +name = "native-tls" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "futures 0.3.30", - "libp2p-core", + "libc", "log", - "thiserror", - "yamux", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] -name = "libredox" -version = "0.1.3" +name = "netlink-packet-core" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" dependencies = [ - "bitflags 2.6.0", - "libc", - "redox_syscall 0.5.3", + "anyhow", + "byteorder", + "netlink-packet-utils", ] [[package]] -name = "librocksdb-sys" -version = "0.11.0+8.1.1" +name = "netlink-packet-route" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", + "anyhow", + "bitflags 1.3.2", + "byteorder", "libc", - "libz-sys", - "tikv-jemalloc-sys", + "netlink-packet-core", + "netlink-packet-utils", ] [[package]] -name = "libsecp256k1" -version = "0.3.5" +name = "netlink-packet-utils" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ - "arrayref", - "crunchy", - "digest 0.8.1", - "hmac-drbg 0.2.0", - "rand 0.7.3", - "sha2 0.8.2", - "subtle 2.6.1", - "typenum", + "anyhow", + "byteorder", + "paste", + "thiserror", ] [[package]] -name = "libsecp256k1" -version = "0.7.1" +name = "netlink-proto" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" dependencies = [ - "arrayref", - "base64 0.13.1", - "digest 0.9.0", - "hmac-drbg 0.3.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", - "typenum", + "bytes", + "futures 0.3.31", + "log", + "netlink-packet-core", + "netlink-sys", + "thiserror", + "tokio", ] [[package]] -name = "libsecp256k1-core" -version = "0.3.0" +name = "netlink-sys" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle 2.6.1", + "bytes", + "futures 0.3.31", + "libc", + "log", + "tokio", ] [[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" +name = "nix" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "libsecp256k1-core", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", ] [[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" +name = "nohash-hasher" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] -name = "libsqlite3-sys" -version = "0.27.0" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "cc", - "pkg-config", - "vcpkg", + "memchr", + "minimal-lexical", ] [[package]] -name = "libz-sys" -version = "1.1.20" +name = "normalize-line-endings" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "cc", - "pkg-config", - "vcpkg", + "num-integer", + "num-traits", ] [[package]] -name = "link-cplusplus" -version = "1.0.9" +name = "num-complex" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ - "cc", + "num-traits", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "linked_hash_set" -version = "0.1.4" +name = "num-derive" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" dependencies = [ - "linked-hash-map", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", ] [[package]] -name = "linregress" -version = "0.5.3" +name = "num-format" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "nalgebra", + "arrayvec 0.7.6", + "itoa", ] [[package]] -name = "linux-raw-sys" -version = "0.1.4" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] [[package]] -name = "linux-raw-sys" -version = "0.3.8" +name = "num-rational" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] [[package]] -name = "linux-raw-sys" -version = "0.4.14" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] [[package]] -name = "lioness" -version = "0.1.2" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "arrayref", - "blake2 0.8.1", - "chacha", - "keystream", + "hermit-abi 0.3.9", + "libc", ] [[package]] -name = "litep2p" -version = "0.6.2" +name = "num_enum" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f46c51c205264b834ceed95c8b195026e700494bc3991aaba3b4ea9e20626d9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "async-trait", - "bs58 0.4.0", - "bytes", - "cid 0.10.1", - "ed25519-dalek", - "futures 0.3.30", - "futures-timer", - "hex-literal 0.4.1", - "indexmap 2.5.0", - "libc", - "mockall 0.12.1", - "multiaddr 0.17.1", - "multihash 0.17.0", - "network-interface", - "nohash-hasher", - "parking_lot 0.12.3", - "pin-project", - "prost 0.12.6", - "prost-build 0.11.9", - "quinn 0.9.4", - "rand 0.8.5", - "rcgen", - "ring 0.16.20", - "rustls 0.20.9", - "serde", - "sha2 0.10.8", - "simple-dns", - "smallvec", - "snow", - "socket2 0.5.7", - "static_assertions", - "str0m", - "thiserror", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tokio-util", - "tracing", - "trust-dns-resolver", - "uint", - "unsigned-varint 0.8.0", - "url 2.5.2", - "webpki", - "x25519-dalek", - "x509-parser 0.16.0", - "yasna", - "zeroize", + "num_enum_derive", ] [[package]] -name = "lock_api" -version = "0.3.4" +name = "num_enum_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "scopeguard", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "lock_api" -version = "0.4.12" +name = "object" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ - "autocfg", - "scopeguard", + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", + "memchr", ] [[package]] -name = "log" -version = "0.4.22" +name = "object" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] [[package]] -name = "lru" -version = "0.8.1" +name = "oid-registry" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "hashbrown 0.12.3", + "asn1-rs", ] [[package]] -name = "lru" -version = "0.11.1" +name = "once_cell" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] -name = "lru" -version = "0.12.4" +name = "opaque-debug" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" -dependencies = [ - "hashbrown 0.14.5", -] +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] -name = "lru-cache" -version = "0.1.2" +name = "opaque-debug" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] -name = "lz4" -version = "1.26.0" +name = "openssl" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ + "bitflags 2.6.0", + "cfg-if 1.0.0", + "foreign-types", "libc", - "lz4-sys", + "once_cell", + "openssl-macros", + "openssl-sys", ] [[package]] -name = "lz4-sys" -version = "1.10.0" +name = "openssl-macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "cc", - "libc", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "mach" -version = "0.3.2" +name = "openssl-probe" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] -name = "macro_magic" -version = "0.5.1" +name = "openssl-sys" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ - "macro_magic_core", - "macro_magic_macros", - "quote 1.0.37", - "syn 2.0.77", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] -name = "macro_magic_core" -version = "0.5.1" +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" -dependencies = [ - "const-random", - "derive-syn-parse", - "macro_magic_core_macros", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "macro_magic_core_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" +name = "pallet-authority-discovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", ] [[package]] -name = "macro_magic_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" +name = "pallet-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "macro_magic_core", - "quote 1.0.37", - "syn 2.0.77", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.3", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", ] [[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +name = "pallet-babe" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "regex-automata 0.1.10", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-babe", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "matrixmultiply" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +name = "pallet-bags-list" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "autocfg", - "rawpointer", + "aquamarine", + "docify", + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memfd" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +name = "pallet-balances" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "rustix 0.38.35", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", ] [[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +name = "pallet-bounties" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "libc", + "frame-support", + "frame-system", + "log", + "pallet-treasury", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +name = "pallet-collective" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "libc", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +name = "pallet-contracts" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "autocfg", + "bitflags 1.3.2", + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.3", + "log", + "pallet-balances", + "pallet-contracts-primitives", + "pallet-contracts-proc-macro", + "parity-scale-codec", + "rand 0.8.5", + "rand_pcg", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "wasm-instrument 0.4.0", + "wasmi", ] [[package]] -name = "memory-db" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +name = "pallet-contracts-primitives" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "hash-db", + "bitflags 1.3.2", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "sp-weights", ] [[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +name = "pallet-contracts-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "mick-jaeger" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" +name = "pallet-democracy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "futures 0.3.30", - "rand 0.8.5", - "thrift", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +name = "pallet-elections-phragmen" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-staking", + "sp-std", +] [[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +name = "pallet-ethereum" +version = "4.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "adler", + "ethereum 0.15.0", + "ethereum-types", + "evm 0.41.1", + "fp-consensus", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-storage", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "hermit-abi 0.3.9", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "environmental", + "evm 0.41.1", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hash-db 0.16.0", + "hex", + "hex-literal 0.4.1", + "impl-trait-for-tuples 0.2.3", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "mixnet" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" +name = "pallet-evm-precompile-simple" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "bitflags 1.3.2", - "blake2 0.10.6", - "c2-chacha", - "curve25519-dalek", - "either", - "hashlink", - "lioness", - "log", - "parking_lot 0.12.3", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_distr", - "subtle 2.6.1", - "thiserror", - "zeroize", + "fp-evm", + "ripemd", + "sp-io", ] [[package]] -name = "mmr-gadget" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "pallet-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "futures 0.3.30", + "frame-benchmarking", + "frame-support", + "frame-system", "log", + "pallet-authorship", + "pallet-session", "parity-scale-codec", - "sc-client-api", - "sc-offchain", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-consensus-beefy", + "scale-info", + "sp-application-crypto", + "sp-consensus-grandpa", "sp-core", - "sp-mmr-primitives", + "sp-io", "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] -name = "mmr-rpc" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "pallet-identity" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "jsonrpsee", + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-mmr-primitives", + "scale-info", + "sp-io", "sp-runtime", + "sp-std", ] [[package]] -name = "mockall" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "downcast", - "fragile", - "lazy_static", - "mockall_derive 0.11.4", - "predicates 2.1.5", - "predicates-tree", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "mockall" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +name = "pallet-indices" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "downcast", - "fragile", - "lazy_static", - "mockall_derive 0.12.1", - "predicates 3.1.2", - "predicates-tree", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", ] [[package]] -name = "mockall_derive" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +name = "pallet-insecure-randomness-collective-flip" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "frame-support", + "frame-system", + "parity-scale-codec", + "safe-mix", + "scale-info", + "sp-runtime", + "sp-std", ] [[package]] -name = "mockall_derive" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +name = "pallet-membership" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "multi-stash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f" - -[[package]] -name = "multiaddr" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +name = "pallet-multisig" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "arrayref", - "byteorder", - "data-encoding", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "multibase", - "multihash 0.17.0", - "percent-encoding 2.3.1", - "serde", - "static_assertions", - "unsigned-varint 0.7.2", - "url 2.5.2", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "multiaddr" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +name = "pallet-offences" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "libp2p-identity", - "multibase", - "multihash 0.19.1", - "percent-encoding 2.3.1", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "scale-info", "serde", - "static_assertions", - "unsigned-varint 0.7.2", - "url 2.5.2", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +name = "pallet-preimage" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +name = "pallet-scheduler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.8", - "sha3", - "unsigned-varint 0.7.2", + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", ] [[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +name = "pallet-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.8", - "sha3", - "unsigned-varint 0.7.2", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.3", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-trie", ] [[package]] -name = "multihash" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +name = "pallet-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "core2", - "unsigned-varint 0.7.2", + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +name = "pallet-staking-reward-curve" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro-error", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 1.0.109", - "synstructure 0.12.6", + "syn 2.0.89", ] [[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "multimap" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" - -[[package]] -name = "multistream-select" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" +name = "pallet-statement" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bytes", - "futures 0.3.30", + "frame-support", + "frame-system", "log", - "pin-project", - "smallvec", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "nalgebra" -version = "0.32.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" -dependencies = [ - "approx", - "matrixmultiply", - "nalgebra-macros", - "num-complex", - "num-rational", - "num-traits", - "simba", - "typenum", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-statement-store", + "sp-std", ] [[package]] -name = "nalgebra-macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +name = "pallet-sudo" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "names" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" +name = "pallet-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "rand 0.8.5", + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-storage", + "sp-timestamp", ] [[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +name = "pallet-tips" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "libc", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "pallet-treasury", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "netlink-packet-core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +name = "pallet-transaction-payment" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "anyhow", - "byteorder", - "libc", - "netlink-packet-utils", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "netlink-packet-route" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +name = "pallet-transaction-payment-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "anyhow", - "bitflags 1.3.2", - "byteorder", - "libc", - "netlink-packet-core", - "netlink-packet-utils", + "jsonrpsee", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-weights", ] [[package]] -name = "netlink-packet-utils" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" +name = "pallet-transaction-payment-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "anyhow", - "byteorder", - "paste", - "thiserror", + "pallet-transaction-payment", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-weights", ] [[package]] -name = "netlink-proto" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +name = "pallet-treasury" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bytes", - "futures 0.3.30", - "log", - "netlink-packet-core", - "netlink-sys", - "thiserror", - "tokio", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples 0.2.3", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", + "sp-std", ] [[package]] -name = "netlink-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" +name = "pallet-utility" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bytes", - "futures 0.3.30", - "libc", - "log", - "tokio", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "network-interface" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +name = "pallet-vesting" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cc", - "libc", - "thiserror", - "winapi", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", ] [[package]] -name = "nix" -version = "0.24.3" +name = "parity-db" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ - "bitflags 1.3.2", - "cfg-if 1.0.0", + "blake2", + "crc32fast", + "fs2", + "hex", "libc", + "log", + "lz4", + "memmap2", + "parking_lot 0.12.3", + "rand 0.8.5", + "siphasher", + "snap", + "winapi", ] [[package]] -name = "nix" -version = "0.28.0" +name = "parity-scale-codec" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" dependencies = [ - "bitflags 2.6.0", - "cfg-if 1.0.0", - "cfg_aliases", - "libc", + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "bytes", + "impl-trait-for-tuples 0.2.3", + "parity-scale-codec-derive", + "rustversion", + "serde", ] [[package]] -name = "no-std-compat" -version = "0.4.1" +name = "parity-scale-codec-derive" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" +checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] [[package]] -name = "no-std-net" -version = "0.6.0" +name = "parity-send-wrapper" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" [[package]] -name = "nodrop" -version = "0.1.14" +name = "parity-wasm" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] -name = "nohash-hasher" -version = "0.2.0" +name = "parking" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] -name = "nom" -version = "7.1.3" +name = "parking_lot" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" dependencies = [ - "memchr", - "minimal-lexical", + "lock_api 0.3.4", + "parking_lot_core 0.7.3", ] [[package]] -name = "nonempty" -version = "0.7.0" +name = "parking_lot" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api 0.4.12", + "parking_lot_core 0.8.6", +] [[package]] -name = "nonzero_ext" -version = "0.3.0" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api 0.4.12", + "parking_lot_core 0.9.10", +] [[package]] -name = "normalize-line-endings" -version = "0.3.0" +name = "parking_lot_core" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +checksum = "b93f386bb233083c799e6e642a9d73db98c24a5deeb95ffc85bf281255dffc98" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall 0.1.57", + "smallvec", + "winapi", +] [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "parking_lot_core" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ - "overload", + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", "winapi", ] [[package]] -name = "num-bigint" -version = "0.4.6" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "num-integer", - "num-traits", + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.5.7", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "num-complex" -version = "0.4.6" +name = "partial_sort" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] -name = "num-conv" -version = "0.1.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "num-derive" -version = "0.2.5" +name = "pbkdf2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "crypto-mac 0.8.0", ] [[package]] -name = "num-derive" -version = "0.4.2" +name = "pbkdf2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "crypto-mac 0.11.1", ] [[package]] -name = "num-format" -version = "0.4.4" +name = "pbkdf2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "arrayvec 0.7.6", - "itoa", + "digest 0.10.7", ] [[package]] -name = "num-integer" -version = "0.1.46" +name = "peeking_take_while" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] -name = "num-rational" -version = "0.4.2" +name = "pem" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ - "num-bigint", - "num-integer", - "num-traits", + "base64 0.13.1", ] [[package]] -name = "num-traits" -version = "0.2.19" +name = "percent-encoding" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" [[package]] -name = "num_cpus" -version = "1.16.0" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ - "hermit-abi 0.3.9", - "libc", + "memchr", + "thiserror", + "ucd-trie", ] [[package]] -name = "num_enum" -version = "0.7.3" +name = "pest_derive" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ - "num_enum_derive", + "pest", + "pest_generator", ] [[package]] -name = "num_enum_derive" -version = "0.7.3" +name = "pest_generator" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", + "pest", + "pest_meta", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "pest_meta" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - -[[package]] -name = "object" -version = "0.30.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ - "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "memchr", + "once_cell", + "pest", + "sha2 0.10.8", ] [[package]] -name = "object" -version = "0.32.2" +name = "petgraph" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "memchr", + "fixedbitset", + "indexmap 2.6.0", ] [[package]] -name = "object" -version = "0.36.4" +name = "pin-project" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ - "memchr", + "pin-project-internal", ] [[package]] -name = "oid-registry" -version = "0.6.1" +name = "pin-project-internal" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ - "asn1-rs 0.5.2", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "oid-registry" -version = "0.7.1" +name = "pin-project-lite" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" -dependencies = [ - "asn1-rs 0.6.2", -] +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] -name = "once_cell" -version = "1.19.0" +name = "pin-project-lite" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] -name = "opaque-debug" -version = "0.2.3" +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "opaque-debug" -version = "0.3.1" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] [[package]] -name = "openssl" -version = "0.10.66" +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "polling" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ - "bitflags 2.6.0", "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite 0.2.15", + "rustix 0.38.41", + "tracing", + "windows-sys 0.59.0", ] [[package]] -name = "openssl-macros" -version = "0.1.1" +name = "poly1305" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "polyval" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] -name = "openssl-src" -version = "300.3.2+3.3.2" +name = "ppv-lite86" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "cc", + "zerocopy", ] [[package]] -name = "openssl-sys" -version = "0.9.103" +name = "predicates" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", ] [[package]] -name = "option-ext" -version = "0.2.0" +name = "predicates-core" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] -name = "orchestra" -version = "0.4.0" +name = "predicates-tree" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ - "async-trait", - "dyn-clonable", - "futures 0.3.30", - "futures-timer", - "orchestra-proc-macro", - "pin-project", - "prioritized-metered-channel", - "thiserror", - "tracing", + "predicates-core", + "termtree", ] [[package]] -name = "orchestra-proc-macro" -version = "0.4.0" +name = "prettyplease" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "expander", - "indexmap 2.5.0", - "itertools 0.11.0", - "petgraph", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", + "proc-macro2 1.0.91", "syn 1.0.109", ] [[package]] -name = "ordered-float" -version = "1.1.1" +name = "prettyplease" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ - "num-traits", + "proc-macro2 1.0.91", + "syn 2.0.89", ] [[package]] -name = "overload" -version = "0.1.1" +name = "primitive-types" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "pallet-alliance" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-collective", - "pallet-identity", - "parity-scale-codec", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", "scale-info", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-runtime", + "uint", ] [[package]] -name = "pallet-asset-conversion" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", + "toml 0.5.11", ] [[package]] -name = "pallet-asset-conversion-ops" -version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-asset-conversion", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", + "thiserror", + "toml 0.5.11", ] [[package]] -name = "pallet-asset-conversion-tx-payment" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "frame-support", - "frame-system", - "pallet-asset-conversion", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "toml_edit 0.22.22", ] [[package]] -name = "pallet-asset-rate" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "proc-macro-error-attr", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", + "version_check", ] [[package]] -name = "pallet-asset-tx-payment" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "version_check", ] [[package]] -name = "pallet-assets" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro-warning" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "pallet-assets-freezer" -version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-assets", - "parity-scale-codec", - "scale-info", - "sp-runtime", +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", ] [[package]] -name = "pallet-atomic-swap" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "proc-macro2" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307e3004becf10f5a6e0d59d20f3cd28231b0e0827a96cd3e0ce6d14bc1e4bb3" dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "unicode-ident", ] [[package]] -name = "pallet-aura" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "thiserror", ] [[package]] -name = "pallet-authority-discovery" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prometheus-client" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ - "frame-support", - "frame-system", - "pallet-session", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-authority-discovery", - "sp-runtime", + "dtoa", + "itoa", + "parking_lot 0.12.3", + "prometheus-client-derive-encode", ] [[package]] -name = "pallet-authorship" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prometheus-client-derive-encode" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "pallet-babe" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-babe", - "sp-core", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", + "bytes", + "prost-derive", ] [[package]] -name = "pallet-bags-list" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ - "aquamarine", - "docify", - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", + "bytes", + "heck 0.4.1", + "itertools", + "lazy_static", "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-tracing", + "multimap", + "petgraph", + "prettyplease 0.1.25", + "prost", + "prost-types", + "regex", + "syn 1.0.109", + "tempfile", + "which", ] [[package]] -name = "pallet-balances" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "anyhow", + "itertools", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "pallet-beefy" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "scale-info", - "serde", - "sp-consensus-beefy", - "sp-runtime", - "sp-session", - "sp-staking", + "prost", ] [[package]] -name = "pallet-beefy-mmr" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "psm" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ - "array-bytes", - "binary-merkle-tree", - "frame-support", - "frame-system", - "log", - "pallet-beefy", - "pallet-mmr", - "pallet-session", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-consensus-beefy", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", + "cc", ] [[package]] -name = "pallet-bounties" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-treasury", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "byteorder", ] [[package]] -name = "pallet-bridge-grandpa" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" dependencies = [ - "bp-header-chain", - "bp-runtime", - "bp-test-utils", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-consensus-grandpa", - "sp-runtime", - "sp-std", + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", ] [[package]] -name = "pallet-bridge-messages" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-runtime", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", - "sp-trie", + "futures-core", + "futures-sink", + "pin-project-lite 0.1.12", ] [[package]] -name = "pallet-bridge-parachains" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quinn-proto" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ - "bp-header-chain", - "bp-parachains", - "bp-polkadot-core", - "bp-runtime", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-bridge-grandpa", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-std", + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.20.9", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", ] [[package]] -name = "pallet-bridge-relayers" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "bp-messages", - "bp-relayers", - "bp-runtime", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-bridge-messages", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-runtime", - "sp-std", + "proc-macro2 0.4.30", ] [[package]] -name = "pallet-broker" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "bitvec", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-runtime", + "proc-macro2 1.0.91", ] [[package]] -name = "pallet-child-bounties" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-bounties", - "pallet-treasury", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", -] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "pallet-collator-selection" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-balances", - "pallet-session", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sp-runtime", - "sp-staking", + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", ] [[package]] -name = "pallet-collective" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", ] [[package]] -name = "pallet-collective-content" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] -name = "pallet-contracts" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "bitflags 1.3.2", - "environmental", - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-balances", - "pallet-contracts-proc-macro", - "pallet-contracts-uapi", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "smallvec", - "sp-api", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "wasm-instrument", - "wasmi 0.32.3", + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] -name = "pallet-contracts-mock-network" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "frame-support", - "frame-system", - "pallet-assets", - "pallet-balances", - "pallet-contracts", - "pallet-contracts-proc-macro", - "pallet-contracts-uapi", - "pallet-insecure-randomness-collective-flip", - "pallet-message-queue", - "pallet-proxy", - "pallet-timestamp", - "pallet-utility", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "scale-info", - "sp-api", - "sp-core", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-tracing", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "xcm-simulator", + "getrandom 0.1.16", ] [[package]] -name = "pallet-contracts-proc-macro" -version = "23.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "getrandom 0.2.15", ] [[package]] -name = "pallet-contracts-uapi" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "bitflags 1.3.2", - "parity-scale-codec", - "paste", - "polkavm-derive", - "scale-info", + "rand_core 0.5.1", ] [[package]] -name = "pallet-conviction-voting" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" dependencies = [ - "assert_matches", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io", - "sp-runtime", + "rand_core 0.6.4", ] [[package]] -name = "pallet-core-fellowship" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-ranked-collective", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", -] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] -name = "pallet-delegated-staking" -version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-staking", + "either", + "rayon-core", ] [[package]] -name = "pallet-democracy" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] -name = "pallet-dev-mode" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "pem", + "ring 0.16.20", + "time", + "yasna", ] [[package]] -name = "pallet-election-provider-multi-phase" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "log", - "pallet-election-provider-support-benchmarking", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "strum 0.26.3", -] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] -name = "pallet-election-provider-support-benchmarking" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-system", - "parity-scale-codec", - "sp-npos-elections", - "sp-runtime", + "bitflags 1.3.2", ] [[package]] -name = "pallet-elections-phragmen" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "redox_syscall" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-staking", + "bitflags 2.6.0", ] [[package]] -name = "pallet-ethereum" -version = "4.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "ethereum", - "ethereum-types", - "evm", - "fp-consensus", - "fp-ethereum", - "fp-evm", - "fp-rpc", - "fp-storage", - "frame-support", - "frame-system", - "pallet-evm", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "getrandom 0.2.15", + "libredox", + "thiserror", ] [[package]] -name = "pallet-evm" -version = "6.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ - "environmental", - "evm", - "fp-account", - "fp-evm", - "frame-benchmarking", - "frame-support", - "frame-system", - "hash-db", - "hex-literal 0.4.1", - "impl-trait-for-tuples 0.2.2", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "ref-cast-impl", ] [[package]] -name = "pallet-evm-precompile-simple" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=stable2407#2e219e17a526125da003e64ef22ec037917083fa" +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ - "fp-evm", - "ripemd", - "sp-io", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "pallet-fast-unstake" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "regalloc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ - "docify", - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", + "fxhash", "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-staking", + "slice-group-by", + "smallvec", ] [[package]] -name = "pallet-glutton" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "blake2 0.10.6", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-inherents", - "sp-io", - "sp-runtime", + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] -name = "pallet-grandpa" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-consensus-grandpa", - "sp-core", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", + "regex-syntax 0.6.29", ] [[package]] -name = "pallet-identity" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", ] [[package]] -name = "pallet-im-online" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "parity-scale-codec", - "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", -] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "pallet-indices" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", + "hostname", + "quick-error", ] [[package]] -name = "pallet-insecure-randomness-collective-flip" -version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "safe-mix", - "scale-info", - "sp-runtime", + "hmac 0.12.1", + "subtle 2.4.1", ] [[package]] -name = "pallet-lottery" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof?rev=8657210#86572101f4210647984ab4efedba6b3fcc890895" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "blake2", + "common", + "fflonk", + "merlin 3.0.0", ] [[package]] -name = "pallet-membership" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", ] [[package]] -name = "pallet-message-queue" -version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ - "environmental", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-weights", + "cc", + "cfg-if 1.0.0", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", ] [[package]] -name = "pallet-migrations" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "digest 0.10.7", ] [[package]] -name = "pallet-mixnet" -version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-application-crypto", - "sp-arithmetic", - "sp-io", - "sp-mixnet", - "sp-runtime", + "bytes", + "rlp-derive", + "rustc-hex", ] [[package]] -name = "pallet-mmr" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-mmr-primitives", - "sp-runtime", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 1.0.109", ] [[package]] -name = "pallet-multisig" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "libc", + "librocksdb-sys", ] [[package]] -name = "pallet-nft-fractionalization" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-assets", - "pallet-nfts", - "parity-scale-codec", - "scale-info", - "sp-runtime", + "libc", + "rtoolbox", + "windows-sys 0.48.0", ] [[package]] -name = "pallet-nfts" -version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rtnetlink" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" dependencies = [ - "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", + "futures 0.3.31", "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "netlink-packet-core", + "netlink-packet-route", + "netlink-packet-utils", + "netlink-proto", + "netlink-sys", + "nix", + "thiserror", + "tokio", ] [[package]] -name = "pallet-nfts-runtime-api" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ - "pallet-nfts", - "parity-scale-codec", - "sp-api", + "libc", + "windows-sys 0.48.0", ] [[package]] -name = "pallet-nis" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-runtime", + "semver 0.9.0", ] [[package]] -name = "pallet-node-authorization" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "semver 1.0.23", ] [[package]] -name = "pallet-nomination-pools" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-tracing", + "nom", ] [[package]] -name = "pallet-nomination-pools-benchmarking" -version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustix" +version = "0.36.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "pallet-bags-list", - "pallet-delegated-staking", - "pallet-nomination-pools", - "pallet-staking", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-runtime-interface", - "sp-staking", + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", ] [[package]] -name = "pallet-nomination-pools-runtime-api" -version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustix" +version = "0.38.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ - "pallet-nomination-pools", - "parity-scale-codec", - "sp-api", + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", ] [[package]] -name = "pallet-offences" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ - "frame-support", - "frame-system", "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime", - "sp-staking", + "ring 0.16.20", + "sct", + "webpki", ] [[package]] -name = "pallet-offences-benchmarking" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", "log", - "pallet-babe", - "pallet-balances", - "pallet-grandpa", - "pallet-im-online", - "pallet-offences", - "pallet-session", - "pallet-staking", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "sp-staking", + "ring 0.17.8", + "rustls-webpki", + "sct", ] [[package]] -name = "pallet-paged-list" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-metadata-ir", - "sp-runtime", + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", ] [[package]] -name = "pallet-parameters" -version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-core", - "sp-runtime", + "base64 0.21.7", ] [[package]] -name = "pallet-preimage" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] -name = "pallet-proxy" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + +[[package]] +name = "rw-stream-sink" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "futures 0.3.31", + "pin-project", + "static_assertions", ] [[package]] -name = "pallet-ranked-collective" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "safe-mix" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", + "rustc_version 0.2.3", ] [[package]] -name = "pallet-recovery" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "safe_arch" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", + "bytemuck", ] [[package]] -name = "pallet-referenda" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic", - "sp-io", - "sp-runtime", + "winapi-util", ] [[package]] -name = "pallet-remark" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-allocator" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", + "log", "sp-core", - "sp-io", - "sp-runtime", + "sp-wasm-interface", + "thiserror", ] [[package]] -name = "pallet-root-offences" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-authority-discovery" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", - "pallet-session", - "pallet-staking", + "async-trait", + "futures 0.3.31", + "futures-timer", + "ip_network", + "libp2p", + "log", + "multihash", "parity-scale-codec", - "scale-info", + "prost", + "prost-build", + "rand 0.8.5", + "sc-client-api", + "sc-network", + "sp-api", + "sp-authority-discovery", + "sp-blockchain", + "sp-core", + "sp-keystore", "sp-runtime", - "sp-staking", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-root-testing" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-basic-authorship" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", + "futures 0.3.31", + "futures-timer", + "log", "parity-scale-codec", - "scale-info", + "sc-block-builder", + "sc-client-api", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", "sp-core", - "sp-io", + "sp-inherents", "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] -name = "pallet-safe-mode" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-block-builder" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-proxy", - "pallet-utility", "parity-scale-codec", - "scale-info", - "sp-arithmetic", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-inherents", "sp-runtime", ] [[package]] -name = "pallet-salary" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-chain-spec" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-ranked-collective", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", + "memmap2", + "sc-chain-spec-derive", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-telemetry", + "serde", + "serde_json", + "sp-blockchain", "sp-core", - "sp-io", "sp-runtime", + "sp-state-machine", ] [[package]] -name = "pallet-scheduler" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-chain-spec-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "sc-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" +dependencies = [ + "array-bytes", + "chrono", + "clap 4.5.21", + "fdlimit", + "futures 0.3.31", + "libp2p-identity", "log", + "names", "parity-scale-codec", - "scale-info", - "sp-io", + "rand 0.8.5", + "regex", + "rpassword", + "sc-client-api", + "sc-client-db", + "sc-keystore", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-keystore", + "sp-panic-handler", "sp-runtime", - "sp-weights", + "sp-version", + "thiserror", + "tiny-bip39 1.0.0", + "tokio", ] [[package]] -name = "pallet-scored-pool" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-client-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", + "fnv", + "futures 0.3.31", + "log", "parity-scale-codec", - "scale-info", - "sp-io", + "parking_lot 0.12.3", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", "sp-runtime", + "sp-state-machine", + "sp-statement-store", + "sp-storage", + "sp-trie", + "substrate-prometheus-endpoint", ] [[package]] -name = "pallet-session" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-client-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", + "hash-db 0.16.0", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", "log", - "pallet-timestamp", + "parity-db", "parity-scale-codec", - "scale-info", + "parking_lot 0.12.3", + "sc-client-api", + "sc-state-db", + "schnellru", + "sp-arithmetic", + "sp-blockchain", "sp-core", - "sp-io", + "sp-database", "sp-runtime", - "sp-session", - "sp-staking", "sp-state-machine", "sp-trie", ] [[package]] -name = "pallet-session-benchmarking" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", - "pallet-staking", - "parity-scale-codec", - "rand 0.8.5", + "async-trait", + "futures 0.3.31", + "futures-timer", + "libp2p-identity", + "log", + "mockall", + "parking_lot 0.12.3", + "sc-client-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", "sp-runtime", - "sp-session", + "sp-state-machine", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-skip-feeless-payment" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", + "async-trait", + "futures 0.3.31", + "log", "parity-scale-codec", - "scale-info", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-society" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-babe" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "async-trait", + "fork-tree", + "futures 0.3.31", "log", + "num-bigint", + "num-rational", + "num-traits", "parity-scale-codec", - "rand_chacha 0.3.1", - "scale-info", - "sp-arithmetic", - "sp-io", + "parking_lot 0.12.3", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-staking" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-babe-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "parity-scale-codec", - "scale-info", + "futures 0.3.31", + "jsonrpsee", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-rpc-api", "serde", + "sp-api", "sp-application-crypto", - "sp-io", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-keystore", "sp-runtime", - "sp-staking", + "thiserror", ] [[package]] -name = "pallet-staking-reward-curve" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-epochs" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", ] [[package]] -name = "pallet-staking-reward-fn" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-grandpa" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "ahash 0.8.11", + "array-bytes", + "async-trait", + "dyn-clone", + "finality-grandpa", + "fork-tree", + "futures 0.3.31", + "futures-timer", "log", - "sp-arithmetic", -] - -[[package]] -name = "pallet-staking-runtime-api" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-telemetry", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", "sp-api", - "sp-staking", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-state-trie-migration" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-grandpa-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "finality-grandpa", + "futures 0.3.31", + "jsonrpsee", "log", "parity-scale-codec", - "scale-info", + "sc-client-api", + "sc-consensus-grandpa", + "sc-rpc", + "serde", + "sp-blockchain", "sp-core", - "sp-io", "sp-runtime", + "thiserror", ] [[package]] -name = "pallet-statement" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-manual-seal" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", + "assert_matches", + "async-trait", + "futures 0.3.31", + "futures-timer", + "jsonrpsee", "log", "parity-scale-codec", - "scale-info", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", "sp-core", - "sp-io", - "sp-runtime", - "sp-statement-store", -] - -[[package]] -name = "pallet-sudo" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", + "sp-inherents", + "sp-keystore", "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-timestamp" -version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", + "async-trait", + "futures 0.3.31", + "futures-timer", "log", "parity-scale-codec", - "scale-info", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", "sp-inherents", - "sp-io", "sp-runtime", - "sp-storage", - "sp-timestamp", + "sp-state-machine", ] [[package]] -name = "pallet-tips" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-executor" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-treasury", "parity-scale-codec", - "scale-info", - "serde", + "parking_lot 0.12.3", + "sc-executor-common", + "sc-executor-wasmtime", + "schnellru", + "sp-api", "sp-core", + "sp-externalities", "sp-io", - "sp-runtime", + "sp-panic-handler", + "sp-runtime-interface", + "sp-trie", + "sp-version", + "sp-wasm-interface", + "tracing", ] [[package]] -name = "pallet-transaction-payment" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface", + "thiserror", + "wasm-instrument 0.3.0", ] [[package]] -name = "pallet-transaction-payment-rpc" -version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-executor-wasmtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api", - "parity-scale-codec", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-weights", + "anyhow", + "cfg-if 1.0.0", + "libc", + "log", + "rustix 0.36.17", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmtime", ] [[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-informant" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "pallet-transaction-payment", - "parity-scale-codec", - "sp-api", + "ansi_term", + "futures 0.3.31", + "futures-timer", + "log", + "sc-client-api", + "sc-network", + "sc-network-common", + "sp-blockchain", "sp-runtime", - "sp-weights", ] [[package]] -name = "pallet-transaction-storage" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-keystore" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "serde", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-transaction-storage-proof", + "array-bytes", + "parking_lot 0.12.3", + "serde_json", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "thiserror", ] [[package]] -name = "pallet-treasury" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "pallet-balances", + "array-bytes", + "async-channel", + "async-trait", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures 0.3.31", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "log", + "mockall", "parity-scale-codec", - "scale-info", + "parking_lot 0.12.3", + "partial_sort", + "pin-project", + "rand 0.8.5", + "sc-client-api", + "sc-network-common", + "sc-utils", "serde", + "serde_json", + "smallvec", + "sp-arithmetic", + "sp-blockchain", "sp-core", "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "unsigned-varint", + "wasm-timer", + "zeroize", ] [[package]] -name = "pallet-tx-pause" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-bitswap" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-proxy", - "pallet-utility", - "parity-scale-codec", - "scale-info", + "async-channel", + "cid", + "futures 0.3.31", + "libp2p-identity", + "log", + "prost", + "prost-build", + "sc-client-api", + "sc-network", + "sp-blockchain", "sp-runtime", + "thiserror", + "unsigned-varint", ] [[package]] -name = "pallet-uniques" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", + "async-trait", + "bitflags 1.3.2", + "futures 0.3.31", + "libp2p-identity", "parity-scale-codec", - "scale-info", + "prost-build", + "sc-consensus", + "sp-consensus", + "sp-consensus-grandpa", "sp-runtime", ] [[package]] -name = "pallet-utility" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-gossip" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", + "ahash 0.8.11", + "futures 0.3.31", + "futures-timer", + "libp2p", + "log", + "sc-network", + "sc-network-common", + "schnellru", "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", ] [[package]] -name = "pallet-vesting" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-light" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "array-bytes", + "async-channel", + "futures 0.3.31", + "libp2p-identity", "log", "parity-scale-codec", - "scale-info", + "prost", + "prost-build", + "sc-client-api", + "sc-network", + "sp-blockchain", + "sp-core", "sp-runtime", + "thiserror", ] [[package]] -name = "pallet-whitelist" -version = "36.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-statement" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "array-bytes", + "async-channel", + "futures 0.3.31", + "libp2p", + "log", "parity-scale-codec", - "scale-info", - "sp-api", - "sp-runtime", + "sc-network", + "sc-network-common", + "sp-consensus", + "sp-statement-store", + "substrate-prometheus-endpoint", ] [[package]] -name = "pallet-xcm" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-sync" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bounded-collections", - "frame-benchmarking", - "frame-support", - "frame-system", + "array-bytes", + "async-channel", + "async-trait", + "fork-tree", + "futures 0.3.31", + "futures-timer", + "libp2p", "log", - "pallet-balances", + "mockall", "parity-scale-codec", - "scale-info", - "serde", + "prost", + "prost-build", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-utils", + "schnellru", + "smallvec", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", "sp-core", - "sp-io", "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "xcm-runtime-apis", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "pallet-xcm-benchmarks" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-network-transactions" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "array-bytes", + "futures 0.3.31", + "libp2p", "log", "parity-scale-codec", - "scale-info", - "sp-io", + "sc-network", + "sc-network-common", + "sc-utils", + "sp-consensus", "sp-runtime", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", + "substrate-prometheus-endpoint", ] [[package]] -name = "pallet-xcm-bridge-hub" -version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bp-messages", - "bp-runtime", - "bp-xcm-bridge-hub", - "bridge-runtime-common", - "frame-support", - "frame-system", + "array-bytes", + "bytes", + "fnv", + "futures 0.3.31", + "futures-timer", + "hyper", + "hyper-rustls", + "libp2p", "log", - "pallet-bridge-messages", + "num_cpus", + "once_cell", "parity-scale-codec", - "scale-info", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", "sp-core", + "sp-externalities", + "sp-keystore", + "sp-offchain", "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", + "threadpool", + "tracing", ] [[package]] -name = "pallet-xcm-bridge-hub-router" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-proposer-metrics" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bp-xcm-bridge-hub-router", - "frame-benchmarking", - "frame-support", - "frame-system", "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", + "substrate-prometheus-endpoint", ] [[package]] -name = "parachains-common" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-support", - "frame-system", + "futures 0.3.31", + "jsonrpsee", "log", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authorship", - "pallet-balances", - "pallet-collator-selection", - "pallet-message-queue", - "pallet-xcm", "parity-scale-codec", - "polkadot-primitives", - "scale-info", - "sp-consensus-aura", + "parking_lot 0.12.3", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api", + "sp-blockchain", "sp-core", - "sp-io", + "sp-keystore", + "sp-offchain", + "sp-rpc", "sp-runtime", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-executor", - "substrate-wasm-builder", + "sp-session", + "sp-statement-store", + "sp-version", + "tokio", ] [[package]] -name = "parachains-runtimes-test-utils" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sc-rpc-api" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-test-relay-sproof-builder", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-collator-selection", - "pallet-session", - "pallet-timestamp", - "pallet-xcm", + "jsonrpsee", "parity-scale-codec", - "polkadot-parachain-primitives", - "sp-consensus-aura", + "sc-chain-spec", + "sc-transaction-pool-api", + "scale-info", + "serde", + "serde_json", "sp-core", - "sp-io", + "sp-rpc", "sp-runtime", - "sp-tracing", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-executor", - "substrate-wasm-builder", + "sp-version", + "thiserror", ] [[package]] -name = "parity-bip39" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +name = "sc-rpc-server" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", + "http", + "jsonrpsee", + "log", + "serde_json", + "substrate-prometheus-endpoint", + "tokio", + "tower", + "tower-http", ] [[package]] -name = "parity-bytes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" - -[[package]] -name = "parity-db" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +name = "sc-rpc-spec-v2" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "blake2 0.10.6", - "crc32fast", - "fs2", + "array-bytes", + "futures 0.3.31", + "futures-util", "hex", - "libc", + "jsonrpsee", "log", - "lz4", - "memmap2 0.5.10", + "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", - "siphasher", - "snap", - "winapi", + "sc-chain-spec", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-version", + "thiserror", + "tokio", + "tokio-stream", ] [[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +name = "sc-service" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "arrayvec 0.7.6", - "bitvec", - "byte-slice-cast", - "bytes", - "impl-trait-for-tuples 0.2.2", - "parity-scale-codec-derive", + "async-trait", + "directories", + "exit-future", + "futures 0.3.31", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-network-bitswap", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", "serde", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "static_init", + "substrate-prometheus-endpoint", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", ] [[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +name = "sc-state-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core", ] [[package]] -name = "parity-util-mem" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" +name = "sc-statement-store" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 1.0.0", - "ethereum-types", - "hashbrown 0.12.3", - "impl-trait-for-tuples 0.2.2", - "lru 0.8.1", - "parity-util-mem-derive", + "log", + "parity-db", "parking_lot 0.12.3", - "primitive-types", - "smallvec", - "winapi", + "sc-client-api", + "sc-keystore", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-statement-store", + "substrate-prometheus-endpoint", + "tokio", ] [[package]] -name = "parity-util-mem-derive" +name = "sc-storage-monitor" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" -dependencies = [ - "proc-macro2 1.0.86", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "parity-wasm" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.3", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "instant", - "lock_api 0.4.12", - "parking_lot_core 0.8.6", + "clap 4.5.21", + "fs4", + "log", + "sc-client-db", + "sp-core", + "thiserror", + "tokio", ] [[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +name = "sc-sync-state-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "lock_api 0.4.12", - "parking_lot_core 0.9.10", + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "serde", + "serde_json", + "sp-blockchain", + "sp-runtime", + "thiserror", ] [[package]] -name = "parking_lot_core" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93f386bb233083c799e6e642a9d73db98c24a5deeb95ffc85bf281255dffc98" +name = "sc-sysinfo" +version = "6.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "cfg-if 0.1.10", - "cloudabi", + "futures 0.3.31", "libc", - "redox_syscall 0.1.57", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.5.3", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "partial_sort" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" - -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle 2.6.1", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "password-hash", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "pest_meta" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" -dependencies = [ - "once_cell", - "pest", - "sha2 0.10.8", -] - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.5.0", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.1.1", - "futures-io", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polkadot-approval-distribution" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "futures 0.3.30", - "futures-timer", - "itertools 0.11.0", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.5", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-bitfield-distribution" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "always-assert", - "futures 0.3.30", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.5", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-distribution" -version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "derive_more", - "fatality", - "futures 0.3.30", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.5", - "sc-network", - "schnellru", - "sp-core", - "sp-keystore", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-recovery" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "fatality", - "futures 0.3.30", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.5", - "sc-network", - "schnellru", - "thiserror", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-ckb-merkle-mountain-range" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92" -dependencies = [ - "cfg-if 1.0.0", - "itertools 0.10.5", -] - -[[package]] -name = "polkadot-cli" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cfg-if 1.0.0", - "clap 4.5.16", - "frame-benchmarking-cli", - "futures 0.3.30", - "log", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-service", - "sc-cli", - "sc-executor", - "sc-service", - "sc-storage-monitor", - "sc-sysinfo", - "sc-tracing", - "sp-core", - "sp-io", - "sp-keyring", - "sp-maybe-compressed-blob", - "sp-runtime", - "substrate-build-script-utils", - "thiserror", -] - -[[package]] -name = "polkadot-collator-protocol" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "fatality", - "futures 0.3.30", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-keystore", - "sp-runtime", - "thiserror", - "tokio-util", - "tracing-gum", -] - -[[package]] -name = "polkadot-core-primitives" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "polkadot-dispute-distribution" -version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "derive_more", - "fatality", - "futures 0.3.30", - "futures-timer", - "indexmap 2.5.0", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-network", - "schnellru", - "sp-application-crypto", - "sp-keystore", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-erasure-coding" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-primitives", - "reed-solomon-novelpoly", - "sp-core", - "sp-trie", - "thiserror", -] - -[[package]] -name = "polkadot-gossip-support" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "rand 0.8.5", - "rand_chacha 0.3.1", - "sc-network", - "sc-network-common", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", - "tracing-gum", -] - -[[package]] -name = "polkadot-network-bridge" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "always-assert", - "async-trait", - "bytes", - "fatality", - "futures 0.3.30", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-network", - "sp-consensus", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-collation-generation" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-maybe-compressed-blob", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-approval-voting" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "derive_more", - "futures 0.3.30", - "futures-timer", - "itertools 0.11.0", - "kvdb", - "merlin", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "sc-keystore", - "schnellru", - "schnorrkel 0.11.4", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-runtime", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-av-store" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "futures 0.3.30", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sp-consensus", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-backing" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "fatality", - "futures 0.3.30", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "polkadot-statement-table", - "schnellru", - "sp-keystore", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-bitfield-signing" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing-gum", - "wasm-timer", -] - -[[package]] -name = "polkadot-node-core-candidate-validation" -version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "parity-scale-codec", - "polkadot-node-core-pvf", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives", - "polkadot-primitives", - "sp-application-crypto", - "sp-keystore", - "sp-maybe-compressed-blob", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-chain-api" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "sc-client-api", - "sc-consensus-babe", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-chain-selection" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-dispute-coordinator" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "fatality", - "futures 0.3.30", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-keystore", - "schnellru", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-parachains-inherent" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sp-blockchain", - "sp-inherents", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-prospective-parachains" -version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "fatality", - "futures 0.3.30", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-provisioner" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "fatality", - "futures 0.3.30", - "futures-timer", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "schnellru", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "always-assert", - "array-bytes", - "blake3", - "cfg-if 1.0.0", - "futures 0.3.30", - "futures-timer", - "parity-scale-codec", - "pin-project", - "polkadot-core-primitives", - "polkadot-node-core-pvf-common", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-parachain-primitives", - "polkadot-primitives", - "rand 0.8.5", - "slotmap", - "sp-core", - "tempfile", - "thiserror", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-checker" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-common" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cpu-time", - "futures 0.3.30", - "landlock", - "libc", - "nix 0.28.0", - "parity-scale-codec", - "polkadot-parachain-primitives", - "polkadot-primitives", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", - "seccompiler", - "sp-core", - "sp-crypto-hashing", - "sp-externalities", - "sp-io", - "sp-tracing", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-execute-worker" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cfg-if 1.0.0", - "cpu-time", - "libc", - "nix 0.28.0", - "parity-scale-codec", - "polkadot-node-core-pvf-common", - "polkadot-parachain-primitives", - "polkadot-primitives", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-prepare-worker" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "blake3", - "cfg-if 1.0.0", - "libc", - "nix 0.28.0", - "parity-scale-codec", - "polkadot-node-core-pvf-common", - "polkadot-primitives", - "rayon", - "sc-executor-common", - "sc-executor-wasmtime", - "staging-tracking-allocator", - "tikv-jemalloc-ctl", - "tikv-jemallocator", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-runtime-api" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-primitives", - "schnellru", - "sp-consensus-babe", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-jaeger" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-network", - "sc-network-types", - "sp-core", - "thiserror", - "tokio", -] - -[[package]] -name = "polkadot-node-metrics" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bs58 0.5.1", - "futures 0.3.30", - "futures-timer", - "log", - "parity-scale-codec", - "polkadot-primitives", - "prioritized-metered-channel", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-network-protocol" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-channel 1.9.0", - "async-trait", - "bitvec", - "derive_more", - "fatality", - "futures 0.3.30", - "hex", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-primitives", - "rand 0.8.5", - "sc-authority-discovery", - "sc-network", - "sc-network-types", - "sp-runtime", - "strum 0.26.3", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-primitives" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "bounded-vec", - "futures 0.3.30", - "parity-scale-codec", - "polkadot-parachain-primitives", - "polkadot-primitives", - "schnorrkel 0.11.4", - "serde", - "sp-application-crypto", - "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-maybe-compressed-blob", - "sp-runtime", - "thiserror", - "zstd 0.12.4", -] - -[[package]] -name = "polkadot-node-subsystem" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "polkadot-node-jaeger", - "polkadot-node-subsystem-types", - "polkadot-overseer", -] - -[[package]] -name = "polkadot-node-subsystem-types" -version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "bitvec", - "derive_more", - "fatality", - "futures 0.3.30", - "orchestra", - "polkadot-node-jaeger", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-primitives", - "polkadot-statement-table", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", - "smallvec", - "sp-api", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus-babe", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "polkadot-node-subsystem-util" -version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "derive_more", - "fatality", - "futures 0.3.30", - "futures-channel", - "itertools 0.11.0", - "kvdb", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "pin-project", - "polkadot-erasure-coding", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-overseer", - "polkadot-primitives", - "prioritized-metered-channel", - "rand 0.8.5", - "sc-client-api", - "schnellru", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-overseer" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "orchestra", - "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem-types", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-core", - "tikv-jemalloc-ctl", - "tracing-gum", -] - -[[package]] -name = "polkadot-parachain-primitives" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bounded-collections", - "derive_more", - "parity-scale-codec", - "polkadot-core-primitives", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-weights", -] - -[[package]] -name = "polkadot-primitives" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "hex-literal 0.4.1", - "log", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-authority-discovery", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-staking", -] - -[[package]] -name = "polkadot-rpc" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "jsonrpsee", - "mmr-rpc", - "pallet-transaction-payment-rpc", - "polkadot-primitives", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-babe-rpc", - "sc-consensus-beefy", - "sc-consensus-beefy-rpc", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-grandpa-rpc", - "sc-rpc", - "sc-rpc-spec-v2", - "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-keystore", - "sp-runtime", - "substrate-frame-rpc-system", - "substrate-state-trie-migration-rpc", -] - -[[package]] -name = "polkadot-runtime-common" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "libsecp256k1 0.7.1", - "log", - "pallet-asset-rate", - "pallet-authorship", - "pallet-balances", - "pallet-broker", - "pallet-election-provider-multi-phase", - "pallet-fast-unstake", - "pallet-identity", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-fn", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", - "pallet-vesting", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-session", - "sp-staking", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-metrics" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bs58 0.5.1", - "frame-benchmarking", - "parity-scale-codec", - "polkadot-primitives", - "sp-tracing", -] - -[[package]] -name = "polkadot-runtime-parachains" -version = "16.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bitflags 1.3.2", - "bitvec", - "derive_more", - "frame-benchmarking", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-broker", - "pallet-message-queue", - "pallet-session", - "pallet-staking", - "pallet-timestamp", - "pallet-vesting", - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-metrics", - "rand 0.8.5", - "rand_chacha 0.3.1", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-staking", - "staging-xcm", - "staging-xcm-executor", -] - -[[package]] -name = "polkadot-sdk" -version = "0.5.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "asset-test-utils", - "assets-common", - "binary-merkle-tree", - "bp-asset-hub-rococo", - "bp-asset-hub-westend", - "bp-bridge-hub-cumulus", - "bp-bridge-hub-kusama", - "bp-bridge-hub-polkadot", - "bp-bridge-hub-rococo", - "bp-bridge-hub-westend", - "bp-header-chain", - "bp-kusama", - "bp-messages", - "bp-parachains", - "bp-polkadot", - "bp-polkadot-bulletin", - "bp-polkadot-core", - "bp-relayers", - "bp-rococo", - "bp-runtime", - "bp-test-utils", - "bp-westend", - "bp-xcm-bridge-hub", - "bp-xcm-bridge-hub-router", - "bridge-hub-common", - "bridge-hub-test-utils", - "bridge-runtime-common", - "cumulus-client-cli", - "cumulus-client-collator", - "cumulus-client-consensus-aura", - "cumulus-client-consensus-common", - "cumulus-client-consensus-proposer", - "cumulus-client-consensus-relay-chain", - "cumulus-client-network", - "cumulus-client-parachain-inherent", - "cumulus-client-pov-recovery", - "cumulus-client-service", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-parachain-system-proc-macro", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-solo-to-para", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-ping", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-primitives-proof-size-hostfunction", - "cumulus-primitives-storage-weight-reclaim", - "cumulus-primitives-timestamp", - "cumulus-primitives-utility", - "cumulus-relay-chain-inprocess-interface", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-minimal-node", - "cumulus-relay-chain-rpc-interface", - "cumulus-test-relay-sproof-builder", - "emulated-integration-tests-common", - "fork-tree", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-benchmarking-pallet-pov", - "frame-election-provider-support", - "frame-executive", - "frame-metadata-hash-extension", - "frame-remote-externalities", - "frame-support", - "frame-support-procedural", - "frame-support-procedural-tools", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "generate-bags", - "mmr-gadget", - "mmr-rpc", - "pallet-alliance", - "pallet-asset-conversion", - "pallet-asset-conversion-ops", - "pallet-asset-conversion-tx-payment", - "pallet-asset-rate", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-assets-freezer", - "pallet-atomic-swap", - "pallet-aura", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-bridge-parachains", - "pallet-bridge-relayers", - "pallet-broker", - "pallet-child-bounties", - "pallet-collator-selection", - "pallet-collective", - "pallet-collective-content", - "pallet-contracts", - "pallet-contracts-mock-network", - "pallet-conviction-voting", - "pallet-core-fellowship", - "pallet-delegated-staking", - "pallet-democracy", - "pallet-dev-mode", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", - "pallet-fast-unstake", - "pallet-glutton", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-insecure-randomness-collective-flip", - "pallet-lottery", - "pallet-membership", - "pallet-message-queue", - "pallet-migrations", - "pallet-mixnet", - "pallet-mmr", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-nis", - "pallet-node-authorization", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-paged-list", - "pallet-parameters", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-remark", - "pallet-root-offences", - "pallet-root-testing", - "pallet-safe-mode", - "pallet-salary", - "pallet-scheduler", - "pallet-scored-pool", - "pallet-session", - "pallet-session-benchmarking", - "pallet-skip-feeless-payment", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-fn", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-statement", - "pallet-sudo", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-transaction-storage", - "pallet-treasury", - "pallet-tx-pause", - "pallet-uniques", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", - "pallet-xcm-bridge-hub", - "pallet-xcm-bridge-hub-router", - "parachains-common", - "parachains-runtimes-test-utils", - "polkadot-approval-distribution", - "polkadot-availability-bitfield-distribution", - "polkadot-availability-distribution", - "polkadot-availability-recovery", - "polkadot-cli", - "polkadot-collator-protocol", - "polkadot-core-primitives", - "polkadot-dispute-distribution", - "polkadot-erasure-coding", - "polkadot-gossip-support", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-approval-voting", - "polkadot-node-core-av-store", - "polkadot-node-core-backing", - "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-validation", - "polkadot-node-core-chain-api", - "polkadot-node-core-chain-selection", - "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-parachains-inherent", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-provisioner", - "polkadot-node-core-pvf", - "polkadot-node-core-pvf-checker", - "polkadot-node-core-pvf-common", - "polkadot-node-core-pvf-execute-worker", - "polkadot-node-core-pvf-prepare-worker", - "polkadot-node-core-runtime-api", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime-common", - "polkadot-runtime-metrics", - "polkadot-runtime-parachains", - "polkadot-sdk-frame", - "polkadot-service", - "polkadot-statement-distribution", - "polkadot-statement-table", - "rococo-runtime-constants", - "sc-allocator", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-babe-rpc", - "sc-consensus-beefy", - "sc-consensus-beefy-rpc", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-grandpa-rpc", - "sc-consensus-manual-seal", - "sc-consensus-pow", - "sc-consensus-slots", - "sc-executor", - "sc-executor-common", - "sc-executor-polkavm", - "sc-executor-wasmtime", - "sc-informant", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-network-light", - "sc-network-statement", - "sc-network-sync", - "sc-network-transactions", - "sc-network-types", - "sc-offchain", - "sc-proposer-metrics", - "sc-rpc", - "sc-rpc-api", - "sc-rpc-server", - "sc-rpc-spec-v2", - "sc-service", - "sc-state-db", - "sc-statement-store", - "sc-storage-monitor", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "slot-range-helper", - "snowbridge-beacon-primitives", - "snowbridge-core", - "snowbridge-ethereum", - "snowbridge-outbound-queue-merkle-tree", - "snowbridge-outbound-queue-runtime-api", - "snowbridge-pallet-ethereum-client", - "snowbridge-pallet-ethereum-client-fixtures", - "snowbridge-pallet-inbound-queue", - "snowbridge-pallet-inbound-queue-fixtures", - "snowbridge-pallet-outbound-queue", - "snowbridge-pallet-system", - "snowbridge-router-primitives", - "snowbridge-runtime-common", - "snowbridge-runtime-test-common", - "snowbridge-system-runtime-api", - "sp-api", - "sp-api-proc-macro", - "sp-application-crypto", - "sp-arithmetic", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-consensus-pow", - "sp-consensus-slots", - "sp-core", - "sp-core-hashing", - "sp-core-hashing-proc-macro", - "sp-crypto-ec-utils", - "sp-crypto-hashing", - "sp-database", - "sp-debug-derive", - "sp-externalities", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-keystore", - "sp-maybe-compressed-blob", - "sp-metadata-ir", - "sp-mixnet", - "sp-mmr-primitives", - "sp-npos-elections", - "sp-offchain", - "sp-panic-handler", - "sp-rpc", - "sp-runtime", - "sp-runtime-interface", - "sp-session", - "sp-staking", - "sp-state-machine", - "sp-statement-store", - "sp-std", - "sp-storage", - "sp-timestamp", - "sp-tracing", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie", - "sp-version", - "sp-wasm-interface", - "sp-weights", - "staging-chain-spec-builder", - "staging-node-inspect", - "staging-parachain-info", - "staging-tracking-allocator", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "subkey", - "substrate-bip39", - "substrate-build-script-utils", - "substrate-frame-rpc-support", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", - "substrate-rpc-client", - "substrate-state-trie-migration-rpc", - "substrate-wasm-builder", - "testnet-parachains-constants", - "tracing-gum", - "westend-runtime-constants", - "xcm-emulator", - "xcm-runtime-apis", - "xcm-simulator", -] - -[[package]] -name = "polkadot-sdk-frame" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "docify", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "log", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-arithmetic", - "sp-block-builder", - "sp-consensus-aura", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-transaction-pool", - "sp-version", -] - -[[package]] -name = "polkadot-service" -version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "futures 0.3.30", - "hex-literal 0.4.1", - "is_executable", - "kvdb", - "kvdb-rocksdb", - "log", - "mmr-gadget", - "pallet-babe", - "pallet-staking", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-approval-distribution", - "polkadot-availability-bitfield-distribution", - "polkadot-availability-distribution", - "polkadot-availability-recovery", - "polkadot-collator-protocol", - "polkadot-core-primitives", - "polkadot-dispute-distribution", - "polkadot-gossip-support", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-approval-voting", - "polkadot-node-core-av-store", - "polkadot-node-core-backing", - "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-validation", - "polkadot-node-core-chain-api", - "polkadot-node-core-chain-selection", - "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-parachains-inherent", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-provisioner", - "polkadot-node-core-pvf", - "polkadot-node-core-pvf-checker", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime-parachains", - "polkadot-statement-distribution", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-beefy", - "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-offchain", - "sc-service", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", - "schnellru", - "serde", - "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-keystore", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", - "sp-version", - "sp-weights", - "staging-xcm", - "substrate-prometheus-endpoint", - "thiserror", - "tracing-gum", - "xcm-runtime-apis", -] - -[[package]] -name = "polkadot-statement-distribution" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "arrayvec 0.7.6", - "bitvec", - "fatality", - "futures 0.3.30", - "futures-timer", - "indexmap 2.5.0", - "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "sp-staking", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-statement-table" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives", - "sp-core", - "tracing-gum", -] - -[[package]] -name = "polkavm" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" -dependencies = [ - "libc", - "log", - "polkavm-assembler", - "polkavm-common", - "polkavm-linux-raw", -] - -[[package]] -name = "polkavm-assembler" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" -dependencies = [ - "log", -] - -[[package]] -name = "polkavm-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" -dependencies = [ - "log", -] - -[[package]] -name = "polkavm-derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" -dependencies = [ - "polkavm-derive-impl-macro", -] - -[[package]] -name = "polkavm-derive-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" -dependencies = [ - "polkavm-common", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "polkavm-derive-impl-macro" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" -dependencies = [ - "polkavm-derive-impl", - "syn 2.0.77", -] - -[[package]] -name = "polkavm-linker" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" -dependencies = [ - "gimli 0.28.1", - "hashbrown 0.14.5", - "log", - "object 0.32.2", - "polkavm-common", - "regalloc2 0.9.3", - "rustc-demangle", -] - -[[package]] -name = "polkavm-linux-raw" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if 1.0.0", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" -dependencies = [ - "cfg-if 1.0.0", - "concurrent-queue", - "hermit-abi 0.4.0", - "pin-project-lite", - "rustix 0.38.35", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures", - "opaque-debug 0.3.1", - "universal-hash", -] - -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "opaque-debug 0.3.1", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "predicates" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" -dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", - "predicates-core", - "regex", -] - -[[package]] -name = "predicates" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" -dependencies = [ - "anstyle", - "predicates-core", -] - -[[package]] -name = "predicates-core" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" - -[[package]] -name = "predicates-tree" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" -dependencies = [ - "predicates-core", - "termtree", -] - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2 1.0.86", - "syn 1.0.109", -] - -[[package]] -name = "prettyplease" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" -dependencies = [ - "proc-macro2 1.0.86", - "syn 2.0.77", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "prioritized-metered-channel" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" -dependencies = [ - "coarsetime", - "crossbeam-queue", - "derive_more", - "futures 0.3.30", - "futures-timer", - "nanorand", - "thiserror", - "tracing", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "version_check", -] - -[[package]] -name = "proc-macro-warning" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "proc-macro-warning" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.3", - "thiserror", -] - -[[package]] -name = "prometheus-client" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2" -dependencies = [ - "dtoa", - "itoa", - "parking_lot 0.12.3", - "prometheus-client-derive-encode", -] - -[[package]] -name = "prometheus-client-derive-encode" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "proptest" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.6.0", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.8.4", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive 0.12.6", -] - -[[package]] -name = "prost-build" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" -dependencies = [ - "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", - "log", - "multimap 0.8.3", - "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", - "prost-types 0.11.9", - "regex", - "syn 1.0.109", - "tempfile", - "which", -] - -[[package]] -name = "prost-build" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" -dependencies = [ - "bytes", - "heck 0.5.0", - "itertools 0.12.1", - "log", - "multimap 0.10.0", - "once_cell", - "petgraph", - "prettyplease 0.2.22", - "prost 0.12.6", - "prost-types 0.12.6", - "regex", - "syn 2.0.77", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", -] - -[[package]] -name = "prost-types" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" -dependencies = [ - "prost 0.12.6", -] - -[[package]] -name = "psm" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" -dependencies = [ - "cc", -] - -[[package]] -name = "quanta" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" -dependencies = [ - "crossbeam-utils", - "libc", - "once_cell", - "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-protobuf" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" -dependencies = [ - "byteorder", -] - -[[package]] -name = "quick-protobuf-codec" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98" -dependencies = [ - "asynchronous-codec", - "bytes", - "quick-protobuf", - "thiserror", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "quinn" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" -dependencies = [ - "bytes", - "pin-project-lite", - "quinn-proto 0.9.6", - "quinn-udp 0.3.2", - "rustc-hash", - "rustls 0.20.9", - "thiserror", - "tokio", - "tracing", - "webpki", -] - -[[package]] -name = "quinn" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" -dependencies = [ - "bytes", - "futures-io", - "pin-project-lite", - "quinn-proto 0.10.6", - "quinn-udp 0.4.1", - "rustc-hash", - "rustls 0.21.12", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "quinn-proto" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" -dependencies = [ - "bytes", - "rand 0.8.5", - "ring 0.16.20", - "rustc-hash", - "rustls 0.20.9", - "slab", - "thiserror", - "tinyvec", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-proto" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" -dependencies = [ - "bytes", - "rand 0.8.5", - "ring 0.16.20", - "rustc-hash", - "rustls 0.21.12", - "slab", - "thiserror", - "tinyvec", - "tracing", -] - -[[package]] -name = "quinn-udp" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" -dependencies = [ - "libc", - "quinn-proto 0.9.6", - "socket2 0.4.10", - "tracing", - "windows-sys 0.42.0", -] - -[[package]] -name = "quinn-udp" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" -dependencies = [ - "bytes", - "libc", - "socket2 0.5.7", - "tracing", - "windows-sys 0.48.0", -] - -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2 1.0.86", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_pcg" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "raw-cpuid" -version = "11.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rcgen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" -dependencies = [ - "pem", - "ring 0.16.20", - "time", - "yasna", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.15", - "libredox", - "thiserror", -] - -[[package]] -name = "reed-solomon-novelpoly" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" -dependencies = [ - "derive_more", - "fs-err", - "static_init", - "thiserror", -] - -[[package]] -name = "ref-cast" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "regalloc2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" -dependencies = [ - "fxhash", - "log", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regalloc2" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" -dependencies = [ - "hashbrown 0.13.2", - "log", - "rustc-hash", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle 2.6.1", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if 1.0.0", - "getrandom 0.2.15", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", -] - -[[package]] -name = "rocksdb" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rococo-runtime-constants" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", - "staging-xcm", - "staging-xcm-builder", -] - -[[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" - -[[package]] -name = "rpassword" -version = "7.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" -dependencies = [ - "libc", - "rtoolbox", - "windows-sys 0.48.0", -] - -[[package]] -name = "rtnetlink" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" -dependencies = [ - "futures 0.3.30", - "log", - "netlink-packet-route", - "netlink-proto", - "nix 0.24.3", - "thiserror", - "tokio", -] - -[[package]] -name = "rtoolbox" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ruint" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", - "rand 0.8.5", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "rustix" -version = "0.36.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys 0.4.14", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "ring 0.16.20", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "log", - "once_cell", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.7", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.1.3", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-platform-verifier" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" -dependencies = [ - "core-foundation", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls 0.23.12", - "rustls-native-certs 0.7.3", - "rustls-platform-verifier-android", - "rustls-webpki 0.102.7", - "security-framework", - "security-framework-sys", - "webpki-roots 0.26.5", - "winapi", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ruzstd" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" -dependencies = [ - "byteorder", - "thiserror-core", - "twox-hash", -] - -[[package]] -name = "rw-stream-sink" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" -dependencies = [ - "futures 0.3.30", - "pin-project", - "static_assertions", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "safe-mix" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" -dependencies = [ - "rustc_version 0.2.3", -] - -[[package]] -name = "safe_arch" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "sc-allocator" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "log", - "sp-core", - "sp-wasm-interface", - "thiserror", -] - -[[package]] -name = "sc-authority-discovery" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", - "log", - "multihash 0.19.1", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-api", - "sp-authority-discovery", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "futures-timer", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-block-builder" -version = "0.42.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-trie", -] - -[[package]] -name = "sc-chain-spec" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "clap 4.5.16", - "docify", - "log", - "memmap2 0.9.4", - "parity-scale-codec", - "sc-chain-spec-derive", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-telemetry", - "serde", - "serde_json", - "sp-blockchain", - "sp-core", - "sp-crypto-hashing", - "sp-genesis-builder", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-tracing", -] - -[[package]] -name = "sc-chain-spec-derive" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "sc-cli" -version = "0.46.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "chrono", - "clap 4.5.16", - "fdlimit", - "futures 0.3.30", - "itertools 0.11.0", - "libp2p-identity", - "log", - "names", - "parity-bip39", - "parity-scale-codec", - "rand 0.8.5", - "regex", - "rpassword", - "sc-client-api", - "sc-client-db", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", - "sp-blockchain", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", - "thiserror", - "tokio", -] - -[[package]] -name = "sc-client-api" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "fnv", - "futures 0.3.30", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-database", - "sp-externalities", - "sp-runtime", - "sp-state-machine", - "sp-statement-store", - "sp-storage", - "sp-trie", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-client-db" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-state-db", - "schnellru", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", -] - -[[package]] -name = "sc-consensus" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "log", - "mockall 0.11.4", - "parking_lot 0.12.3", - "sc-client-api", - "sc-network-types", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-aura" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-babe" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "fork-tree", - "futures 0.3.30", - "log", - "num-bigint", - "num-rational", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-consensus-epochs", - "sc-consensus-slots", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-slots", - "sp-core", - "sp-crypto-hashing", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-babe-rpc" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "jsonrpsee", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-rpc-api", - "serde", - "sp-api", - "sp-application-crypto", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-consensus-beefy" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "fnv", - "futures 0.3.30", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-beefy", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "wasm-timer", -] - -[[package]] -name = "sc-consensus-beefy-rpc" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-consensus-beefy", - "sc-rpc", - "serde", - "sp-application-crypto", - "sp-consensus-beefy", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-consensus-epochs" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "fork-tree", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime", -] - -[[package]] -name = "sc-consensus-grandpa" -version = "0.29.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "ahash 0.8.11", - "array-bytes", - "async-trait", - "dyn-clone", - "finality-grandpa", - "fork-tree", - "futures 0.3.30", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-telemetry", - "sc-transaction-pool-api", - "sc-utils", - "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-grandpa-rpc" -version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "finality-grandpa", - "futures 0.3.30", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus-grandpa", - "sc-rpc", - "serde", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-consensus-manual-seal" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "assert_matches", - "async-trait", - "futures 0.3.30", - "futures-timer", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-timestamp", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-pow" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-pow", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", -] - -[[package]] -name = "sc-executor" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor-common", - "sc-executor-polkavm", - "sc-executor-wasmtime", - "schnellru", - "sp-api", - "sp-core", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-trie", - "sp-version", - "sp-wasm-interface", - "tracing", -] - -[[package]] -name = "sc-executor-common" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "polkavm", - "sc-allocator", - "sp-maybe-compressed-blob", - "sp-wasm-interface", - "thiserror", - "wasm-instrument", -] - -[[package]] -name = "sc-executor-polkavm" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "log", - "polkavm", - "sc-executor-common", - "sp-wasm-interface", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "libc", - "log", - "parking_lot 0.12.3", - "rustix 0.36.17", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmtime", -] - -[[package]] -name = "sc-informant" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "ansi_term", - "futures 0.3.30", - "futures-timer", - "log", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sp-blockchain", - "sp-runtime", -] - -[[package]] -name = "sc-keystore" -version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "parking_lot 0.12.3", - "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "thiserror", -] - -[[package]] -name = "sc-mixnet" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "arrayvec 0.7.6", - "blake2 0.10.6", - "bytes", - "futures 0.3.30", - "futures-timer", - "log", - "mixnet", - "multiaddr 0.18.1", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", - "sp-api", - "sp-consensus", - "sp-core", - "sp-keystore", - "sp-mixnet", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-network" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "asynchronous-codec", - "bytes", - "cid 0.9.0", - "either", - "fnv", - "futures 0.3.30", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", - "litep2p", - "log", - "mockall 0.11.4", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "partial_sort", - "pin-project", - "prost 0.12.6", - "prost-build 0.12.6", - "rand 0.8.5", - "sc-client-api", - "sc-network-common", - "sc-network-types", - "sc-utils", - "schnellru", - "serde", - "serde_json", - "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "tokio-stream", - "unsigned-varint 0.7.2", - "void", - "wasm-timer", - "zeroize", -] - -[[package]] -name = "sc-network-common" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "futures 0.3.30", - "libp2p-identity", - "parity-scale-codec", - "prost-build 0.12.6", - "sc-consensus", - "sc-network-types", - "sp-consensus", - "sp-consensus-grandpa", - "sp-runtime", -] - -[[package]] -name = "sc-network-gossip" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "ahash 0.8.11", - "futures 0.3.30", - "futures-timer", - "log", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "schnellru", - "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "sc-network-light" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "futures 0.3.30", - "log", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-network-statement" -version = "0.26.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "futures 0.3.30", - "log", - "parity-scale-codec", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "sp-consensus", - "sp-runtime", - "sp-statement-store", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-network-sync" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "fork-tree", - "futures 0.3.30", - "futures-timer", - "libp2p", - "log", - "mockall 0.11.4", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-utils", - "schnellru", - "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", - "sp-core", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "tokio-stream", -] - -[[package]] -name = "sc-network-transactions" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "futures 0.3.30", - "log", - "parity-scale-codec", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-consensus", - "sp-runtime", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-network-types" -version = "0.12.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "bs58 0.5.1", - "ed25519-dalek", - "libp2p-identity", - "litep2p", - "log", - "multiaddr 0.18.1", - "multihash 0.19.1", - "rand 0.8.5", - "thiserror", - "zeroize", -] - -[[package]] -name = "sc-offchain" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "bytes", - "fnv", - "futures 0.3.30", - "futures-timer", - "hyper 0.14.30", - "hyper-rustls 0.24.2", - "log", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-transaction-pool-api", - "sc-utils", - "sp-api", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "log", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-rpc" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "futures 0.3.30", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-mixnet", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", - "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-offchain", - "sp-rpc", - "sp-runtime", - "sp-session", - "sp-statement-store", - "sp-version", - "tokio", -] - -[[package]] -name = "sc-rpc-api" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec", - "sc-mixnet", - "sc-transaction-pool-api", - "scale-info", - "serde", - "serde_json", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-version", - "thiserror", -] - -[[package]] -name = "sc-rpc-server" -version = "16.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "forwarded-header-value", - "futures 0.3.30", - "governor", - "http 1.1.0", - "http-body-util", - "hyper 1.4.1", - "ip_network", - "jsonrpsee", - "log", - "serde", - "serde_json", - "substrate-prometheus-endpoint", - "tokio", - "tower", - "tower-http", -] - -[[package]] -name = "sc-rpc-spec-v2" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "futures 0.3.30", - "futures-util", - "hex", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-rpc", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-version", - "thiserror", - "tokio", - "tokio-stream", -] - -[[package]] -name = "sc-service" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures 0.3.30", - "futures-timer", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-light", - "sc-network-sync", - "sc-network-transactions", - "sc-network-types", - "sc-rpc", - "sc-rpc-server", - "sc-rpc-spec-v2", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", - "serde", - "serde_json", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie", - "sp-version", - "static_init", - "substrate-prometheus-endpoint", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "sc-state-db" -version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core", -] - -[[package]] -name = "sc-statement-store" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "log", - "parity-db", - "parking_lot 0.12.3", - "sc-client-api", - "sc-keystore", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-statement-store", - "substrate-prometheus-endpoint", - "tokio", -] - -[[package]] -name = "sc-storage-monitor" -version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "clap 4.5.16", - "fs4", - "log", - "sp-core", - "thiserror", - "tokio", -] - -[[package]] -name = "sc-sync-state-rpc" -version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "serde", - "serde_json", - "sp-blockchain", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-sysinfo" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "derive_more", - "futures 0.3.30", - "libc", - "log", - "rand 0.8.5", - "rand_pcg", - "regex", - "sc-telemetry", - "serde", - "serde_json", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-std", -] - -[[package]] -name = "sc-telemetry" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "chrono", - "futures 0.3.30", - "libp2p", - "log", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-network", - "sc-utils", - "serde", - "serde_json", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "sc-tracing" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "ansi_term", - "chrono", - "is-terminal", - "lazy_static", - "libc", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "regex", - "rustc-hash", - "sc-client-api", - "sc-tracing-proc-macro", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", - "thiserror", - "tracing", - "tracing-log", - "tracing-subscriber", -] - -[[package]] -name = "sc-tracing-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "sc-transaction-pool" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "futures-timer", - "linked-hash-map", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-crypto-hashing", - "sp-runtime", - "sp-tracing", - "sp-transaction-pool", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "futures 0.3.30", - "log", - "parity-scale-codec", - "serde", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "sc-utils" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-channel 1.9.0", - "futures 0.3.30", - "futures-timer", - "lazy_static", - "log", - "parking_lot 0.12.3", - "prometheus", - "sp-arithmetic", -] - -[[package]] -name = "scale-info" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" -dependencies = [ - "bitvec", - "cfg-if 1.0.0", - "derive_more", - "parity-scale-codec", - "scale-info-derive", - "serde", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", -] - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "schnellru" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" -dependencies = [ - "ahash 0.8.11", - "cfg-if 1.0.0", - "hashbrown 0.13.2", -] - -[[package]] -name = "schnorrkel" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "curve25519-dalek-ng", - "merlin", - "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "schnorrkel" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" -dependencies = [ - "aead", - "arrayref", - "arrayvec 0.7.6", - "curve25519-dalek", - "getrandom_or_panic", - "merlin", - "rand_core 0.6.4", - "serde_bytes", - "sha2 0.10.8", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scratch" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "sctp-proto" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" -dependencies = [ - "bytes", - "crc", - "fxhash", "log", "rand 0.8.5", - "slab", - "thiserror", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "pkcs8", - "serdect", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "seccompiler" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" -dependencies = [ - "libc", -] - -[[package]] -name = "secp256k1" -version = "0.28.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" -dependencies = [ - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" -dependencies = [ - "cc", -] - -[[package]] -name = "secrecy" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" -dependencies = [ - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "num-bigint", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" -dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.2", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ + "rand_pcg", + "regex", + "sc-telemetry", "serde", + "serde_json", + "sp-core", + "sp-io", + "sp-std", ] [[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4" +name = "sc-telemetry" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "chrono", + "futures 0.3.31", + "libp2p", + "log", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-utils", "serde", + "serde_json", + "thiserror", + "wasm-timer", ] [[package]] -name = "serde_bytes" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +name = "sc-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "ansi_term", + "atty", + "chrono", + "lazy_static", + "libc", + "log", + "parking_lot 0.12.3", + "regex", + "rustc-hash", + "sc-client-api", + "sc-tracing-proc-macro", "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", + "thiserror", + "tracing", + "tracing-log", + "tracing-subscriber", ] [[package]] -name = "serde_derive" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +name = "sc-tracing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] -name = "serde_json" -version = "1.0.127" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +name = "sc-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "itoa", - "memchr", - "ryu", + "async-trait", + "futures 0.3.31", + "futures-timer", + "linked-hash-map", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-tracing", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] -name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +name = "sc-transaction-pool-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "async-trait", + "futures 0.3.31", + "log", + "parity-scale-codec", "serde", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", ] [[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +name = "sc-utils" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "base16ct", - "serde", + "async-channel", + "futures 0.3.31", + "futures-timer", + "lazy_static", + "log", + "parking_lot 0.12.3", + "prometheus", + "sp-arithmetic", ] [[package]] -name = "sha-1" -version = "0.9.8" +name = "scale-info" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ - "block-buffer 0.9.0", + "bitvec", "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", + "derive_more", + "parity-scale-codec", + "scale-info-derive", + "serde", ] [[package]] -name = "sha-1" -version = "0.10.1" +name = "scale-info-derive" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", - "sha1-asm", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "sha1" -version = "0.10.6" +name = "schannel" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", + "windows-sys 0.59.0", ] [[package]] -name = "sha1-asm" -version = "0.5.3" +name = "schnellru" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "cc", + "ahash 0.8.11", + "cfg-if 1.0.0", + "hashbrown 0.13.2", ] [[package]] -name = "sha2" -version = "0.8.2" +name = "schnorrkel" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "arrayref", + "arrayvec 0.5.2", + "curve25519-dalek 2.1.3", + "getrandom 0.1.16", + "merlin 2.0.1", + "rand 0.7.3", + "rand_core 0.5.1", + "sha2 0.8.2", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "sha2" -version = "0.9.9" +name = "schnorrkel" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", + "arrayref", + "arrayvec 0.7.6", + "curve25519-dalek 4.1.3", + "getrandom_or_panic", + "merlin 3.0.0", + "rand_core 0.6.4", + "sha2 0.10.8", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "sha2" -version = "0.10.8" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "sha3" -version = "0.10.8" +name = "scratch" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" [[package]] -name = "sharded-slab" -version = "0.1.7" +name = "sct" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "lazy_static", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" +name = "sec1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "libc", + "base16ct", + "der", + "generic-array 0.14.7", + "pkcs8", + "subtle 2.4.1", + "zeroize", ] [[package]] -name = "signature" -version = "2.2.0" +name = "secp256k1" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "97d03ceae636d0fed5bae6a7f4f664354c5f4fcedf6eef053fef17e49f837d0a" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", + "secp256k1-sys 0.4.2", ] [[package]] -name = "simba" -version = "0.8.1" +name = "secp256k1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ - "approx", - "num-complex", - "num-traits", - "paste", - "wide", + "secp256k1-sys 0.6.1", ] [[package]] -name = "simple-dns" -version = "0.5.7" +name = "secp256k1-sys" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" +checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" dependencies = [ - "bitflags 2.6.0", + "cc", ] [[package]] -name = "simple-mermaid" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" +name = "secp256k1-sys" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" dependencies = [ - "autocfg", + "cc", ] [[package]] -name = "slice-group-by" -version = "0.3.1" +name = "secrecy" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" - -[[package]] -name = "slot-range-helper" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime", +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", ] [[package]] -name = "slotmap" -version = "1.0.7" +name = "security-framework" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "version_check", + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", ] [[package]] -name = "smallvec" -version = "1.13.2" +name = "security-framework-sys" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +dependencies = [ + "core-foundation-sys", + "libc", +] [[package]] -name = "smol" -version = "1.3.0" +name = "semver" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" dependencies = [ - "async-channel 1.9.0", - "async-executor", - "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", - "async-net", - "async-process", - "blocking", - "futures-lite 1.13.0", + "semver-parser", ] [[package]] -name = "smoldot" -version = "0.11.0" +name = "semver" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "arrayvec 0.7.6", - "async-lock 2.8.0", - "atomic-take", - "base64 0.21.7", - "bip39", - "blake2-rfc", - "bs58 0.5.1", - "chacha20", - "crossbeam-queue", - "derive_more", - "ed25519-zebra", - "either", - "event-listener 2.5.3", - "fnv", - "futures-lite 1.13.0", - "futures-util", - "hashbrown 0.14.5", - "hex", - "hmac 0.12.1", - "itertools 0.11.0", - "libsecp256k1 0.7.1", - "merlin", - "no-std-net", - "nom", - "num-bigint", - "num-rational", - "num-traits", - "pbkdf2", - "pin-project", - "poly1305", - "rand 0.8.5", - "rand_chacha 0.3.1", - "ruzstd", - "schnorrkel 0.10.2", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "siphasher", - "slab", - "smallvec", - "soketto 0.7.1", - "twox-hash", - "wasmi 0.31.2", - "x25519-dalek", - "zeroize", + "semver-parser", ] [[package]] -name = "smoldot-light" -version = "0.9.0" +name = "semver" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ - "async-channel 1.9.0", - "async-lock 2.8.0", - "base64 0.21.7", - "blake2-rfc", - "derive_more", - "either", - "event-listener 2.5.3", - "fnv", - "futures-channel", - "futures-lite 1.13.0", - "futures-util", - "hashbrown 0.14.5", - "hex", - "itertools 0.11.0", - "log", - "lru 0.11.1", - "no-std-net", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "rand_chacha 0.3.1", "serde", - "serde_json", - "siphasher", - "slab", - "smol", - "smoldot", - "zeroize", ] [[package]] -name = "snap" -version = "1.1.1" +name = "semver-parser" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] -name = "snow" -version = "0.9.6" +name = "serde" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ - "aes-gcm", - "blake2 0.10.6", - "chacha20poly1305", - "curve25519-dalek", - "rand_core 0.6.4", - "ring 0.17.8", - "rustc_version 0.4.1", - "sha2 0.10.8", - "subtle 2.6.1", + "serde_derive", ] [[package]] -name = "snowbridge-amcl" -version = "1.0.2" +name = "serde_derive" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ - "parity-scale-codec", - "scale-info", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", ] [[package]] -name = "snowbridge-beacon-primitives" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "serde_json" +version = "1.0.133" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "byte-slice-cast", - "frame-support", - "hex", - "parity-scale-codec", - "rlp", - "scale-info", + "itoa", + "memchr", + "ryu", "serde", - "snowbridge-ethereum", - "snowbridge-milagro-bls", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "ssz_rs", - "ssz_rs_derive", ] [[package]] -name = "snowbridge-core" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "ethabi-decode", - "frame-support", - "frame-system", - "hex-literal 0.4.1", - "parity-scale-codec", - "polkadot-parachain-primitives", - "scale-info", "serde", - "snowbridge-beacon-primitives", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", ] [[package]] -name = "snowbridge-ethereum" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ - "ethabi-decode", - "ethbloom", - "ethereum-types", - "hex-literal 0.4.1", - "parity-bytes", - "parity-scale-codec", - "rlp", - "scale-info", - "serde", - "serde-big-array", - "sp-io", - "sp-runtime", - "sp-std", + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.1", ] [[package]] -name = "snowbridge-milagro-bls" -version = "1.5.4" +name = "sha2" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "026aa8638f690a53e3f7676024b9e913b1cab0111d1b7b92669d40a188f9d7e6" +checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" dependencies = [ - "hex", - "lazy_static", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "snowbridge-amcl", - "zeroize", + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", ] [[package]] -name = "snowbridge-outbound-queue-merkle-tree" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.1", ] [[package]] -name = "snowbridge-outbound-queue-runtime-api" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "frame-support", - "parity-scale-codec", - "snowbridge-core", - "snowbridge-outbound-queue-merkle-tree", - "sp-api", - "sp-std", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", ] [[package]] -name = "snowbridge-pallet-ethereum-client" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "serde", - "snowbridge-beacon-primitives", - "snowbridge-core", - "snowbridge-ethereum", - "snowbridge-pallet-ethereum-client-fixtures", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "static_assertions", + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug 0.3.1", ] [[package]] -name = "snowbridge-pallet-ethereum-client-fixtures" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "hex-literal 0.4.1", - "snowbridge-beacon-primitives", - "snowbridge-core", - "sp-core", - "sp-std", + "digest 0.10.7", + "keccak", ] [[package]] -name = "snowbridge-pallet-inbound-queue" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-balances", - "parity-scale-codec", - "scale-info", - "serde", - "snowbridge-beacon-primitives", - "snowbridge-core", - "snowbridge-pallet-inbound-queue-fixtures", - "snowbridge-router-primitives", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-executor", + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", ] [[package]] -name = "snowbridge-pallet-inbound-queue-fixtures" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "hex-literal 0.4.1", - "snowbridge-beacon-primitives", - "snowbridge-core", - "sp-core", - "sp-std", + "digest 0.10.7", + "rand_core 0.6.4", ] [[package]] -name = "snowbridge-pallet-outbound-queue" +name = "simba" version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ - "bridge-hub-common", - "ethabi-decode", - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "snowbridge-core", - "snowbridge-outbound-queue-merkle-tree", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "approx", + "num-complex", + "num-traits", + "paste", + "wide", ] [[package]] -name = "snowbridge-pallet-system" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "snowbridge-core", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-executor", -] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] -name = "snowbridge-router-primitives" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "frame-support", - "hex-literal 0.4.1", - "log", - "parity-scale-codec", - "scale-info", - "snowbridge-core", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-executor", + "autocfg", ] [[package]] -name = "snowbridge-runtime-common" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "log", - "parity-scale-codec", - "snowbridge-core", - "sp-arithmetic", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] -name = "snowbridge-runtime-test-common" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-pallet-parachain-system", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-collator-selection", - "pallet-message-queue", - "pallet-session", - "pallet-timestamp", - "pallet-utility", - "pallet-xcm", - "parachains-runtimes-test-utils", - "parity-scale-codec", - "snowbridge-core", - "snowbridge-pallet-ethereum-client", - "snowbridge-pallet-ethereum-client-fixtures", - "snowbridge-pallet-outbound-queue", - "snowbridge-pallet-system", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "staging-parachain-info", - "staging-xcm", - "staging-xcm-executor", -] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] -name = "snowbridge-system-runtime-api" -version = "0.9.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "snow" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ - "parity-scale-codec", - "snowbridge-core", - "sp-api", - "sp-std", - "staging-xcm", + "aes-gcm", + "blake2", + "chacha20poly1305", + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "ring 0.17.8", + "rustc_version 0.4.1", + "sha2 0.10.8", + "subtle 2.4.1", ] [[package]] @@ -15707,36 +9328,21 @@ checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", "bytes", - "futures 0.3.30", + "flate2", + "futures 0.3.31", + "http", "httparse", "log", "rand 0.8.5", - "sha-1 0.9.8", -] - -[[package]] -name = "soketto" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures 0.3.30", - "http 1.1.0", - "httparse", - "log", - "rand 0.8.5", - "sha1", + "sha-1", ] [[package]] name = "sp-api" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "scale-info", @@ -15745,8 +9351,8 @@ dependencies = [ "sp-externalities", "sp-metadata-ir", "sp-runtime", - "sp-runtime-interface", "sp-state-machine", + "sp-std", "sp-trie", "sp-version", "thiserror", @@ -15754,92 +9360,94 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "Inflector", - "blake2 0.10.6", + "blake2", "expander", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "sp-application-crypto" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", + "sp-std", ] [[package]] name = "sp-arithmetic" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", + "sp-std", "static_assertions", ] [[package]] name = "sp-authority-discovery" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", + "sp-std", ] [[package]] name = "sp-block-builder" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", + "sp-std", ] [[package]] name = "sp-blockchain" -version = "37.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", + "log", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", - "sp-core", "sp-database", "sp-runtime", "sp-state-machine", "thiserror", - "tracing", ] [[package]] name = "sp-consensus" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", "sp-core", "sp-inherents", @@ -15850,8 +9458,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", "parity-scale-codec", @@ -15861,13 +9469,14 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", + "sp-std", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", "parity-scale-codec", @@ -15879,33 +9488,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", + "sp-std", "sp-timestamp", ] -[[package]] -name = "sp-consensus-beefy" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "lazy_static", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-keystore", - "sp-mmr-primitives", - "sp-runtime", - "strum 0.26.3", -] - [[package]] name = "sp-consensus-grandpa" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "finality-grandpa", "log", @@ -15917,63 +9507,54 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", -] - -[[package]] -name = "sp-consensus-pow" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "sp-api", - "sp-core", - "sp-runtime", + "sp-std", ] [[package]] name = "sp-consensus-slots" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "scale-info", "serde", + "sp-std", "sp-timestamp", ] [[package]] name = "sp-core" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "21.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "array-bytes", + "bandersnatch_vrfs", "bitflags 1.3.2", - "blake2 0.10.6", + "blake2", "bounded-collections", "bs58 0.5.1", "dyn-clonable", "ed25519-zebra", - "futures 0.3.30", - "hash-db", + "futures 0.3.31", + "hash-db 0.16.0", "hash256-std-hasher", "impl-serde", - "itertools 0.11.0", - "k256", + "lazy_static", "libsecp256k1 0.7.1", "log", - "merlin", - "parity-bip39", + "merlin 2.0.1", "parity-scale-codec", "parking_lot 0.12.3", "paste", "primitive-types", "rand 0.8.5", + "regex", "scale-info", - "schnorrkel 0.11.4", - "secp256k1", + "schnorrkel 0.9.1", + "secp256k1 0.24.3", "secrecy", "serde", - "sp-crypto-hashing", + "sp-core-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -15982,74 +9563,38 @@ dependencies = [ "ss58-registry", "substrate-bip39", "thiserror", + "tiny-bip39 1.0.0", "tracing", - "w3f-bls", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "sp-crypto-hashing", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "sp-crypto-hashing-proc-macro", -] - -[[package]] -name = "sp-crypto-ec-utils" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "ark-bls12-377", - "ark-bls12-377-ext", - "ark-bls12-381", - "ark-bls12-381-ext", - "ark-bw6-761", - "ark-bw6-761-ext", - "ark-ec", - "ark-ed-on-bls12-377", - "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale", - "sp-runtime-interface", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", "sha2 0.10.8", - "sha3", + "sha3 0.10.8", "twox-hash", ] [[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "sp-core-hashing-proc-macro" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "quote 1.0.37", - "sp-crypto-hashing", - "syn 2.0.77", + "sp-core-hashing", + "syn 2.0.89", ] [[package]] name = "sp-database" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -16057,69 +9602,68 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "8.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "sp-externalities" -version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "environmental", "parity-scale-codec", + "sp-std", "sp-storage", ] [[package]] name = "sp-genesis-builder" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "parity-scale-codec", - "scale-info", "serde_json", "sp-api", "sp-runtime", + "sp-std", ] [[package]] name = "sp-inherents" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", - "impl-trait-for-tuples 0.2.2", + "impl-trait-for-tuples 0.2.3", "parity-scale-codec", "scale-info", "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-io" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "bytes", - "docify", "ed25519-dalek", "libsecp256k1 0.7.1", "log", "parity-scale-codec", - "polkavm-derive", "rustversion", - "secp256k1", + "secp256k1 0.24.3", "sp-core", - "sp-crypto-hashing", "sp-externalities", "sp-keystore", "sp-runtime-interface", "sp-state-machine", + "sp-std", "sp-tracing", "sp-trie", "tracing", @@ -16128,29 +9672,31 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "lazy_static", "sp-core", "sp-runtime", - "strum 0.26.3", + "strum 0.24.1", ] [[package]] name = "sp-keystore" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.27.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "sp-core", "sp-externalities", + "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "thiserror", "zstd 0.12.4", @@ -16158,46 +9704,19 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-metadata", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "sp-mixnet" -version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", -] - -[[package]] -name = "sp-mmr-primitives" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "log", - "parity-scale-codec", - "polkadot-ckb-merkle-mountain-range", - "scale-info", - "serde", - "sp-api", - "sp-core", - "sp-debug-derive", - "sp-runtime", - "thiserror", + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std", ] [[package]] name = "sp-npos-elections" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -16205,12 +9724,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", + "sp-std", ] [[package]] name = "sp-offchain" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "sp-api", "sp-core", @@ -16219,8 +9739,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "8.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "backtrace", "lazy_static", @@ -16229,8 +9749,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "rustc-hash", "serde", @@ -16239,39 +9759,34 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", "either", "hash256-std-hasher", - "impl-trait-for-tuples 0.2.2", + "impl-trait-for-tuples 0.2.3", "log", - "num-traits", "parity-scale-codec", "paste", "rand 0.8.5", "scale-info", "serde", - "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", "sp-io", "sp-std", "sp-weights", - "tracing", ] [[package]] name = "sp-runtime-interface" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "bytes", - "impl-trait-for-tuples 0.2.2", + "impl-trait-for-tuples 0.2.3", "parity-scale-codec", - "polkavm-derive", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", @@ -16284,21 +9799,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "Inflector", - "expander", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "sp-session" -version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -16307,27 +9821,29 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", + "sp-std", ] [[package]] name = "sp-staking" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "impl-trait-for-tuples 0.2.2", + "impl-trait-for-tuples 0.2.3", "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-runtime", + "sp-std", ] [[package]] name = "sp-state-machine" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.28.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -16336,6 +9852,7 @@ dependencies = [ "sp-core", "sp-externalities", "sp-panic-handler", + "sp-std", "sp-trie", "thiserror", "tracing", @@ -16344,11 +9861,11 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "aes-gcm", - "curve25519-dalek", + "curve25519-dalek 4.1.3", "ed25519-dalek", "hkdf", "parity-scale-codec", @@ -16358,49 +9875,52 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing", "sp-externalities", "sp-runtime", "sp-runtime-interface", + "sp-std", "thiserror", - "x25519-dalek", + "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "8.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" [[package]] name = "sp-storage" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", + "sp-std", ] [[package]] name = "sp-timestamp" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-tracing" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", + "sp-std", "tracing", "tracing-core", "tracing-subscriber", @@ -16408,8 +9928,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "sp-api", "sp-runtime", @@ -16417,8 +9937,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "async-trait", "parity-scale-codec", @@ -16426,26 +9946,27 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", + "sp-std", "sp-trie", ] [[package]] name = "sp-trie" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "ahash 0.8.11", - "hash-db", + "hash-db 0.16.0", + "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand 0.8.5", "scale-info", "schnellru", "sp-core", - "sp-externalities", + "sp-std", "thiserror", "tracing", "trie-db", @@ -16454,15 +9975,15 @@ dependencies = [ [[package]] name = "sp-version" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro", + "sp-core-hashing-proc-macro", "sp-runtime", "sp-std", "sp-version-proc-macro", @@ -16471,39 +9992,41 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "8.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "parity-scale-codec", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "sp-wasm-interface" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "anyhow", - "impl-trait-for-tuples 0.2.2", + "impl-trait-for-tuples 0.2.3", "log", "parity-scale-codec", + "sp-std", "wasmtime", ] [[package]] name = "sp-weights" -version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", + "sp-core", "sp-debug-derive", + "sp-std", ] [[package]] @@ -16521,26 +10044,6 @@ dependencies = [ "lock_api 0.4.12", ] -[[package]] -name = "spinners" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" -dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", -] - -[[package]] -name = "spinning_top" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" -dependencies = [ - "lock_api 0.4.12", -] - [[package]] name = "spki" version = "0.7.3" @@ -16553,9 +10056,9 @@ dependencies = [ [[package]] name = "sqlformat" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f895e3734318cc55f1fe66258926c9b910c124d47520339efecbb6c59cec7c1f" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" dependencies = [ "nom", "unicode_categories", @@ -16593,7 +10096,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.5.0", + "indexmap 2.6.0", "log", "memchr", "native-tls", @@ -16608,7 +10111,7 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "url 2.5.2", + "url 2.5.3", ] [[package]] @@ -16617,7 +10120,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "sqlx-core", "sqlx-macros-core", @@ -16635,7 +10138,7 @@ dependencies = [ "heck 0.4.1", "hex", "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "serde", "serde_json", @@ -16645,7 +10148,7 @@ dependencies = [ "syn 1.0.109", "tempfile", "tokio", - "url 2.5.2", + "url 2.5.3", ] [[package]] @@ -16667,46 +10170,23 @@ dependencies = [ "serde", "sqlx-core", "tracing", - "url 2.5.2", + "url 2.5.3", "urlencoding", ] [[package]] name = "ss58-registry" -version = "1.50.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43fce22ed1df64d04b262351c8f9d5c6da4f76f79f25ad15529792f893fad25d" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "serde", "serde_json", - "unicode-xid 0.2.5", -] - -[[package]] -name = "ssz_rs" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f" -dependencies = [ - "bitvec", - "num-bigint", - "sha2 0.9.9", - "ssz_rs_derive", -] - -[[package]] -name = "ssz_rs_derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", + "unicode-xid 0.2.6", ] [[package]] @@ -16715,113 +10195,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "staging-chain-spec-builder" -version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "clap 4.5.16", - "log", - "sc-chain-spec", - "serde_json", - "sp-tracing", -] - -[[package]] -name = "staging-node-inspect" -version = "0.22.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "clap 4.5.16", - "parity-scale-codec", - "sc-cli", - "sc-client-api", - "sc-service", - "sp-blockchain", - "sp-core", - "sp-io", - "sp-runtime", - "sp-statement-store", - "thiserror", -] - -[[package]] -name = "staging-parachain-info" -version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-runtime", -] - -[[package]] -name = "staging-tracking-allocator" -version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" - -[[package]] -name = "staging-xcm" -version = "14.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "array-bytes", - "bounded-collections", - "derivative", - "environmental", - "impl-trait-for-tuples 0.2.2", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-weights", - "xcm-procedural", -] - -[[package]] -name = "staging-xcm-builder" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "log", - "pallet-transaction-payment", - "parity-scale-codec", - "polkadot-parachain-primitives", - "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-weights", - "staging-xcm", - "staging-xcm-executor", -] - -[[package]] -name = "staging-xcm-executor" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "environmental", - "frame-benchmarking", - "frame-support", - "impl-trait-for-tuples 0.2.2", - "parity-scale-codec", - "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-weights", - "staging-xcm", - "tracing", -] - [[package]] name = "static_assertions" version = "1.1.0" @@ -16851,42 +10224,11 @@ checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" dependencies = [ "cfg_aliases", "memchr", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] -[[package]] -name = "str0m" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" -dependencies = [ - "combine", - "crc", - "fastrand 2.1.1", - "hmac 0.12.1", - "once_cell", - "openssl", - "openssl-sys", - "sctp-proto", - "serde", - "sha-1 0.10.1", - "thiserror", - "tracing", -] - -[[package]] -name = "string-interner" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6a0d765f5807e98a091107bae0a56ea3799f66a5de47b2c84c94a39c09974e" -dependencies = [ - "cfg-if 1.0.0", - "hashbrown 0.14.5", - "serde", -] - [[package]] name = "strsim" version = "0.8.0" @@ -16918,7 +10260,7 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] @@ -16943,9 +10285,6 @@ name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] [[package]] name = "strum_macros" @@ -16954,7 +10293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e61bb0be289045cb80bfce000512e32d09f8337e54c186725da381377ad1f8d5" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", ] @@ -16966,7 +10305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "rustversion", "syn 1.0.109", @@ -16979,59 +10318,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "rustversion", - "syn 2.0.77", -] - -[[package]] -name = "subkey" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "clap 4.5.16", - "sc-cli", + "syn 2.0.89", ] [[package]] name = "substrate-bip39" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" dependencies = [ - "hmac 0.12.1", - "pbkdf2", + "hmac 0.11.0", + "pbkdf2 0.8.0", "schnorrkel 0.11.4", - "sha2 0.10.8", + "sha2 0.9.9", "zeroize", ] [[package]] name = "substrate-build-script-utils" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" - -[[package]] -name = "substrate-frame-rpc-support" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "jsonrpsee", - "parity-scale-codec", - "sc-rpc-api", - "serde", - "sp-storage", -] +version = "3.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" [[package]] name = "substrate-frame-rpc-system" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "docify", "frame-system-rpc-runtime-api", - "futures 0.3.30", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -17046,35 +10363,20 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "http-body-util", - "hyper 1.4.1", - "hyper-util", + "hyper", "log", "prometheus", "thiserror", "tokio", ] -[[package]] -name = "substrate-rpc-client" -version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api", - "serde", - "sp-runtime", -] - [[package]] name = "substrate-state-trie-migration-rpc" -version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -17090,19 +10392,18 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ + "ansi_term", "build-helper", "cargo_metadata", - "console", "filetime", "parity-wasm", - "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.26.3", + "strum 0.24.1", "tempfile", - "toml 0.8.19", + "toml 0.7.8", "walkdir", "wasm-opt", ] @@ -17115,15 +10416,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "subtle-ng" -version = "2.5.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" @@ -17142,44 +10437,32 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.77" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047" -dependencies = [ - "paste", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - [[package]] name = "synstructure" version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", "syn 1.0.109", - "unicode-xid 0.2.5", + "unicode-xid 0.2.6", ] [[package]] @@ -17188,27 +10471,27 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -17228,14 +10511,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if 1.0.0", - "fastrand 2.1.1", + "fastrand", "once_cell", - "rustix 0.38.35", + "rustix 0.38.41", "windows-sys 0.59.0", ] @@ -17245,17 +10528,7 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" -dependencies = [ - "rustix 0.38.35", - "windows-sys 0.48.0", + "winapi-util", ] [[package]] @@ -17264,68 +10537,33 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" -[[package]] -name = "testnet-parachains-constants" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "polkadot-core-primitives", - "rococo-runtime-constants", - "smallvec", - "sp-runtime", - "staging-xcm", - "westend-runtime-constants", -] - [[package]] name = "textwrap" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] -[[package]] -name = "thiserror-core" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" -dependencies = [ - "thiserror-core-impl", -] - -[[package]] -name = "thiserror-core-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" -dependencies = [ - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] @@ -17353,30 +10591,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "thrift" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" -dependencies = [ - "byteorder", - "integer-encoding", - "log", - "ordered-float", - "threadpool", -] - -[[package]] -name = "tikv-jemalloc-ctl" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" -dependencies = [ - "libc", - "paste", - "tikv-jemalloc-sys", -] - [[package]] name = "tikv-jemalloc-sys" version = "0.5.4+5.3.0-patched" @@ -17387,16 +10601,6 @@ dependencies = [ "libc", ] -[[package]] -name = "tikv-jemallocator" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca" -dependencies = [ - "libc", - "tikv-jemalloc-sys", -] - [[package]] name = "time" version = "0.3.36" @@ -17428,6 +10632,57 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac 0.12.1", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.8", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tiny-hderive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b874a4992538d4b2f4fbbac11b9419d685f4b39bdc3fed95b04e07bfd76040" +dependencies = [ + "base58", + "hmac 0.7.1", + "libsecp256k1 0.3.5", + "memzero", + "sha2 0.8.2", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -17437,6 +10692,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -17454,16 +10719,16 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", "libc", "mio", "parking_lot 0.12.3", - "pin-project-lite", + "pin-project-lite 0.2.15", "signal-hook-registry", "socket2 0.5.7", "tokio-macros", @@ -17476,20 +10741,9 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand 0.8.5", - "tokio", + "syn 2.0.89", ] [[package]] @@ -17502,55 +10756,29 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls 0.23.12", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", - "pin-project-lite", + "pin-project-lite 0.2.15", "tokio", "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite", -] - [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite", + "pin-project-lite 0.2.15", "tokio", ] @@ -17563,6 +10791,18 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + [[package]] name = "toml" version = "0.8.19" @@ -17572,7 +10812,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -17586,15 +10826,28 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -17603,11 +10856,6 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", "tower-layer", "tower-service", "tracing", @@ -17615,16 +10863,18 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.5.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ "bitflags 2.6.0", "bytes", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "pin-project-lite", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.15", "tower-layer", "tower-service", ] @@ -17648,7 +10898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite", + "pin-project-lite 0.2.15", "tracing-attributes", "tracing-core", ] @@ -17659,9 +10909,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] @@ -17685,65 +10935,57 @@ dependencies = [ ] [[package]] -name = "tracing-gum" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "coarsetime", - "polkadot-primitives", - "tracing", - "tracing-gum-proc-macro", -] - -[[package]] -name = "tracing-gum-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "expander", - "proc-macro-crate 3.2.0", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "tracing-log" -version = "0.2.0" +name = "tracing-serde" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ - "log", - "once_cell", + "serde", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ + "ansi_term", + "chrono", + "lazy_static", "matchers", - "nu-ansi-term", - "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.11.2", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] name = "trie-db" -version = "0.29.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ - "hash-db", + "hash-db 0.16.0", + "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -17755,79 +10997,63 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db", + "hash-db 0.16.0", ] [[package]] -name = "trust-dns-proto" -version = "0.22.0" +name = "triehash" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" +checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" dependencies = [ - "async-trait", - "cfg-if 1.0.0", - "data-encoding", - "enum-as-inner 0.5.1", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "rand 0.8.5", - "smallvec", - "socket2 0.4.10", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url 2.5.2", + "hash-db 0.15.2", + "rlp", ] [[package]] name = "trust-dns-proto" -version = "0.23.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ "async-trait", "cfg-if 1.0.0", "data-encoding", - "enum-as-inner 0.6.0", + "enum-as-inner", "futures-channel", "futures-io", "futures-util", - "idna 0.4.0", + "idna 0.2.3", "ipnet", - "once_cell", + "lazy_static", "rand 0.8.5", "smallvec", + "socket2 0.4.10", "thiserror", "tinyvec", "tokio", "tracing", - "url 2.5.2", + "url 2.5.3", ] [[package]] name = "trust-dns-resolver" -version = "0.23.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ "cfg-if 1.0.0", "futures-util", "ipconfig", + "lazy_static", "lru-cache", - "once_cell", "parking_lot 0.12.3", - "rand 0.8.5", "resolv-conf", "smallvec", "thiserror", "tokio", "tracing", - "trust-dns-proto 0.23.2", + "trust-dns-proto", ] [[package]] @@ -17842,32 +11068,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror", - "url 2.5.2", - "utf-8", -] - -[[package]] -name = "tuplex" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "676ac81d5454c4dcf37955d34fa8626ede3490f744b86ca14a7b90168d2a08aa" - [[package]] name = "twox-hash" version = "1.6.3" @@ -17896,9 +11096,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -17912,44 +11112,44 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" @@ -17959,9 +11159,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unicode_categories" @@ -17976,7 +11176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.6.1", + "subtle 2.4.1", ] [[package]] @@ -17985,20 +11185,10 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ - "asynchronous-codec", - "bytes", - "futures-io", - "futures-util", -] - -[[package]] -name = "unsigned-varint" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" -dependencies = [ + "asynchronous-codec", "bytes", - "tokio-util", + "futures-io", + "futures-util", ] [[package]] @@ -18026,12 +11216,12 @@ dependencies = [ [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding 2.3.1", ] @@ -18042,10 +11232,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] -name = "utf-8" -version = "0.7.6" +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" @@ -18083,45 +11279,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -[[package]] -name = "w3f-bls" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" -dependencies = [ - "ark-bls12-377", - "ark-bls12-381", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-serialize-derive", - "arrayref", - "constcat", - "digest 0.10.7", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "sha2 0.10.8", - "sha3", - "thiserror", - "zeroize", -] - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -18153,20 +11310,11 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "wasix" -version = "0.12.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" -dependencies = [ - "wasi 0.11.0+wasi-snapshot-preview1", -] - [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if 1.0.0", "once_cell", @@ -18175,24 +11323,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -18202,9 +11350,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote 1.0.37", "wasm-bindgen-macro-support", @@ -18212,22 +11360,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[package]] +name = "wasm-instrument" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +dependencies = [ + "parity-wasm", +] [[package]] name = "wasm-instrument" @@ -18240,9 +11397,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.1" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +checksum = "effbef3bd1dde18acb401f73e740a6f3d4a1bc651e9773bddc512fe4d8d68f67" dependencies = [ "anyhow", "libc", @@ -18256,9 +11413,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.116.0" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +checksum = "c09e24eb283919ace2ed5733bda4842a59ce4c8de110ef5c6d98859513d17047" dependencies = [ "anyhow", "cxx", @@ -18268,9 +11425,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.116.0" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +checksum = "36f2f817bed2e8d65eb779fa37317e74de15585751f903c9118342d1970703a4" dependencies = [ "anyhow", "cc", @@ -18284,7 +11441,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -18302,24 +11459,7 @@ dependencies = [ "smallvec", "spin 0.9.8", "wasmi_arena", - "wasmi_core 0.13.0", - "wasmparser-nostd", -] - -[[package]] -name = "wasmi" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50386c99b9c32bd2ed71a55b6dd4040af2580530fae8bdb9a6576571a80d0cca" -dependencies = [ - "arrayvec 0.7.6", - "multi-stash", - "num-derive 0.4.2", - "num-traits", - "smallvec", - "spin 0.9.8", - "wasmi_collections", - "wasmi_core 0.32.3", + "wasmi_core", "wasmparser-nostd", ] @@ -18329,17 +11469,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" -[[package]] -name = "wasmi_collections" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4" -dependencies = [ - "ahash 0.8.11", - "hashbrown 0.14.5", - "string-interner", -] - [[package]] name = "wasmi_core" version = "0.13.0" @@ -18352,18 +11481,6 @@ dependencies = [ "paste", ] -[[package]] -name = "wasmi_core" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23b3a7f6c8c3ceeec6b83531ee61f0013c56e51cbf2b14b0f213548b23a4b41" -dependencies = [ - "downcast-rs", - "libm", - "num-traits", - "paste", -] - [[package]] name = "wasmparser" version = "0.102.0" @@ -18371,7 +11488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ "indexmap 1.9.3", - "url 2.5.2", + "url 2.5.3", ] [[package]] @@ -18580,9 +11697,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -18600,33 +11717,11 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "westend-runtime-constants" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", - "staging-xcm", - "staging-xcm-builder", + "webpki", ] [[package]] @@ -18638,14 +11733,14 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.35", + "rustix 0.38.41", ] [[package]] name = "wide" -version = "0.7.28" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" +checksum = "58e6db2670d2be78525979e9a5f9c69d296fd7d670549fe9ebf70f8708cb5019" dependencies = [ "bytemuck", "safe_arch", @@ -18690,45 +11785,40 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.51.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", + "windows-core 0.53.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" dependencies = [ + "windows-result", "windows-targets 0.52.6", ] [[package]] -name = "windows-sys" -version = "0.42.0" +name = "windows-result" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.52.6", ] [[package]] @@ -18947,9 +12037,18 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -18964,6 +12063,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -18975,157 +12086,55 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" dependencies = [ - "curve25519-dalek", - "rand_core 0.6.4", - "serde", + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", "zeroize", ] [[package]] -name = "x509-parser" -version = "0.15.1" +name = "x25519-dalek" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "asn1-rs 0.5.2", - "data-encoding", - "der-parser 8.2.0", - "lazy_static", - "nom", - "oid-registry 0.6.1", - "rusticata-macros", - "thiserror", - "time", + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "serde", + "zeroize", ] [[package]] name = "x509-parser" -version = "0.16.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs", + "base64 0.13.1", "data-encoding", - "der-parser 9.0.0", + "der-parser", "lazy_static", "nom", - "oid-registry 0.7.1", + "oid-registry", "rusticata-macros", "thiserror", "time", ] -[[package]] -name = "xcm-emulator" -version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-test-relay-sproof-builder", - "frame-support", - "frame-system", - "impl-trait-for-tuples 0.2.2", - "lazy_static", - "log", - "pallet-balances", - "pallet-message-queue", - "parachains-common", - "parity-scale-codec", - "paste", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", - "staging-xcm", - "staging-xcm-executor", -] - -[[package]] -name = "xcm-procedural" -version = "10.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "Inflector", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 2.0.77", -] - -[[package]] -name = "xcm-runtime-apis" -version = "0.3.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-weights", - "staging-xcm", - "staging-xcm-executor", -] - -[[package]] -name = "xcm-simulator" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=stable2407#d6f482d5593c3e791d7b3e92e95aa3c734e23794" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "paste", - "polkadot-core-primitives", - "polkadot-parachain-primitives", - "polkadot-primitives", - "polkadot-runtime-parachains", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", -] - -[[package]] -name = "xml-rs" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" - -[[package]] -name = "xmltree" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" -dependencies = [ - "xml-rs", -] - [[package]] name = "yamux" -version = "0.12.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" +checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "nohash-hasher", "parking_lot 0.12.3", - "pin-project", "rand 0.8.5", "static_assertions", ] @@ -19139,6 +12148,30 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -19155,9 +12188,30 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", + "synstructure 0.13.1", ] [[package]] @@ -19175,9 +12229,31 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.91", + "quote 1.0.37", + "syn 2.0.89", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2 1.0.91", "quote 1.0.37", - "syn 2.0.77", + "syn 2.0.89", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 67818da..87f1946 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,20 +13,21 @@ members = [ 'modules/traits', 'modules/claims', 'modules/type-utils', - 'modules/crc20' + "bin/keytool", + "crates/*", ] [workspace.dependencies] +array-bytes = "6.1" parity-scale-codec = { default-features = false, version = "3.0.0" } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } enum-iterator = "0.6.0" -clap = { version = "4.5", features = ["derive", "deprecated"] } -clap_complete = { version = "4.0.2" } serde = { features = ['derive'], version = '1.0.101', default-features = false } serde_json = "1.0" smallvec = "1.4.1" libsecp256k1 = { version = "0.3.4", default-features = false, features = ["hmac"] } impl-trait-for-tuples = "0.1.3" +jsonrpsee = { version = "0.16.2", features = ["server"] } log = { version = "0.4.14", default-features = false } rustc-hex = { default-features = false, version = "2.0.1" } hex-literal = "0.3.1" @@ -41,13 +42,14 @@ secp256k1 = "0.20.3" tiny-bip39 = "0.8.0" tiny-hderive = "0.3.0" sha3 = { version = "0.9.1", default-features = false } +clap = { version = "4.3", features = ["derive"] } +rand = "0.8.5" # other jsonrpc-core = "15.0.0" jsonrpc-core-client = "15.0.0" jsonrpc-derive = "15.0.0" jsonrpc-pubsub = "15.0.1" -jsonrpsee = "0.23.2" # local deps clover-traits = { path = "./modules/traits", default-features = false } @@ -56,134 +58,149 @@ evm-accounts = { path = "./modules/evm-accounts", default-features = false } clover-claims = { path = "./modules/claims", default-features = false } clover-primitives = { default-features = false, path = './primitives', version = '0.9.0'} clover-runtime = {path = './runtime', version = '0.9.0' } +clover-babe-consensus-provider = { path = './crates/babe-consensus-data-provider', version = '0.1.0' } clover-rpc = { default-features = false, version = '0.9.0', path = './rpc' } futures = { version = "0.3.9", features = ["compat"] } +schnorrkel = { version = "^0.9", default-features = false, features = [ + "preaudit_deprecated", +] } # EVM deps -evm = { version = "0.41.1", default-features = false } -pallet-evm = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -pallet-ethereum = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fp-consensus = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fp-evm = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fp-storage = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fp-rpc = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-api = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-cli = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-consensus = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-db = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-rpc = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-rpc-core = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } -fc-storage = { git = "https://github.com/polkadot-evm/frontier.git", branch = "stable2407", default-features = false } +evm = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } +pallet-evm = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +pallet-ethereum = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fp-consensus = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fp-evm = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fp-rpc = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-consensus = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-api = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-db = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-rpc = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-storage = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } +fc-rpc-core = { git = "https://github.com/polkadot-evm/frontier.git", branch = "polkadot-v1.2.0", default-features = false } primitive-types = { version = "0.12.0", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-election-provider-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-bags-list = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-bounties = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-contracts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-recovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-election-provider-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-metadata-hash-inspection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-asset-conversion-tx-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-bags-list = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-bounties = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-contracts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-contracts-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +#pallet-contracts-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-elections-phragmen = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-recovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-tips = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-statement = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-sandbox = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-storage = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-transaction-storage-proof = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sp-runtime-interface-proc-macro = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-core = { version = "21.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-sandbox = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-transaction-storage-proof = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-statement-store = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-runtime-interface-proc-macro = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } # Std crates -sc-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-babe-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-epochs = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-consensus-grandpa-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -sc-informant = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-mixnet = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-sync-state-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } -staging-node-inspect = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407", default-features = false } -polkadot-sdk = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "stable2407" } +sc-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-babe-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-epochs = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-consensus-grandpa-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-finality-grandpa-warp-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-informant = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-network-statement = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-sync-state-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-statement-store = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sc-storage-monitor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-rpc-spec-v2 = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +substrate-state-trie-migration-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } + +sc-service-test = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } diff --git a/crates/babe-consensus-data-provider/Cargo.toml b/crates/babe-consensus-data-provider/Cargo.toml new file mode 100644 index 0000000..177fa33 --- /dev/null +++ b/crates/babe-consensus-data-provider/Cargo.toml @@ -0,0 +1,20 @@ + +[package] +name = "clover-babe-consensus-provider" +version = "0.1.0" +edition = '2021' + +[dependencies] +fc-rpc = { workspace = true } +sc-client-api = { workspace = true } +sc-consensus-babe = { workspace = true } +sc-service = { workspace = true } +scale-info = { workspace = true } +schnorrkel = { workspace = true } +sp-api = { workspace = true } +sp-application-crypto = { workspace = true } +sp-consensus-babe = { workspace = true } +sp-core = { workspace = true, features = ["std"] } +sp-inherents = { workspace = true, features = [ "default" ] } +sp-keystore = { workspace = true } +sp-runtime = { workspace = true } diff --git a/crates/babe-consensus-data-provider/src/lib.rs b/crates/babe-consensus-data-provider/src/lib.rs new file mode 100644 index 0000000..5434916 --- /dev/null +++ b/crates/babe-consensus-data-provider/src/lib.rs @@ -0,0 +1,207 @@ +//! Frontier is currently not compatible with the BABE consensus provider. So we need to manually +//! implement the BABE consensus provider for Frontier. This is a temporary solution until Frontier +//! is compatible with the BABE consensus provider. + +#![allow(unused_imports)] +#![allow(missing_docs)] +#![allow(clippy::clone_on_copy)] +use fc_rpc::pending::ConsensusDataProvider; +use sc_client_api::backend::{AuxStore, Backend, StorageProvider}; +use sc_client_api::UsageProvider; +use sc_service::error::Error as ServiceError; +use sc_service::{ + ChainSpec, Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager, +}; +use schnorrkel::PublicKey; +use sp_api::{ApiExt, ApiRef, Core, ProvideRuntimeApi}; +use sp_application_crypto::{AppCrypto, ByteArray}; +use sp_consensus_babe::digests::PreDigest; +use sp_consensus_babe::inherents::BabeInherentData; +use sp_consensus_babe::{ + make_vrf_transcript, AllowedSlots, AuthorityId, AuthorityPair, BabeApi, BabeConfiguration, + Epoch, Randomness, Slot, VrfSignature, +}; +use sp_core::{Encode, H256}; +use sp_inherents::{CreateInherentDataProviders, InherentData, InherentDataProvider}; +use sp_keystore::{Keystore, KeystorePtr}; +use sp_runtime::generic::{Digest, DigestItem}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, One}; +use sp_runtime::TransactionOutcome; +use std::marker::PhantomData; +use std::sync::Arc; + +pub struct BabeConsensusDataProvider { + client: Arc, + keystore: Arc, + _phantom: PhantomData, +} +use sp_consensus_babe::SlotDuration; + +impl BabeConsensusDataProvider +where + B: sp_runtime::traits::Block, + C: AuxStore + ProvideRuntimeApi + UsageProvider, + C::Api: BabeApi, +{ + pub fn new(client: Arc, keystore: Arc) -> Self { + Self { + client, + keystore, + _phantom: Default::default(), + } + } +} + +pub fn make_primary_pre_digest( + authority_index: sp_consensus_babe::AuthorityIndex, + slot: sp_consensus_babe::Slot, + vrf_signature: VrfSignature, +) -> Digest { + let digest_data = sp_consensus_babe::digests::PreDigest::Primary( + sp_consensus_babe::digests::PrimaryPreDigest { + authority_index, + slot, + vrf_signature, + }, + ); + let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); + Digest { logs: vec![log] } +} + +pub fn make_secondary_plain_pre_digest( + authority_index: sp_consensus_babe::AuthorityIndex, + slot: sp_consensus_babe::Slot, +) -> Digest { + let digest_data = sp_consensus_babe::digests::PreDigest::SecondaryPlain( + sp_consensus_babe::digests::SecondaryPlainPreDigest { + authority_index, + slot, + }, + ); + let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); + Digest { logs: vec![log] } +} + +pub fn make_secondary_vrf_pre_digest( + authority_index: sp_consensus_babe::AuthorityIndex, + slot: sp_consensus_babe::Slot, + vrf_signature: VrfSignature, +) -> Digest { + let digest_data = sp_consensus_babe::digests::PreDigest::SecondaryVRF( + sp_consensus_babe::digests::SecondaryVRFPreDigest { + authority_index, + slot, + vrf_signature, + }, + ); + let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); + Digest { logs: vec![log] } +} + +fn make_vrf_signature( + randomness: &Randomness, + slot: Slot, + epoch: u64, + key: sp_consensus_babe::AuthorityId, + keystore: &KeystorePtr, +) -> Option { + let transcript = make_vrf_transcript(randomness, slot, epoch); + let try_sign = Keystore::sr25519_vrf_sign( + &**keystore, + sp_consensus_babe::KEY_TYPE, + key.as_ref(), + &transcript.clone().into_sign_data(), + ); + if let Ok(Some(signature)) = try_sign { + let public = PublicKey::from_bytes(&key.to_raw_vec()).ok()?; + if signature + .output + .0 + .attach_input_hash(&public, transcript.0.clone()) + .is_err() + { + // VRF signature cannot be validated using key and transcript + return None; + } + return Some(signature); + } else { + // VRF key not found in keystore or VRF signing failed + None + } +} + +impl, C: Send + Sync + ProvideRuntimeApi> + ConsensusDataProvider for BabeConsensusDataProvider +where + B: sp_runtime::traits::Block, + C: sp_api::ProvideRuntimeApi, + C::Api: BabeApi, +{ + fn create_digest( + &self, + parent: &B::Header, + data: &InherentData, + ) -> Result { + let best_block_hash: sp_core::H256 = parent.hash(); + let slot = data + .babe_inherent_data() + .expect("Timestamp is always present; qed"); + let runtime_api = self.client.runtime_api(); + let current_epoch: Epoch = runtime_api.current_epoch(best_block_hash).unwrap(); + let allowed_slots = current_epoch.config.allowed_slots.clone(); + let authorities: Vec<_> = current_epoch.authorities.clone(); + let randomness: Randomness = current_epoch.randomness.clone(); + let epoch_index: u64 = current_epoch.epoch_index.clone(); + let public_keys = self + .keystore + .sr25519_public_keys(sp_consensus_babe::KEY_TYPE); + if public_keys.len() > 0 && slot.is_some() { + let validator_public_key: sp_consensus_babe::AuthorityId = public_keys[0].into(); + let maybe_pos = authorities + .iter() + .position(|a| &validator_public_key == &a.0); + if let Some(authority_index) = maybe_pos { + match allowed_slots { + AllowedSlots::PrimaryAndSecondaryPlainSlots => { + return Ok(make_secondary_plain_pre_digest( + authority_index as u32, + slot.unwrap(), + )); + } + AllowedSlots::PrimaryAndSecondaryVRFSlots => { + if let Some(vrf_signature) = make_vrf_signature( + &randomness, + slot.unwrap(), + epoch_index, + validator_public_key, + &self.keystore, + ) { + return Ok(make_secondary_vrf_pre_digest( + authority_index as u32, + slot.unwrap(), + vrf_signature, + )); + } + } + _ => { + if let Some(vrf_signature) = make_vrf_signature( + &randomness, + slot.unwrap(), + epoch_index, + validator_public_key, + &self.keystore, + ) { + return Ok(make_primary_pre_digest( + authority_index as u32, + slot.unwrap(), + vrf_signature, + )); + } + } + } + } + } + + Ok(Default::default()) + } +} diff --git a/modules/claims/src/lib.rs b/modules/claims/src/lib.rs index 8c858db..ce3ed4c 100644 --- a/modules/claims/src/lib.rs +++ b/modules/claims/src/lib.rs @@ -4,16 +4,15 @@ //! Module to process claims from ethereum like addresses(e.g. bsc). #![cfg_attr(not(feature = "std"), no_std)] -use parity_scale_codec::Encode; use frame_support::traits::{Currency, ExistenceRequirement, Get, WithdrawReasons}; use frame_system::ensure_signed; -use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256}; -use sp_runtime::{ - traits::{AccountIdConversion, Saturating}, - transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction}, -}; -use sp_std::prelude::*; +use parity_scale_codec::Encode; +use sp_io::crypto::secp256k1_ecdsa_recover; +use sp_io::hashing::keccak_256; +use sp_runtime::traits::{AccountIdConversion, Saturating}; +use sp_runtime::transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction}; use sp_std::convert::TryInto; +use sp_std::prelude::*; pub use pallet::*; pub mod ethereum_address; @@ -29,576 +28,588 @@ pub use ethereum_address::*; #[frame_support::pallet] pub mod pallet { - use super::*; - use frame_support::{pallet_prelude::{OptionQuery, *}, PalletId}; - use frame_system::pallet_prelude::*; - use hex_literal::hex; - - pub type BalanceOf = - <::Currency as Currency<::AccountId>>::Balance; - - #[pallet::config] - pub trait Config: frame_system::Config { - type ModuleId: Get; - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - type Currency: Currency; - type Prefix: Get<&'static [u8]>; - } - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::hooks] - impl Hooks> for Pallet { - fn on_runtime_upgrade() -> Weight { - if Self::pallet_storage_version() >= 2 { - sp_runtime::print("claims storage version is latest"); - return Weight::from_parts(0, 0); - } - - sp_runtime::print("clover claims runtime upgrade"); - // copy existing claims to elastic claims storage - for (k, v) in Claims::::iter() { - if !ElasticClaims::::contains_key(BridgeNetworks::BSC, k) { - if let Some(v) = v { - ElasticClaims::::insert(BridgeNetworks::BSC, k, v); - } - } else { - log::error!("key: {:?} already exists in elastic claims!", k); + use super::*; + use frame_support::pallet_prelude::{OptionQuery, *}; + use frame_support::PalletId; + use frame_system::pallet_prelude::*; + use hex_literal::hex; + + pub type BalanceOf = + <::Currency as Currency<::AccountId>>::Balance; + + #[pallet::config] + pub trait Config: frame_system::Config { + type ModuleId: Get; + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type Currency: Currency; + type Prefix: Get<&'static [u8]>; + } + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::hooks] + impl Hooks> for Pallet { + fn on_runtime_upgrade() -> Weight { + if Self::pallet_storage_version() >= 2 { + sp_runtime::print("claims storage version is latest"); + return Weight::from_parts(0, 0); + } + + sp_runtime::print("clover claims runtime upgrade"); + // copy existing claims to elastic claims storage + for (k, v) in Claims::::iter() { + if !ElasticClaims::::contains_key(BridgeNetworks::BSC, k) { + if let Some(v) = v { + ElasticClaims::::insert(BridgeNetworks::BSC, k, v); + } + } else { + log::error!("key: {:?} already exists in elastic claims!", k); + } + } + + let limit = Self::claim_limit(); + if limit > 0u32.into() { + ElasticClaimLimits::::insert(BridgeNetworks::BSC, limit); + } + + // copy bridge accounts into elastic storage + if let Some(account) = Self::bridge_account() { + if !ElasticBridgeAccounts::::contains_key(BridgeNetworks::BSC) { + ElasticBridgeAccounts::::insert(BridgeNetworks::BSC, account.some()); + } + } + + // copy fees configuration to elastic fees storage + let mint_fee = Self::mint_fee().unwrap_or(0u32.into()); + let burn_fee = Self::burn_fee().unwrap_or(0u32.into()); + if mint_fee > 0u32.into() || burn_fee > 0u32.into() { + if !BridgeFees::::contains_key(BridgeNetworks::BSC) { + BridgeFees::::insert(BridgeNetworks::BSC, (mint_fee, burn_fee)); + } + } + + MintFee::::kill(); + BurnFee::::kill(); + let _ = Claims::::clear(100, None); + BridgeAccount::::kill(); + + PalletStorageVersion::::put(2); + + Weight::from_parts(1_253_760_000, 0) } - } + } - let limit = Self::claim_limit(); - if limit > 0u32.into() { - ElasticClaimLimits::::insert(BridgeNetworks::BSC, limit); - } + #[pallet::error] + pub enum Error { + NoPermission, + AlreadyMinted, + AlreadyClaimed, + ClaimLimitExceeded, + TxNotMinted, + InvalidEthereumSignature, + SignatureNotMatch, + InvalidAmount, + } - // copy bridge accounts into elastic storage - if let Some(account) = Self::bridge_account() { - if !ElasticBridgeAccounts::::contains_key(BridgeNetworks::BSC) { - ElasticBridgeAccounts::::insert(BridgeNetworks::BSC, account.some()); + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// Bridge Account Changed + BridgeAccountChanged(T::AccountId), + /// Mint claims successfully + MintSuccess(EthereumTxHash, EthereumAddress, BalanceOf), + /// claim limit updated + ClaimLimitUpdated(BalanceOf), + /// CLV claimed + Claimed(T::AccountId, EthereumAddress, BalanceOf), + // burned some balance and will bridge to bsc + Burned(T::AccountId, EthereumAddress, BalanceOf), + + MintFeeUpdated(BalanceOf), + BurnFeeUpdated(BalanceOf), + + /// Elastic bridge account changed + ElasticBridgeAccountChanged(BridgeNetworks, T::AccountId), + /// Elastic mint claim successfully + ElasticMintSuccess( + BridgeNetworks, + EthereumTxHash, + EthereumAddress, + BalanceOf, + ), + /// Elastic claim limit updated for network + ElasticClaimLimitUpdated(BridgeNetworks, BalanceOf), + /// CLV claimed for network + ElasticClaimed(BridgeNetworks, T::AccountId, EthereumAddress, BalanceOf), + /// burned some balance and will bridge to specified network + ElasticBurned(BridgeNetworks, T::AccountId, EthereumAddress, BalanceOf), + + /// elastic fee updated event, (network, mint fee, burn fee) + ElasticFeeUpdated(BridgeNetworks, BalanceOf, BalanceOf), + } + + /// Supported bridge networks By Clover + #[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, MaxEncodedLen, TypeInfo)] + pub enum BridgeNetworks { + /// Binance Smart Chain + BSC = 0, + /// Ethereum + Ethereum = 1, + /// Clover-ParaChain + CloverPara = 2, + } + + #[pallet::storage] + #[pallet::getter(fn bridge_account)] + pub(super) type BridgeAccount = StorageValue<_, Option, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn claim_limit)] + pub(super) type ClaimLimit = StorageValue<_, BalanceOf, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn claims)] + pub(super) type Claims = StorageMap< + _, + Blake2_128Concat, + EthereumTxHash, + Option<(EthereumAddress, BalanceOf, bool)>, + ValueQuery, + >; + + #[pallet::storage] + #[pallet::getter(fn mint_fee)] + pub(super) type MintFee = StorageValue<_, BalanceOf, OptionQuery>; + + #[pallet::storage] + #[pallet::getter(fn burn_fee)] + pub(super) type BurnFee = StorageValue<_, BalanceOf, OptionQuery>; + + /// bridge account to mint bridge transactions + /// it's a good practice to configure a separate bridge account for one bridge network + #[pallet::storage] + #[pallet::getter(fn elastic_bridge_accounts)] + pub(super) type ElasticBridgeAccounts = + StorageMap<_, Blake2_128Concat, BridgeNetworks, Option, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn elastic_claim_limits)] + pub(super) type ElasticClaimLimits = + StorageMap<_, Blake2_128Concat, BridgeNetworks, BalanceOf, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn bridge_fees)] + pub(super) type BridgeFees = StorageMap< + _, + Blake2_128Concat, + BridgeNetworks, + (BalanceOf, BalanceOf), // Configuration for MintFee and BurnFee + ValueQuery, + >; + + /// claims that supports multiple ethereum compatible chains + #[pallet::storage] + #[pallet::getter(fn elastic_claims)] + pub type ElasticClaims = StorageDoubleMap< + _, + Blake2_128Concat, + BridgeNetworks, + Blake2_128Concat, + EthereumTxHash, + (EthereumAddress, BalanceOf, bool), + >; + + pub struct VersionDefault; + impl Get for VersionDefault { + fn get() -> u32 { + 1 } - } - - // copy fees configuration to elastic fees storage - let mint_fee = Self::mint_fee().unwrap_or(0u32.into()); - let burn_fee = Self::burn_fee().unwrap_or(0u32.into()); - if mint_fee > 0u32.into() || burn_fee > 0u32.into() { - if !BridgeFees::::contains_key(BridgeNetworks::BSC) { - BridgeFees::::insert(BridgeNetworks::BSC, (mint_fee, burn_fee)); + } + + #[pallet::storage] + #[pallet::getter(fn pallet_storage_version)] + pub type PalletStorageVersion = StorageValue<_, u32, ValueQuery, VersionDefault>; + + #[pallet::call] + impl Pallet { + /// update the bridge account for the target network + /// TODO: proper weights + #[pallet::call_index(0)] + #[pallet::weight(T::DbWeight::get().writes(2))] + pub fn set_bridge_account_elastic( + origin: OriginFor, + network: BridgeNetworks, + to: T::AccountId, + ) -> DispatchResultWithPostInfo { + ensure_root(origin)?; + + ElasticBridgeAccounts::::insert(network, to.clone().some()); + + Self::deposit_event(Event::ElasticBridgeAccountChanged(network, to)); + + Ok(().into()) } - } - MintFee::::kill(); - BurnFee::::kill(); - let _ = Claims::::clear(100, None); - BridgeAccount::::kill(); + /// TODO: proper weights + #[pallet::call_index(1)] + #[pallet::weight(T::DbWeight::get().writes(2))] + pub fn set_claim_limit_elastic( + origin: OriginFor, + network: BridgeNetworks, + limit: BalanceOf, + ) -> DispatchResultWithPostInfo { + ensure_root(origin)?; - PalletStorageVersion::::put(2); + ElasticClaimLimits::::insert(network, limit); - Weight::from_parts(1_253_760_000, 0) - } - } - - #[pallet::error] - pub enum Error { - NoPermission, - AlreadyMinted, - AlreadyClaimed, - ClaimLimitExceeded, - TxNotMinted, - InvalidEthereumSignature, - SignatureNotMatch, - InvalidAmount, - } - - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// Bridge Account Changed - BridgeAccountChanged(T::AccountId), - /// Mint claims successfully - MintSuccess(EthereumTxHash, EthereumAddress, BalanceOf), - /// claim limit updated - ClaimLimitUpdated(BalanceOf), - /// CLV claimed - Claimed(T::AccountId, EthereumAddress, BalanceOf), - // burned some balance and will bridge to bsc - Burned(T::AccountId, EthereumAddress, BalanceOf), - - MintFeeUpdated(BalanceOf), - BurnFeeUpdated(BalanceOf), - - /// Elastic bridge account changed - ElasticBridgeAccountChanged(BridgeNetworks, T::AccountId), - /// Elastic mint claim successfully - ElasticMintSuccess( - BridgeNetworks, - EthereumTxHash, - EthereumAddress, - BalanceOf, - ), - /// Elastic claim limit updated for network - ElasticClaimLimitUpdated(BridgeNetworks, BalanceOf), - /// CLV claimed for network - ElasticClaimed(BridgeNetworks, T::AccountId, EthereumAddress, BalanceOf), - /// burned some balance and will bridge to specified network - ElasticBurned(BridgeNetworks, T::AccountId, EthereumAddress, BalanceOf), - - /// elastic fee updated event, (network, mint fee, burn fee) - ElasticFeeUpdated(BridgeNetworks, BalanceOf, BalanceOf), - } - - /// Supported bridge networks By Clover - #[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, MaxEncodedLen, TypeInfo)] - pub enum BridgeNetworks { - /// Binance Smart Chain - BSC = 0, - /// Ethereum - Ethereum = 1, - /// Clover-ParaChain - CloverPara = 2, - } - - #[pallet::storage] - #[pallet::getter(fn bridge_account)] - pub(super) type BridgeAccount = StorageValue<_, Option, ValueQuery>; - - #[pallet::storage] - #[pallet::getter(fn claim_limit)] - pub(super) type ClaimLimit = StorageValue<_, BalanceOf, ValueQuery>; - - #[pallet::storage] - #[pallet::getter(fn claims)] - pub(super) type Claims = StorageMap< - _, - Blake2_128Concat, - EthereumTxHash, - Option<(EthereumAddress, BalanceOf, bool)>, - ValueQuery, - >; - - #[pallet::storage] - #[pallet::getter(fn mint_fee)] - pub(super) type MintFee = StorageValue<_, BalanceOf, OptionQuery>; - - #[pallet::storage] - #[pallet::getter(fn burn_fee)] - pub(super) type BurnFee = StorageValue<_, BalanceOf, OptionQuery>; - - /// bridge account to mint bridge transactions - /// it's a good practice to configure a separate bridge account for one bridge network - #[pallet::storage] - #[pallet::getter(fn elastic_bridge_accounts)] - pub(super) type ElasticBridgeAccounts = - StorageMap<_, Blake2_128Concat, BridgeNetworks, Option, ValueQuery>; - - #[pallet::storage] - #[pallet::getter(fn elastic_claim_limits)] - pub(super) type ElasticClaimLimits = - StorageMap<_, Blake2_128Concat, BridgeNetworks, BalanceOf, ValueQuery>; - - #[pallet::storage] - #[pallet::getter(fn bridge_fees)] - pub(super) type BridgeFees = StorageMap< - _, - Blake2_128Concat, - BridgeNetworks, - (BalanceOf, BalanceOf), // Configuration for MintFee and BurnFee - ValueQuery, - >; - - /// claims that supports multiple ethereum compatible chains - #[pallet::storage] - #[pallet::getter(fn elastic_claims)] - pub type ElasticClaims = StorageDoubleMap< - _, - Blake2_128Concat, - BridgeNetworks, - Blake2_128Concat, - EthereumTxHash, - (EthereumAddress, BalanceOf, bool), - >; - - pub struct VersionDefault; - impl Get for VersionDefault { - fn get() -> u32 { - 1 - } - } - - #[pallet::storage] - #[pallet::getter(fn pallet_storage_version)] - pub type PalletStorageVersion = StorageValue<_, u32, ValueQuery, VersionDefault>; - - #[pallet::call] - impl Pallet { - /// update the bridge account for the target network - /// TODO: proper weights - #[pallet::call_index(0)] - #[pallet::weight(T::DbWeight::get().writes(2))] - pub fn set_bridge_account_elastic( - origin: OriginFor, - network: BridgeNetworks, - to: T::AccountId, - ) -> DispatchResultWithPostInfo { - ensure_root(origin)?; - - ElasticBridgeAccounts::::insert(network, to.clone().some()); - - Self::deposit_event(Event::ElasticBridgeAccountChanged(network, to)); - - Ok(().into()) - } + Self::deposit_event(Event::ElasticClaimLimitUpdated(network, limit)); + Ok(().into()) + } - /// TODO: proper weights - #[pallet::call_index(1)] - #[pallet::weight(T::DbWeight::get().writes(2))] - pub fn set_claim_limit_elastic( - origin: OriginFor, - network: BridgeNetworks, - limit: BalanceOf, - ) -> DispatchResultWithPostInfo { - ensure_root(origin)?; + /// TODO: proper weights + #[pallet::call_index(2)] + #[pallet::weight(T::DbWeight::get().writes(1))] + pub fn set_bridge_fee_elastic( + origin: OriginFor, + network: BridgeNetworks, + mint_fee: BalanceOf, + burn_fee: BalanceOf, + ) -> DispatchResultWithPostInfo { + ensure_root(origin)?; - ElasticClaimLimits::::insert(network, limit); + BridgeFees::::insert(network, (mint_fee.clone(), burn_fee.clone())); - Self::deposit_event(Event::ElasticClaimLimitUpdated(network, limit)); - Ok(().into()) - } + Self::deposit_event(Event::ElasticFeeUpdated(network, mint_fee, burn_fee)); - /// TODO: proper weights - #[pallet::call_index(2)] - #[pallet::weight(T::DbWeight::get().writes(1))] - pub fn set_bridge_fee_elastic( - origin: OriginFor, - network: BridgeNetworks, - mint_fee: BalanceOf, - burn_fee: BalanceOf, - ) -> DispatchResultWithPostInfo { - ensure_root(origin)?; + Ok(().into()) + } - BridgeFees::::insert(network, (mint_fee.clone(), burn_fee.clone())); + /// TODO: proper weights + #[pallet::call_index(3)] + #[pallet::weight(T::DbWeight::get().writes(3))] + pub fn mint_claim_elastic( + origin: OriginFor, + network: BridgeNetworks, + tx: EthereumTxHash, + who: EthereumAddress, + value: BalanceOf, + ) -> DispatchResultWithPostInfo { + let signer = ensure_signed(origin)?; + + let claim_amount = Self::do_mint_claim(signer, network, tx, who, value)?; + + Self::deposit_event(Event::ElasticMintSuccess(network, tx, who, claim_amount)); + Ok(().into()) + } - Self::deposit_event(Event::ElasticFeeUpdated(network, mint_fee, burn_fee)); + /// TODO: proper weights + #[pallet::call_index(4)] + #[pallet::weight(0)] + pub fn claim_elastic( + origin: OriginFor, + network: BridgeNetworks, + dest: T::AccountId, + tx: EthereumTxHash, + sig: EcdsaSignature, + ) -> DispatchResultWithPostInfo { + ensure_none(origin)?; + let (signer, amount) = Self::do_claim(network, dest.clone(), tx, sig)?; + + Self::deposit_event(Event::ElasticClaimed(network, dest, signer, amount)); + + Ok(().into()) + } - Ok(().into()) - } + /// TODO: proper weights + #[pallet::call_index(5)] + #[pallet::weight(T::DbWeight::get().reads_writes(2, 3))] + pub fn burn_elastic( + origin: OriginFor, + network: BridgeNetworks, + dest: EthereumAddress, + amount: BalanceOf, + ) -> DispatchResultWithPostInfo { + let who = ensure_signed(origin)?; + let burn_amount = Self::do_burn(who.clone(), network, amount)?; + Self::deposit_event(Event::ElasticBurned(network, who, dest, burn_amount)); + Ok(().into()) + } - /// TODO: proper weights - #[pallet::call_index(3)] - #[pallet::weight(T::DbWeight::get().writes(3))] - pub fn mint_claim_elastic( - origin: OriginFor, - network: BridgeNetworks, - tx: EthereumTxHash, - who: EthereumAddress, - value: BalanceOf, - ) -> DispatchResultWithPostInfo { - let signer = ensure_signed(origin)?; - - let claim_amount = Self::do_mint_claim(signer, network, tx, who, value)?; - - Self::deposit_event(Event::ElasticMintSuccess(network, tx, who, claim_amount)); - Ok(().into()) + /// bridge between two clover like chains + #[pallet::call_index(6)] + #[pallet::weight(T::DbWeight::get().writes(3))] + pub fn mint_and_send_claim_elastic( + origin: OriginFor, + network: BridgeNetworks, + tx: EthereumTxHash, + who: T::AccountId, + value: BalanceOf, + ) -> DispatchResultWithPostInfo { + let signer = ensure_signed(origin)?; + + let claim_amount = Self::do_mint_and_send_claim(signer, network, tx, who, value)?; + + let zero_address = EthereumAddress(hex!["0000000000000000000000000000000000000000"]); + Self::deposit_event(Event::ElasticMintSuccess( + network, + tx, + zero_address, + claim_amount, + )); + Ok(().into()) + } } - /// TODO: proper weights - #[pallet::call_index(4)] - #[pallet::weight(0)] - pub fn claim_elastic( - origin: OriginFor, - network: BridgeNetworks, - dest: T::AccountId, - tx: EthereumTxHash, - sig: EcdsaSignature, - ) -> DispatchResultWithPostInfo { - ensure_none(origin)?; - let (signer, amount) = Self::do_claim(network, dest.clone(), tx, sig)?; - - Self::deposit_event(Event::ElasticClaimed(network, dest, signer, amount)); - - Ok(().into()) + #[repr(u8)] + pub enum ValidityError { + /// The Ethereum signature is invalid. + InvalidEthereumSignature = 0, + /// The signer has no claim. + SignerHasNoClaim = 1, + /// No permission to execute the call. + SignatureNotMatch = 2, + /// This tx already be claimed. + AlreadyClaimed = 3, } - /// TODO: proper weights - #[pallet::call_index(5)] - #[pallet::weight(T::DbWeight::get().reads_writes(2, 3))] - pub fn burn_elastic( - origin: OriginFor, - network: BridgeNetworks, - dest: EthereumAddress, - amount: BalanceOf, - ) -> DispatchResultWithPostInfo { - let who = ensure_signed(origin)?; - let burn_amount = Self::do_burn(who.clone(), network, amount)?; - Self::deposit_event(Event::ElasticBurned(network, who, dest, burn_amount)); - Ok(().into()) + impl From for u8 { + fn from(err: ValidityError) -> Self { + err as u8 + } } - /// bridge between two clover like chains - #[pallet::call_index(6)] - #[pallet::weight(T::DbWeight::get().writes(3))] - pub fn mint_and_send_claim_elastic( - origin: OriginFor, - network: BridgeNetworks, - tx: EthereumTxHash, - who: T::AccountId, - value: BalanceOf, - ) -> DispatchResultWithPostInfo { - let signer = ensure_signed(origin)?; - - let claim_amount = Self::do_mint_and_send_claim(signer, network, tx, who, value)?; - - let zero_address = EthereumAddress(hex!["0000000000000000000000000000000000000000"]); - Self::deposit_event(Event::ElasticMintSuccess(network, tx, zero_address, claim_amount)); - Ok(().into()) - } - } - - #[repr(u8)] - pub enum ValidityError { - /// The Ethereum signature is invalid. - InvalidEthereumSignature = 0, - /// The signer has no claim. - SignerHasNoClaim = 1, - /// No permission to execute the call. - SignatureNotMatch = 2, - /// This tx already be claimed. - AlreadyClaimed = 3, - } - - impl From for u8 { - fn from(err: ValidityError) -> Self { - err as u8 - } - } - - #[pallet::validate_unsigned] - impl ValidateUnsigned for Pallet { - type Call = Call; - - fn validate_unsigned(_source: TransactionSource, call: &Self::Call) -> TransactionValidity { - if let Call::claim_elastic{ network, dest: account, tx, sig } = call { - Self::do_validate(network, account, tx, sig) - } else { - InvalidTransaction::Call.into() - } + #[pallet::validate_unsigned] + impl ValidateUnsigned for Pallet { + type Call = Call; + + fn validate_unsigned(_source: TransactionSource, call: &Self::Call) -> TransactionValidity { + if let Call::claim_elastic { + network, + dest: account, + tx, + sig, + } = call + { + Self::do_validate(network, account, tx, sig) + } else { + InvalidTransaction::Call.into() + } + } } - } - impl Pallet { - /// the account to store the mint/claim fees - pub fn account_id() -> T::AccountId { - T::ModuleId::get().into_account_truncating() - } + impl Pallet { + /// the account to store the mint/claim fees + pub fn account_id() -> T::AccountId { + T::ModuleId::get().into_account_truncating() + } - fn do_validate( - network: &BridgeNetworks, - account: &T::AccountId, - tx: &EthereumTxHash, - sig: &EcdsaSignature, - ) -> TransactionValidity { - const PRIORITY: u64 = 100; - - let data = account.using_encoded(to_ascii_hex); - let tx_data = tx.using_encoded(to_ascii_hex); - let signer = Self::eth_recover(&sig, &data, &tx_data).ok_or(InvalidTransaction::Custom( - ValidityError::InvalidEthereumSignature.into(), - ))?; - - let e = InvalidTransaction::Custom(ValidityError::SignerHasNoClaim.into()); - let tx_info = Self::elastic_claims(network, tx); - ensure!(tx_info.is_some(), e); - - let (address, _, claimed) = tx_info.unwrap(); - let e = InvalidTransaction::Custom(ValidityError::SignatureNotMatch.into()); - ensure!(address == signer, e); - - let e = InvalidTransaction::Custom(ValidityError::AlreadyClaimed.into()); - ensure!(!claimed, e); - - Ok(ValidTransaction { - priority: PRIORITY, - requires: vec![], - provides: vec![("claims", signer).encode()], - longevity: TransactionLongevity::max_value(), - propagate: true, - }) - } + fn do_validate( + network: &BridgeNetworks, + account: &T::AccountId, + tx: &EthereumTxHash, + sig: &EcdsaSignature, + ) -> TransactionValidity { + const PRIORITY: u64 = 100; + + let data = account.using_encoded(to_ascii_hex); + let tx_data = tx.using_encoded(to_ascii_hex); + let signer = Self::eth_recover(&sig, &data, &tx_data).ok_or( + InvalidTransaction::Custom(ValidityError::InvalidEthereumSignature.into()), + )?; + + let e = InvalidTransaction::Custom(ValidityError::SignerHasNoClaim.into()); + let tx_info = Self::elastic_claims(network, tx); + ensure!(tx_info.is_some(), e); + + let (address, _, claimed) = tx_info.unwrap(); + let e = InvalidTransaction::Custom(ValidityError::SignatureNotMatch.into()); + ensure!(address == signer, e); + + let e = InvalidTransaction::Custom(ValidityError::AlreadyClaimed.into()); + ensure!(!claimed, e); + + Ok(ValidTransaction { + priority: PRIORITY, + requires: vec![], + provides: vec![("claims", signer).encode()], + longevity: TransactionLongevity::max_value(), + propagate: true, + }) + } - fn do_mint_claim( - from: T::AccountId, - network: BridgeNetworks, - tx: EthereumTxHash, - who: EthereumAddress, - value: BalanceOf, - ) -> Result, DispatchError> { - let bridge_account = Self::elastic_bridge_accounts(network); - - // mint must be orginated from bridge account - ensure!( - Some(&from) == bridge_account.as_ref(), - Error::::NoPermission - ); - // Check if this tx already be mint or be claimed - ensure!( - !ElasticClaims::::contains_key(&network, &tx), - Error::::AlreadyMinted - ); - // Check claim limit - ensure!( - Self::elastic_claim_limits(&network) >= value, - Error::::ClaimLimitExceeded - ); - let mut claim_amount = value.clone(); - let mut mint_fee = 0u32.into(); - let (fee, _) = Self::bridge_fees(&network); - if fee > 0u32.into() { - ensure!(value > fee, Error::::InvalidAmount); - claim_amount = value.saturating_sub(fee); - mint_fee = fee; - } - // insert into claims - ElasticClaims::::insert( - network.clone(), - tx.clone(), - (who.clone(), claim_amount.clone(), false), - ); - // update claim limit - ElasticClaimLimits::::mutate(&network, |l| *l = l.saturating_sub(claim_amount)); - if mint_fee > 0u32.into() { - let _ = T::Currency::deposit_creating(&Self::account_id(), mint_fee); - } - Ok(claim_amount) - } - - fn do_claim( - network: BridgeNetworks, - dest: T::AccountId, - tx: EthereumTxHash, - sig: EcdsaSignature, - ) -> Result<(EthereumAddress, BalanceOf), DispatchError> { - let tx_info = Self::elastic_claims(network, &tx); - ensure!(tx_info.is_some(), Error::::TxNotMinted); - let (address, amount, claimed) = tx_info.unwrap(); - - ensure!(!claimed, Error::::AlreadyClaimed); - - let data = dest.using_encoded(to_ascii_hex); - let tx_data = tx.using_encoded(to_ascii_hex); - - let signer = - Self::eth_recover(&sig, &data, &tx_data).ok_or(Error::::InvalidEthereumSignature)?; - - ensure!(address == signer, Error::::SignatureNotMatch); - - let _ = T::Currency::deposit_creating(&dest, amount); - ElasticClaims::::insert(network, tx, (address, amount, true)); - Ok((signer, amount)) - } - - fn do_burn( - who: T::AccountId, - network: BridgeNetworks, - amount: BalanceOf, - ) -> Result, DispatchError> { - let mut burn_amount = amount.clone(); - let mut burn_fee = 0u32.into(); - let (_, fee) = Self::bridge_fees(&network); - if fee > 0u32.into() { - ensure!(amount > fee, Error::::InvalidAmount); - burn_amount = amount.saturating_sub(fee); - burn_fee = fee; - } - - let _ = T::Currency::withdraw( - &who, - amount, - WithdrawReasons::TRANSFER, - ExistenceRequirement::KeepAlive, - )?; - if burn_fee > 0u32.into() { - let _ = T::Currency::deposit_creating(&Self::account_id(), burn_fee); - } - Ok(burn_amount) - } + fn do_mint_claim( + from: T::AccountId, + network: BridgeNetworks, + tx: EthereumTxHash, + who: EthereumAddress, + value: BalanceOf, + ) -> Result, DispatchError> { + let bridge_account = Self::elastic_bridge_accounts(network); + + // mint must be orginated from bridge account + ensure!( + Some(&from) == bridge_account.as_ref(), + Error::::NoPermission + ); + // Check if this tx already be mint or be claimed + ensure!( + !ElasticClaims::::contains_key(&network, &tx), + Error::::AlreadyMinted + ); + // Check claim limit + ensure!( + Self::elastic_claim_limits(&network) >= value, + Error::::ClaimLimitExceeded + ); + let mut claim_amount = value.clone(); + let mut mint_fee = 0u32.into(); + let (fee, _) = Self::bridge_fees(&network); + if fee > 0u32.into() { + ensure!(value > fee, Error::::InvalidAmount); + claim_amount = value.saturating_sub(fee); + mint_fee = fee; + } + // insert into claims + ElasticClaims::::insert( + network.clone(), + tx.clone(), + (who.clone(), claim_amount.clone(), false), + ); + // update claim limit + ElasticClaimLimits::::mutate(&network, |l| *l = l.saturating_sub(claim_amount)); + if mint_fee > 0u32.into() { + let _ = T::Currency::deposit_creating(&Self::account_id(), mint_fee); + } + Ok(claim_amount) + } - fn do_mint_and_send_claim( - from: T::AccountId, - network: BridgeNetworks, - tx: EthereumTxHash, - dest: T::AccountId, - value: BalanceOf, - ) -> Result, DispatchError> { - let bridge_account = Self::elastic_bridge_accounts(network); - let zero_address = EthereumAddress(hex!["0000000000000000000000000000000000000000"]); - - // mint must be orginated from bridge account - ensure!( - Some(&from) == bridge_account.as_ref(), - Error::::NoPermission - ); - // Check if this tx already be mint or be claimed - ensure!( - !ElasticClaims::::contains_key(&network, &tx), - Error::::AlreadyMinted - ); - // Check claim limit - ensure!( - Self::elastic_claim_limits(&network) >= value, - Error::::ClaimLimitExceeded - ); - let mut claim_amount = value.clone(); - let mut mint_fee = 0u32.into(); - let (fee, _) = Self::bridge_fees(&network); - if fee > 0u32.into() { - ensure!(value > fee, Error::::InvalidAmount); - claim_amount = value.saturating_sub(fee); - mint_fee = fee; - } - - T::Currency::deposit_creating(&dest, claim_amount); - // insert into claims, mark it as claimed - ElasticClaims::::insert( - network.clone(), - tx.clone(), - (zero_address, claim_amount.clone(), true), - ); - // update claim limit - ElasticClaimLimits::::mutate(&network, |l| *l = l.saturating_sub(claim_amount)); - if mint_fee > 0u32.into() { - T::Currency::deposit_creating(&Self::account_id(), mint_fee); - } - Ok(claim_amount) - } + fn do_claim( + network: BridgeNetworks, + dest: T::AccountId, + tx: EthereumTxHash, + sig: EcdsaSignature, + ) -> Result<(EthereumAddress, BalanceOf), DispatchError> { + let tx_info = Self::elastic_claims(network, &tx); + ensure!(tx_info.is_some(), Error::::TxNotMinted); + let (address, amount, claimed) = tx_info.unwrap(); - // Constructs the message that Ethereum RPC's `personal_sign` and `eth_sign` would sign. - fn ethereum_signable_message(what: &[u8], extra: &[u8]) -> Vec { - let prefix = T::Prefix::get(); - let mut l = prefix.len() + what.len() + extra.len(); - let mut rev = Vec::new(); - while l > 0 { - rev.push(b'0' + (l % 10) as u8); - l /= 10; - } - let mut v = b"\x19Ethereum Signed Message:\n".to_vec(); - v.extend(rev.into_iter().rev()); - v.extend_from_slice(&prefix[..]); - v.extend_from_slice(what); - v.extend_from_slice(extra); - v - } + ensure!(!claimed, Error::::AlreadyClaimed); - // Attempts to recover the Ethereum address from a message signature signed by using - // the Ethereum RPC's `personal_sign` and `eth_sign`. - fn eth_recover(s: &EcdsaSignature, what: &[u8], extra: &[u8]) -> Option { - let msg = keccak_256(&Self::ethereum_signable_message(what, extra)); - let mut res = EthereumAddress::default(); - res - .0 - .copy_from_slice(&keccak_256(&secp256k1_ecdsa_recover(&s.0, &msg).ok()?[..])[12..]); - Some(res) + let data = dest.using_encoded(to_ascii_hex); + let tx_data = tx.using_encoded(to_ascii_hex); + + let signer = Self::eth_recover(&sig, &data, &tx_data) + .ok_or(Error::::InvalidEthereumSignature)?; + + ensure!(address == signer, Error::::SignatureNotMatch); + + let _ = T::Currency::deposit_creating(&dest, amount); + ElasticClaims::::insert(network, tx, (address, amount, true)); + Ok((signer, amount)) + } + + fn do_burn( + who: T::AccountId, + network: BridgeNetworks, + amount: BalanceOf, + ) -> Result, DispatchError> { + let mut burn_amount = amount.clone(); + let mut burn_fee = 0u32.into(); + let (_, fee) = Self::bridge_fees(&network); + if fee > 0u32.into() { + ensure!(amount > fee, Error::::InvalidAmount); + burn_amount = amount.saturating_sub(fee); + burn_fee = fee; + } + + let _ = T::Currency::withdraw( + &who, + amount, + WithdrawReasons::TRANSFER, + ExistenceRequirement::KeepAlive, + )?; + if burn_fee > 0u32.into() { + let _ = T::Currency::deposit_creating(&Self::account_id(), burn_fee); + } + Ok(burn_amount) + } + + fn do_mint_and_send_claim( + from: T::AccountId, + network: BridgeNetworks, + tx: EthereumTxHash, + dest: T::AccountId, + value: BalanceOf, + ) -> Result, DispatchError> { + let bridge_account = Self::elastic_bridge_accounts(network); + let zero_address = EthereumAddress(hex!["0000000000000000000000000000000000000000"]); + + // mint must be orginated from bridge account + ensure!( + Some(&from) == bridge_account.as_ref(), + Error::::NoPermission + ); + // Check if this tx already be mint or be claimed + ensure!( + !ElasticClaims::::contains_key(&network, &tx), + Error::::AlreadyMinted + ); + // Check claim limit + ensure!( + Self::elastic_claim_limits(&network) >= value, + Error::::ClaimLimitExceeded + ); + let mut claim_amount = value.clone(); + let mut mint_fee = 0u32.into(); + let (fee, _) = Self::bridge_fees(&network); + if fee > 0u32.into() { + ensure!(value > fee, Error::::InvalidAmount); + claim_amount = value.saturating_sub(fee); + mint_fee = fee; + } + + let _ = T::Currency::deposit_creating(&dest, claim_amount); + // insert into claims, mark it as claimed + ElasticClaims::::insert( + network.clone(), + tx.clone(), + (zero_address, claim_amount.clone(), true), + ); + // update claim limit + ElasticClaimLimits::::mutate(&network, |l| *l = l.saturating_sub(claim_amount)); + if mint_fee > 0u32.into() { + let _ = T::Currency::deposit_creating(&Self::account_id(), mint_fee); + } + + Ok(claim_amount) + } + + // Constructs the message that Ethereum RPC's `personal_sign` and `eth_sign` would sign. + fn ethereum_signable_message(what: &[u8], extra: &[u8]) -> Vec { + let prefix = T::Prefix::get(); + let mut l = prefix.len() + what.len() + extra.len(); + let mut rev = Vec::new(); + while l > 0 { + rev.push(b'0' + (l % 10) as u8); + l /= 10; + } + let mut v = b"\x19Ethereum Signed Message:\n".to_vec(); + v.extend(rev.into_iter().rev()); + v.extend_from_slice(&prefix[..]); + v.extend_from_slice(what); + v.extend_from_slice(extra); + v + } + + // Attempts to recover the Ethereum address from a message signature signed by using + // the Ethereum RPC's `personal_sign` and `eth_sign`. + fn eth_recover(s: &EcdsaSignature, what: &[u8], extra: &[u8]) -> Option { + let msg = keccak_256(&Self::ethereum_signable_message(what, extra)); + let mut res = EthereumAddress::default(); + res.0 + .copy_from_slice(&keccak_256(&secp256k1_ecdsa_recover(&s.0, &msg).ok()?[..])[12..]); + Some(res) + } } - } } diff --git a/modules/evm-accounts/src/lib.rs b/modules/evm-accounts/src/lib.rs index b33d5be..906512a 100644 --- a/modules/evm-accounts/src/lib.rs +++ b/modules/evm-accounts/src/lib.rs @@ -7,23 +7,23 @@ #![cfg_attr(not(feature = "std"), no_std)] -use frame_support::{ensure, - traits::{Currency, HandleLifetime, OnKilledAccount, ReservableCurrency, }, - weights::Weight, -}; +use clover_traits::account::MergeAccount; +use frame_support::ensure; +use frame_support::traits::{Currency, HandleLifetime, OnKilledAccount, ReservableCurrency}; +use frame_support::weights::Weight; use pallet_evm::AddressMapping; -use sp_core::{crypto::AccountId32, ecdsa, H160}; -use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256}; +use sp_core::crypto::AccountId32; +use sp_core::{ecdsa, H160}; +use sp_io::crypto::secp256k1_ecdsa_recover; +use sp_io::hashing::keccak_256; use sp_std::marker::PhantomData; use sp_std::vec::Vec; -use clover_traits::account::MergeAccount; use type_utils::with_transaction_result; -use sp_core::ByteArray; mod default_weight; - + pub trait WeightInfo { - fn claim_account() -> Weight; + fn claim_account() -> Weight; } pub type EcdsaSignature = ecdsa::Signature; @@ -32,221 +32,227 @@ pub type EvmAddress = sp_core::H160; pub use pallet::*; -#[frame_support::pallet] +#[frame_support::pallet] pub mod pallet { - use super::*; - use frame_support::{pallet_prelude::{OptionQuery, ValueQuery, *}, Twox64Concat}; - use frame_system::pallet_prelude::{OriginFor, *}; - use sp_runtime::traits::Zero; - use sp_std::convert::TryInto; - - #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// The Currency for managing Evm account assets. - type Currency: Currency + ReservableCurrency; - - /// Mapping from address to account id. - type AddressMapping: AddressMapping; - - /// Merge free balance from source to dest. - type MergeAccount: MergeAccount; - - /// Handler to kill account in system. - type KillAccount: HandleLifetime; - - /// Weight information for the extrinsics in this module. - type WeightInfo: WeightInfo; - } - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event - { - /// Mapping between Substrate accounts and EVM accounts - /// claim account. \[account_id, evm_address\] - ClaimAccount(T::AccountId, EvmAddress), - } - - /// Error for evm accounts module. - #[pallet::error] - pub enum Error { - /// AccountId has mapped - AccountIdHasMapped, - /// Eth address has mapped - EthAddressHasMapped, - /// Bad signature - BadSignature, - /// Invalid signature - InvalidSignature, - /// Account ref count is not zero - NonZeroRefCount, - /// Account still has active reserved - StillHasActiveReserved, - } - - #[pallet::storage] + use super::*; + use frame_support::pallet_prelude::{OptionQuery, *}; + use frame_support::Twox64Concat; + use frame_system::pallet_prelude::{OriginFor, *}; + use sp_runtime::traits::Zero; + use sp_std::convert::TryInto; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// The Currency for managing Evm account assets. + type Currency: Currency + ReservableCurrency; + + /// Mapping from address to account id. + type AddressMapping: AddressMapping; + + /// Merge free balance from source to dest. + type MergeAccount: MergeAccount; + + /// Handler to kill account in system. + type KillAccount: HandleLifetime; + + /// Weight information for the extrinsics in this module. + type WeightInfo: WeightInfo; + } + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// Mapping between Substrate accounts and EVM accounts + /// claim account. \[account_id, evm_address\] + ClaimAccount(T::AccountId, EvmAddress), + } + + /// Error for evm accounts module. + #[pallet::error] + pub enum Error { + /// AccountId has mapped + AccountIdHasMapped, + /// Eth address has mapped + EthAddressHasMapped, + /// Bad signature + BadSignature, + /// Invalid signature + InvalidSignature, + /// Account ref count is not zero + NonZeroRefCount, + /// Account still has active reserved + StillHasActiveReserved, + } + + #[pallet::storage] #[pallet::getter(fn accounts)] - pub type Accounts = StorageMap< - _, - Twox64Concat, - EvmAddress, - T::AccountId, - OptionQuery, - >; - - /// Claim account mapping between Substrate accounts and EVM accounts. + pub type Accounts = + StorageMap<_, Twox64Concat, EvmAddress, T::AccountId, OptionQuery>; + + /// Claim account mapping between Substrate accounts and EVM accounts. #[pallet::storage] #[pallet::getter(fn evm_addresses)] - pub type EvmAddresses = StorageMap< - _, - Twox64Concat, - T::AccountId, - EvmAddress, - OptionQuery, - >; - - - #[pallet::call] - impl Pallet { - /// Ensure eth_address has not been mapped. - #[pallet::call_index(0)] - #[pallet::weight(T::WeightInfo::claim_account())] - pub fn claim_account(origin: OriginFor, eth_address: EvmAddress, eth_signature: EcdsaSignature) -> DispatchResultWithPostInfo { - let who = ensure_signed(origin)?; - - // ensure account_id and eth_address has not been mapped - ensure!(!EvmAddresses::::contains_key(&who), Error::::AccountIdHasMapped); - ensure!(!Accounts::::contains_key(eth_address), Error::::EthAddressHasMapped); - with_transaction_result(|| { - // recover evm address from signature - let address = Self::eth_recover(ð_signature, &who.using_encoded(to_ascii_hex), &[][..]).ok_or(Error::::BadSignature)?; - ensure!(eth_address == address, Error::::InvalidSignature); - - // check if the evm padded address already exists - let account_id = T::AddressMapping::into_account_id(eth_address); - let mut nonce = Zero::zero(); - if frame_system::Account::::contains_key(&account_id) { - // merge balance from `evm padded address` to `origin` - T::MergeAccount::merge_account(&account_id, &who)?; - - nonce = frame_system::Pallet::::account_nonce(&account_id); - // finally kill the account - let _ = T::KillAccount::killed(&account_id); - } - // make the origin nonce the max between origin amd evm padded address - let origin_nonce = frame_system::Pallet::::account_nonce(&who); - if origin_nonce < nonce { - frame_system::Account::::mutate(&who, |v| { - v.nonce = nonce; - }); - } - - // update accounts - if let Some(evm_addr) = EvmAddresses::::get(&who) { - Accounts::::remove(&evm_addr); - } - Accounts::::insert(eth_address, &who); - EvmAddresses::::insert(&who, eth_address); - - Self::deposit_event(Event::ClaimAccount(who, eth_address)); - Ok(()) - })?; - - Ok(().into()) - } - } + pub type EvmAddresses = + StorageMap<_, Twox64Concat, T::AccountId, EvmAddress, OptionQuery>; + + #[pallet::call] + impl Pallet { + /// Ensure eth_address has not been mapped. + #[pallet::call_index(0)] + #[pallet::weight(T::WeightInfo::claim_account())] + pub fn claim_account( + origin: OriginFor, + eth_address: EvmAddress, + eth_signature: EcdsaSignature, + ) -> DispatchResultWithPostInfo { + let who = ensure_signed(origin)?; + + // ensure account_id and eth_address has not been mapped + ensure!( + !EvmAddresses::::contains_key(&who), + Error::::AccountIdHasMapped + ); + ensure!( + !Accounts::::contains_key(eth_address), + Error::::EthAddressHasMapped + ); + with_transaction_result(|| { + // recover evm address from signature + let address = + Self::eth_recover(ð_signature, &who.using_encoded(to_ascii_hex), &[][..]) + .ok_or(Error::::BadSignature)?; + ensure!(eth_address == address, Error::::InvalidSignature); + + // check if the evm padded address already exists + let account_id = T::AddressMapping::into_account_id(eth_address); + let mut nonce = Zero::zero(); + if frame_system::Account::::contains_key(&account_id) { + // merge balance from `evm padded address` to `origin` + T::MergeAccount::merge_account(&account_id, &who)?; + + nonce = frame_system::Pallet::::account_nonce(&account_id); + // finally kill the account + let _ = T::KillAccount::killed(&account_id); + } + // make the origin nonce the max between origin amd evm padded address + let origin_nonce = frame_system::Pallet::::account_nonce(&who); + if origin_nonce < nonce { + frame_system::Account::::mutate(&who, |v| { + v.nonce = nonce; + }); + } + + // update accounts + if let Some(evm_addr) = EvmAddresses::::get(&who) { + Accounts::::remove(&evm_addr); + } + Accounts::::insert(eth_address, &who); + EvmAddresses::::insert(&who, eth_address); + + Self::deposit_event(Event::ClaimAccount(who, eth_address)); + Ok(()) + })?; + + Ok(().into()) + } + } } impl Pallet { - // Constructs the message that Ethereum RPC's `personal_sign` and `eth_sign` - // would sign. - pub fn ethereum_signable_message(what: &[u8], extra: &[u8]) -> Vec { - let prefix = b"clover evm:"; - let mut l = prefix.len() + what.len() + extra.len(); - let mut rev = Vec::new(); - while l > 0 { - rev.push(b'0' + (l % 10) as u8); - l /= 10; - } - let mut v = b"\x19Ethereum Signed Message:\n".to_vec(); - v.extend(rev.into_iter().rev()); - v.extend_from_slice(&prefix[..]); - v.extend_from_slice(what); - v.extend_from_slice(extra); - v - } - - // Attempts to recover the Ethereum address from a message signature signed by - // using the Ethereum RPC's `personal_sign` and `eth_sign`. - pub fn eth_recover(s: &EcdsaSignature, what: &[u8], extra: &[u8]) -> Option { - let msg = keccak_256(&Self::ethereum_signable_message(what, extra)); - let mut res = EvmAddress::default(); - res.0 - .copy_from_slice(&keccak_256(&secp256k1_ecdsa_recover(s.as_ref(), &msg).ok()?[..])[12..]); - Some(res) - } - - pub fn eth_public(secret: &secp256k1::SecretKey) -> secp256k1::PublicKey { - secp256k1::PublicKey::from_secret_key(secret) - } - pub fn eth_address(secret: &secp256k1::SecretKey) -> EvmAddress { - EvmAddress::from_slice(&keccak_256(&Self::eth_public(secret).serialize()[1..65])[12..]) - } - pub fn eth_sign(secret: &secp256k1::SecretKey, what: &[u8], extra: &[u8]) -> EcdsaSignature { - let msg = keccak_256(&Self::ethereum_signable_message(&to_ascii_hex(what)[..], extra)); - let (sig, recovery_id) = secp256k1::sign(&secp256k1::Message::parse(&msg), secret); - let mut r = [0u8; 65]; - r[0..64].copy_from_slice(&sig.serialize()[..]); - r[64] = recovery_id.serialize(); - EcdsaSignature::from_slice(&r).expect("signature is 65 bytes and no validity check is done; qed") - } - - fn on_killed_account(who: &T::AccountId) { - // Here should be no balance, if there is, it will be burned - if let Some(evm_addr) = Self::evm_addresses(who) { - Accounts::::remove(evm_addr); - EvmAddresses::::remove(who); - } - } + // Constructs the message that Ethereum RPC's `personal_sign` and `eth_sign` + // would sign. + pub fn ethereum_signable_message(what: &[u8], extra: &[u8]) -> Vec { + let prefix = b"clover evm:"; + let mut l = prefix.len() + what.len() + extra.len(); + let mut rev = Vec::new(); + while l > 0 { + rev.push(b'0' + (l % 10) as u8); + l /= 10; + } + let mut v = b"\x19Ethereum Signed Message:\n".to_vec(); + v.extend(rev.into_iter().rev()); + v.extend_from_slice(&prefix[..]); + v.extend_from_slice(what); + v.extend_from_slice(extra); + v + } + + // Attempts to recover the Ethereum address from a message signature signed by + // using the Ethereum RPC's `personal_sign` and `eth_sign`. + pub fn eth_recover(s: &EcdsaSignature, what: &[u8], extra: &[u8]) -> Option { + let msg = keccak_256(&Self::ethereum_signable_message(what, extra)); + let mut res = EvmAddress::default(); + res.0.copy_from_slice( + &keccak_256(&secp256k1_ecdsa_recover(s.as_ref(), &msg).ok()?[..])[12..], + ); + Some(res) + } + + pub fn eth_public(secret: &secp256k1::SecretKey) -> secp256k1::PublicKey { + secp256k1::PublicKey::from_secret_key(secret) + } + pub fn eth_address(secret: &secp256k1::SecretKey) -> EvmAddress { + EvmAddress::from_slice(&keccak_256(&Self::eth_public(secret).serialize()[1..65])[12..]) + } + pub fn eth_sign(secret: &secp256k1::SecretKey, what: &[u8], extra: &[u8]) -> EcdsaSignature { + let msg = keccak_256(&Self::ethereum_signable_message( + &to_ascii_hex(what)[..], + extra, + )); + let (sig, recovery_id) = secp256k1::sign(&secp256k1::Message::parse(&msg), secret); + let mut r = [0u8; 65]; + r[0..64].copy_from_slice(&sig.serialize()[..]); + r[64] = recovery_id.serialize(); + EcdsaSignature::from_slice(&r) + .expect("signature is 65 bytes and no validity check is done; qed") + } + + fn on_killed_account(who: &T::AccountId) { + // Here should be no balance, if there is, it will be burned + if let Some(evm_addr) = Self::evm_addresses(who) { + Accounts::::remove(evm_addr); + EvmAddresses::::remove(who); + } + } } pub struct EvmAddressMapping(sp_std::marker::PhantomData); impl AddressMapping for EvmAddressMapping where - T::AccountId: From + Into, + T::AccountId: From + Into, { - fn into_account_id(address: H160) -> T::AccountId { - if let Some(acc) = Accounts::::get(address) { - acc - } else { - let mut data: [u8; 32] = [0u8; 32]; - data[0..4].copy_from_slice(b"evm:"); - data[4..24].copy_from_slice(&address[..]); - AccountId32::from(data).into() - } - } + fn into_account_id(address: H160) -> T::AccountId { + if let Some(acc) = Accounts::::get(address) { + acc + } else { + let mut data: [u8; 32] = [0u8; 32]; + data[0..4].copy_from_slice(b"evm:"); + data[4..24].copy_from_slice(&address[..]); + AccountId32::from(data).into() + } + } } pub struct CallKillAccount(PhantomData); impl OnKilledAccount for CallKillAccount { - fn on_killed_account(who: &T::AccountId) { - Pallet::::on_killed_account(&who); - } + fn on_killed_account(who: &T::AccountId) { + Pallet::::on_killed_account(&who); + } } /// Converts the given binary data into ASCII-encoded hex. It will be twice the /// length. pub fn to_ascii_hex(data: &[u8]) -> Vec { - let mut r = Vec::with_capacity(data.len() * 2); - let mut push_nibble = |n| r.push(if n < 10 { b'0' + n } else { b'a' - 10 + n }); - for &b in data.iter() { - push_nibble(b / 16); - push_nibble(b % 16); - } - r + let mut r = Vec::with_capacity(data.len() * 2); + let mut push_nibble = |n| r.push(if n < 10 { b'0' + n } else { b'a' - 10 + n }); + for &b in data.iter() { + push_nibble(b / 16); + push_nibble(b % 16); + } + r } diff --git a/node/Cargo.toml b/node/Cargo.toml index 379ff09..c868a28 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -16,23 +16,28 @@ targets = ['x86_64-unknown-linux-gnu'] name = 'clover' [dependencies] +array-bytes = { workspace = true } +clap = { workspace = true } clover-primitives = { workspace = true } clover-runtime = { workspace = true } clover-rpc = { workspace = true } futures = { workspace = true } - -parity-scale-codec = { workspace = true } log = { workspace = true } -jsonrpc-core = { workspace = true } -jsonrpc-pubsub = { workspace = true } -jsonrpsee = { workspace = true, features = ["server", "macros"] } +serde = { version = "1.0.188", features = ["derive"] } +jsonrpsee = { workspace = true } structopt = { workspace = true, optional = true } serde_json = { workspace = true } -serde = { features = ["derive"], workspace = true, default-features = true } -clap = { features = ["derive"], optional = true, workspace = true } +parity-scale-codec = { workspace = true } +rand = { workspace = true } +clover-babe-consensus-provider = { workspace = true } +frame-benchmarking = { workspace = true } +frame-benchmarking-cli = { workspace = true } +frame-system = { workspace = true } pallet-contracts = { workspace = true } +#pallet-contracts-rpc = { workspace = true } pallet-transaction-payment-rpc = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } sc-authority-discovery = { workspace = true } sc-basic-authorship = { workspace = true } sc-cli = { optional = true, workspace = true } @@ -48,13 +53,18 @@ sp-timestamp = { workspace = true } sc-consensus-grandpa-rpc = { workspace = true } sc-consensus-grandpa = { workspace = true } sc-executor = { workspace = true } -sc-mixnet = { workspace = true } sc-keystore = { workspace = true } sc-network = { workspace = true } +sc-network-statement = { workspace = true } sc-network-sync = { workspace = true } +sc-statement-store = { workspace = true } +sc-offchain = { workspace = true } sc-rpc = { workspace = true } sc-rpc-api = { workspace = true } +sc-rpc-spec-v2 = { workspace = true } +sc-transaction-pool-api = { workspace = true } sc-sync-state-rpc = { workspace = true } +sc-sysinfo = { workspace = true } sc-service = { workspace = true } sc-transaction-pool = { workspace = true } sp-api = { workspace = true } @@ -62,61 +72,50 @@ sp-authority-discovery = { workspace = true } sp-block-builder = { workspace = true } sp-blockchain = { workspace = true } sp-consensus = { workspace = true } -sp-consensus-babe = { workspace = true, features = ["std"] } +sp-consensus-babe = { workspace = true } sp-core = { workspace = true, features = ["std"] } -sp-io = { workspace = true, features = ["std"] } sp-consensus-grandpa = { workspace = true } sp-inherents = { workspace = true } +sp-io = { workspace = true } +sp-keyring = { workspace = true } sp-keystore = { workspace = true } sp-runtime = { workspace = true } -sp-offchain = { workspace = true } -sp-session = { workspace = true } sp-transaction-pool = { workspace = true } -sp-transaction-storage-proof = { workspace = true } +sp-version = { workspace = true } +sp-session = { workspace = true } +sp-offchain = { workspace = true } +sp-statement-store = { workspace = true } substrate-frame-rpc-system = { workspace = true } +substrate-state-trie-migration-rpc = { workspace = true } +sc-storage-monitor = { workspace = true } +sp-transaction-storage-proof = { workspace = true } +frame-system-rpc-runtime-api = { workspace = true } hex-literal = { workspace = true } sc-telemetry = { workspace = true } -frame-system-rpc-runtime-api = { workspace = true } -pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-evm = { workspace = true } +pallet-im-online = { workspace = true } pallet-ethereum = { workspace = true } -fc-api = { workspace = true } fc-rpc = { workspace = true, features = ["rpc-binary-search-estimate"] } +fp-rpc = { workspace = true } +fc-api = { workspace = true } + fc-consensus = { workspace = true } -fc-storage = { workspace = true } fp-consensus = { workspace = true } -fc-cli = { workspace = true } +fp-evm = { workspace = true } fc-db = { workspace = true } fc-rpc-core = { workspace = true } -fc-mapping-sync = { workspace = true } -fp-rpc = { workspace = true } -fp-evm = { workspace = true } -fp-storage = { workspace = true } +fc-storage = { workspace = true } +fc-mapping-sync = { workspace = true, features = ["sql"] } primitive-types = { workspace = true, features = ["rlp", "byteorder"] } -polkadot-sdk = { features = ["node"], workspace = true, default-features = true } -staging-node-inspect = { optional = true, workspace = true, default-features = true } [build-dependencies] -clap = { optional = true, workspace = true } -staging-node-inspect = { optional = true, workspace = true, default-features = true } -polkadot-sdk = { features = ["frame-benchmarking-cli", "sc-cli", "sc-storage-monitor", "substrate-build-script-utils"], optional = true, workspace = true, default-features = true } - +substrate-build-script-utils = { workspace = true } [features] -default = [ "cli", "sql", "rocksdb" ] -sql = [ - "fc-db/sql", - "fc-mapping-sync/sql", -] -rocksdb = [ - "sc-cli/rocksdb", - "sc-service/rocksdb", - "fc-db/rocksdb", - "fc-mapping-sync/rocksdb", - "fc-rpc/rocksdb", -] -cli = [ - "clap", - "staging-node-inspect", - "polkadot-sdk", -] +default = [ "cli" ] +cli = [ "sc-cli", "structopt" ] +# TODO: enable crates +runtime-benchmarks = [ "frame-benchmarking-cli/runtime-benchmarks" ] +# TODO: enable crates with `try-runtime` feature +try-runtime = [] +txpool = ["fc-rpc/txpool"] diff --git a/node/build.rs b/node/build.rs index 5519f30..f9d839f 100644 --- a/node/build.rs +++ b/node/build.rs @@ -1,35 +1,7 @@ -// This file is part of Substrate. - -// Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . +use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; fn main() { - #[cfg(feature = "cli")] - cli::main(); -} - -#[cfg(feature = "cli")] -mod cli { - use polkadot_sdk::substrate_build_script_utils::{ - generate_cargo_keys, rerun_if_git_head_changed, - }; - - pub fn main() { - generate_cargo_keys(); + generate_cargo_keys(); - rerun_if_git_head_changed(); - } + rerun_if_git_head_changed(); } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index f787cb2..d2aab4c 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,10 +1,17 @@ +use std::collections::BTreeMap; +use std::str::FromStr; + +use clover_primitives::currency::*; +pub use clover_primitives::{AccountId, Balance, Signature}; +pub use clover_runtime::RuntimeGenesisConfig; use clover_runtime::{ - wasm_binary_unwrap, AccountId, Balance, Block, ImOnlineId, SessionKeys, Signature, - StakerStatus, DOLLARS, + wasm_binary_unwrap, BabeConfig, BalancesConfig, Block, CouncilConfig, DemocracyConfig, + EVMConfig, EthereumConfig, ImOnlineConfig, IndicesConfig, SessionConfig, SessionKeys, + StakerStatus, StakingConfig, SudoConfig, SystemConfig, TechnicalCommitteeConfig, }; use fp_evm::GenesisAccount; use hex_literal::hex; -use primitive_types::H160; +use pallet_im_online::sr25519::AuthorityId as ImOnlineId; use sc_chain_spec::ChainSpecExtension; use sc_service::{ChainType, Properties}; use sc_telemetry::TelemetryEndpoints; @@ -14,13 +21,12 @@ use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_babe::AuthorityId as BabeId; use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::crypto::UncheckedInto; -use sp_core::{sr25519, Pair, Public, U256}; +use sp_core::{sr25519, Pair, Public, H160, U256}; use sp_runtime::traits::{IdentifyAccount, Verify}; use sp_runtime::Perbill; -use std::collections::BTreeMap; -use std::str::FromStr; +type AccountPublic = ::Signer; -// The URL for the telemetry server. +/// Telemetry URL. const TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; /// Node `ChainSpec` extensions. @@ -38,9 +44,10 @@ pub struct Extensions { pub light_sync_state: sc_sync_state_rpc::LightSyncStateExtension, } -/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +/// Specialized `ChainSpec`. +pub type ChainSpec = sc_service::GenericChainSpec; +/// Session keys for a chain. fn session_keys( grandpa: GrandpaId, babe: BabeId, @@ -55,16 +62,144 @@ fn session_keys( } } -/// Generate a crypto pair from seed. +/// Helper function to generate a chain spec for staging testnet. +fn staging_testnet_config_genesis() -> RuntimeGenesisConfig { + #[rustfmt::skip] + // stash, controller, session-key + // generated with secret: + // for i in 1 2 3 4 ; do for j in stash controller; do subkey inspect "$secret"/fir/$j/$i; done; done + // + // and + // + // for i in 1 2 3 4 ; do for j in session; do subkey --ed25519 inspect "$secret"//fir//$j//$i; done; done + + let initial_authorities: Vec<( + AccountId, + AccountId, + GrandpaId, + BabeId, + ImOnlineId, + AuthorityDiscoveryId, + )> = vec![ + ( + // 5Fbsd6WXDGiLTxunqeK5BATNiocfCqu9bS1yArVjCgeBLkVy + array_bytes::hex_n_into_unchecked("9c7a2ee14e565db0c69f78c7b4cd839fbf52b607d867e9e9c5a79042898a0d12"), + // 5EnCiV7wSHeNhjW3FSUwiJNkcc2SBkPLn5Nj93FmbLtBjQUq + array_bytes::hex_n_into_unchecked("781ead1e2fa9ccb74b44c19d29cb2a7a4b5be3972927ae98cd3877523976a276"), + // 5Fb9ayurnxnaXj56CjmyQLBiadfRCqUbL2VWNbbe1nZU6wiC + array_bytes::hex2array_unchecked("9becad03e6dcac03cee07edebca5475314861492cdfc96a2144a67bbe9699332") + .unchecked_into(), + // 5EZaeQ8djPcq9pheJUhgerXQZt9YaHnMJpiHMRhwQeinqUW8 + array_bytes::hex2array_unchecked("6e7e4eb42cbd2e0ab4cae8708ce5509580b8c04d11f6758dbf686d50fe9f9106") + .unchecked_into(), + // 5EZaeQ8djPcq9pheJUhgerXQZt9YaHnMJpiHMRhwQeinqUW8 + array_bytes::hex2array_unchecked("6e7e4eb42cbd2e0ab4cae8708ce5509580b8c04d11f6758dbf686d50fe9f9106") + .unchecked_into(), + // 5EZaeQ8djPcq9pheJUhgerXQZt9YaHnMJpiHMRhwQeinqUW8 + array_bytes::hex2array_unchecked("6e7e4eb42cbd2e0ab4cae8708ce5509580b8c04d11f6758dbf686d50fe9f9106") + .unchecked_into(), + ), + ( + // 5ERawXCzCWkjVq3xz1W5KGNtVx2VdefvZ62Bw1FEuZW4Vny2 + array_bytes::hex_n_into_unchecked("68655684472b743e456907b398d3a44c113f189e56d1bbfd55e889e295dfde78"), + // 5Gc4vr42hH1uDZc93Nayk5G7i687bAQdHHc9unLuyeawHipF + array_bytes::hex_n_into_unchecked("c8dc79e36b29395413399edaec3e20fcca7205fb19776ed8ddb25d6f427ec40e"), + // 5EockCXN6YkiNCDjpqqnbcqd4ad35nU4RmA1ikM4YeRN4WcE + array_bytes::hex2array_unchecked("7932cff431e748892fa48e10c63c17d30f80ca42e4de3921e641249cd7fa3c2f") + .unchecked_into(), + // 5DhLtiaQd1L1LU9jaNeeu9HJkP6eyg3BwXA7iNMzKm7qqruQ + array_bytes::hex2array_unchecked("482dbd7297a39fa145c570552249c2ca9dd47e281f0c500c971b59c9dcdcd82e") + .unchecked_into(), + // 5DhLtiaQd1L1LU9jaNeeu9HJkP6eyg3BwXA7iNMzKm7qqruQ + array_bytes::hex2array_unchecked("482dbd7297a39fa145c570552249c2ca9dd47e281f0c500c971b59c9dcdcd82e") + .unchecked_into(), + // 5DhLtiaQd1L1LU9jaNeeu9HJkP6eyg3BwXA7iNMzKm7qqruQ + array_bytes::hex2array_unchecked("482dbd7297a39fa145c570552249c2ca9dd47e281f0c500c971b59c9dcdcd82e") + .unchecked_into(), + ), + ( + // 5DyVtKWPidondEu8iHZgi6Ffv9yrJJ1NDNLom3X9cTDi98qp + array_bytes::hex_n_into_unchecked("547ff0ab649283a7ae01dbc2eb73932eba2fb09075e9485ff369082a2ff38d65"), + // 5FeD54vGVNpFX3PndHPXJ2MDakc462vBCD5mgtWRnWYCpZU9 + array_bytes::hex_n_into_unchecked("9e42241d7cd91d001773b0b616d523dd80e13c6c2cab860b1234ef1b9ffc1526"), + // 5E1jLYfLdUQKrFrtqoKgFrRvxM3oQPMbf6DfcsrugZZ5Bn8d + array_bytes::hex2array_unchecked("5633b70b80a6c8bb16270f82cca6d56b27ed7b76c8fd5af2986a25a4788ce440") + .unchecked_into(), + // 5DhKqkHRkndJu8vq7pi2Q5S3DfftWJHGxbEUNH43b46qNspH + array_bytes::hex2array_unchecked("482a3389a6cf42d8ed83888cfd920fec738ea30f97e44699ada7323f08c3380a") + .unchecked_into(), + // 5DhKqkHRkndJu8vq7pi2Q5S3DfftWJHGxbEUNH43b46qNspH + array_bytes::hex2array_unchecked("482a3389a6cf42d8ed83888cfd920fec738ea30f97e44699ada7323f08c3380a") + .unchecked_into(), + // 5DhKqkHRkndJu8vq7pi2Q5S3DfftWJHGxbEUNH43b46qNspH + array_bytes::hex2array_unchecked("482a3389a6cf42d8ed83888cfd920fec738ea30f97e44699ada7323f08c3380a") + .unchecked_into(), + ), + ( + // 5HYZnKWe5FVZQ33ZRJK1rG3WaLMztxWrrNDb1JRwaHHVWyP9 + array_bytes::hex_n_into_unchecked("f26cdb14b5aec7b2789fd5ca80f979cef3761897ae1f37ffb3e154cbcc1c2663"), + // 5EPQdAQ39WQNLCRjWsCk5jErsCitHiY5ZmjfWzzbXDoAoYbn + array_bytes::hex_n_into_unchecked("66bc1e5d275da50b72b15de072a2468a5ad414919ca9054d2695767cf650012f"), + // 5DMa31Hd5u1dwoRKgC4uvqyrdK45RHv3CpwvpUC1EzuwDit4 + array_bytes::hex2array_unchecked("3919132b851ef0fd2dae42a7e734fe547af5a6b809006100f48944d7fae8e8ef") + .unchecked_into(), + // 5C4vDQxA8LTck2xJEy4Yg1hM9qjDt4LvTQaMo4Y8ne43aU6x + array_bytes::hex2array_unchecked("00299981a2b92f878baaf5dbeba5c18d4e70f2a1fcd9c61b32ea18daf38f4378") + .unchecked_into(), + // 5C4vDQxA8LTck2xJEy4Yg1hM9qjDt4LvTQaMo4Y8ne43aU6x + array_bytes::hex2array_unchecked("00299981a2b92f878baaf5dbeba5c18d4e70f2a1fcd9c61b32ea18daf38f4378") + .unchecked_into(), + // 5C4vDQxA8LTck2xJEy4Yg1hM9qjDt4LvTQaMo4Y8ne43aU6x + array_bytes::hex2array_unchecked("00299981a2b92f878baaf5dbeba5c18d4e70f2a1fcd9c61b32ea18daf38f4378") + .unchecked_into(), + ), + ]; + + // generated with secret: subkey inspect "$secret"/fir + let root_key: AccountId = array_bytes::hex_n_into_unchecked( + // 5Ff3iXP75ruzroPWRP2FYBHWnmGGBSb63857BgnzCoXNxfPo + "9ee5e5bdc0ec239eb164f865ecc345ce4c88e76ee002e0f7e318097347471809", + ); + + let endowed_accounts: Vec = vec![root_key.clone()]; + + testnet_genesis( + initial_authorities, + vec![], + root_key, + Some(endowed_accounts), + dev_endowed_evm_accounts(), + ) +} + +/// Staging testnet config. +pub fn staging_testnet_config() -> ChainSpec { + let boot_nodes = vec![]; + ChainSpec::from_genesis( + "Staging Testnet", + "staging_testnet", + ChainType::Live, + staging_testnet_config_genesis, + boot_nodes, + Some( + TelemetryEndpoints::new(vec![(TELEMETRY_URL.to_string(), 0)]) + .expect("Staging telemetry url is valid; qed"), + ), + None, + None, + None, + Default::default(), + ) +} + +/// Helper function to generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") .public() } -type AccountPublic = ::Signer; - -/// Generate an account ID from seed. +/// Helper function to generate an account ID from seed. pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic: From<::Public>, @@ -72,27 +207,28 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -/// Generate an Babe authority key. +/// Helper function to generate stash, controller and session key from seed. pub fn authority_keys_from_seed( - s: &str, + seed: &str, ) -> ( AccountId, AccountId, - BabeId, GrandpaId, + BabeId, ImOnlineId, AuthorityDiscoveryId, ) { ( - get_account_id_from_seed::(&format!("{}//stash", s)), - get_account_id_from_seed::(s), - get_from_seed::(s), - get_from_seed::(s), - get_from_seed::(s), - get_from_seed::(s), + get_account_id_from_seed::(&format!("{}//stash", seed)), + get_account_id_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), ) } +/// Get hard coded endowed account for EVM. fn endowed_evm_account() -> BTreeMap { let endowed_account = vec![ // clover fauct @@ -101,6 +237,7 @@ fn endowed_evm_account() -> BTreeMap { get_endowed_evm_accounts(endowed_account) } +/// Get hard coded endowed accounts for EVM. fn dev_endowed_evm_accounts() -> BTreeMap { let endowed_account = vec![ H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b").unwrap(), @@ -114,9 +251,10 @@ fn dev_endowed_evm_accounts() -> BTreeMap { get_endowed_evm_accounts(endowed_account) } -fn get_endowed_evm_accounts(endowed_account: Vec) -> BTreeMap { +/// Helper function to convert endowed accounts to EVM genesis accounts. +fn get_endowed_evm_accounts(endowed_accounts: Vec) -> BTreeMap { let mut evm_accounts = BTreeMap::new(); - for account in endowed_account { + for account in endowed_accounts { evm_accounts.insert( account, GenesisAccount { @@ -130,13 +268,29 @@ fn get_endowed_evm_accounts(endowed_account: Vec) -> BTreeMap RuntimeGenesisConfig { + testnet_genesis( + vec![authority_keys_from_seed("Alice")], + vec![], + get_account_id_from_seed::("Alice"), + None, + dev_endowed_evm_accounts(), + ) +} + +/// Development config (single validator Alice). pub fn development_config() -> ChainSpec { - ChainSpec::builder(wasm_binary_unwrap(), Default::default()) - .with_name("Development") - .with_id("dev") - .with_chain_type(ChainType::Development) - .with_protocol_id("cloverlocal") - .with_properties( + ChainSpec::from_genesis( + "Development", + "dev", + ChainType::Development, + development_config_genesis, + vec![], + None, + Some("cloverlocal"), + None, + Some( json!({ "tokenDecimals": 18, "tokenSymbol": "CLV" @@ -144,31 +298,51 @@ pub fn development_config() -> ChainSpec { .as_object() .expect("Created an object") .clone(), - ) - .with_genesis_config_patch(testnet_genesis( - // Initial PoA authorities - vec![authority_keys_from_seed("Alice")], - // Sudo account + ), + Default::default(), + ) +} + +/// Generic local testnet genesis +fn local_testnet_genesis() -> RuntimeGenesisConfig { + testnet_genesis( + vec![ + authority_keys_from_seed("Alice"), + authority_keys_from_seed("Bob"), + ], + vec![], + get_account_id_from_seed::("Alice"), + // Pre-funded accounts + Some(vec![ get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - //get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - dev_endowed_evm_accounts(), - )) - .build() + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + //get_account_id_from_seed::("Alice//stash"), + //get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ]), + endowed_evm_account(), + ) } +/// Local testnet config (multivalidator Alice + Bob). pub fn local_testnet_config() -> ChainSpec { - ChainSpec::builder(wasm_binary_unwrap(), Default::default()) - .with_name("Clover") - .with_id("local_testnet") - .with_chain_type(ChainType::Local) - .with_protocol_id("cloverlocal") - .with_properties( + ChainSpec::from_genesis( + "Local Testnet", + "local_testnet", + ChainType::Local, + local_testnet_genesis, + vec![], + None, + Some("cloverlocal"), + None, + Some( json!({ "tokenDecimals": 18, "tokenSymbol": "CLV" @@ -176,333 +350,432 @@ pub fn local_testnet_config() -> ChainSpec { .as_object() .expect("Created an object") .clone(), - ) - .with_genesis_config_patch(testnet_genesis( - // Initial PoA authorities - vec![ - authority_keys_from_seed("Alice"), - authority_keys_from_seed("Bob"), - ], - // Sudo account - get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - //get_account_id_from_seed::("Alice//stash"), - //get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - endowed_evm_account(), - )) - .build() + ), + Default::default(), + ) } +/// Local rose testnet genesis +fn local_rose_testnet_genesis() -> RuntimeGenesisConfig { + testnet_genesis( + vec![ + ( + hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), + hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), + hex!["005b5b120aabe29673ca587a738ff1032437a388b006b51a9d6ea16f3dee6349"] + .unchecked_into(), // babe key + hex!["6575c1155089f6653206ffa533757ef71a9efb2738fb86bcc89128b1517788c0"] + .unchecked_into(), // grandpa + hex!["f8bc696eadcba0561c7a19af387b11f7db04e1d6457d344aa626476d6152a612"] + .unchecked_into(), // imonline + hex!["64f317d45163a8b4c1960c60550ea1f70506768a96eac2881f7805b9141d1b11"] + .unchecked_into(), // discovery + ), + // 5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX + // subkey inspect "$SECRET//clover//2//validator"5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX + // subkey inspect "$SECRET//clover//2//babe" + // subkey inspect --scheme ed25519 "$SECRET//clover//2//grandpa" + // subkey inspect "$SECRET//clover//2//imonline" + // subkey inspect "$SECRET//clover//2//discovery" + ( + hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), + hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), + hex!["dcb5d89f40d57b9da9cd1f677c789584e4e88e1cdfd7a91d561757e23e73aa45"] + .unchecked_into(), // babe + hex!["c7925c95410d4ad451f9bc995852127f169bef4fd75f2c23f9472620ddd59f91"] + .unchecked_into(), // grandpa + hex!["14e2ecd186552e1dfb1f2d5233657b69e0b398d7ec405bb68071ee19d3009f04"] + .unchecked_into(), // imonline + hex!["e404b380c6bd7ab0577a5e6809a3338d28d191137e7581bdd23eb3e893ca9e6a"] + .unchecked_into(), // discovery + ), + // 5HQDFanwYwt3QtkAvaBHbaaLgSRER42PWAXCJqNoxyQFZXZJ + // subkey inspect "$SECRET//clover//3//validator" + // subkey inspect "$SECRET//clover//3//babe" + // subkey inspect --scheme ed25519 "$SECRET//clover//3//grandpa" + // subkey inspect "$SECRET//clover//3//imonline" + // subkey inspect "$SECRET//clover//3//discovery" + ( + hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), + hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), + hex!["c08908eb1a58eb1df74e54415cdd4977c20023cc7f5dff771c38f26491367b6e"] + .unchecked_into(), // babe + hex!["0ec2a175b1efc3835a8d1497f914ef39ec4ba0ea7a60cf4cb440586fa74fcd99"] + .unchecked_into(), // grandpa + hex!["f49fda7f7db9af41fd4095a7bf37745e4cc30f9b592c1563ecc5fe2292e9f309"] + .unchecked_into(), // imonline + hex!["e0520566773304de5fd0d448b0ca76b6a2c7edd66d90b4dba36785e64ba65949"] + .unchecked_into(), // discovery + ), + ], + vec![], + get_account_id_from_seed::("Alice"), + Some(vec![ + // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 + hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), + ]), + endowed_evm_account(), + ) +} + +/// Local rose testnet config (multivalidator Alice + Bob). pub fn local_rose_testnet_config() -> ChainSpec { - ChainSpec::builder(wasm_binary_unwrap(), Default::default()) - .with_name("Clover") - .with_id("rose") - .with_chain_type(ChainType::Custom("rose".to_string())) - .with_properties(json!({ - "tokenDecimals": 18, - "tokenSymbol": "CLV" - }).as_object().expect("Created an object").clone()) - .with_genesis_config_patch(testnet_genesis( - // Initial PoA authorities + ChainSpec::from_genesis( + "Clover", + "rose", + ChainType::Custom(String::from("rose")), + local_testnet_genesis, + vec![ + "/dns/seed1.rose-cc2.clovernode.com/tcp/30333/p2p/12D3KooWPb5VY3dzydLFVh4Bn8sk73QvicvVoYcHQawRgicuMNwJ" + .parse() + .unwrap(), + "/dns/seed2.rose-cc2.clovernode.com/tcp/30333/p2p/12D3KooWG4jPV345wrEE23tdRh69i9YH5BtSo8RhToPj4fTaJgkZ" + .parse() + .unwrap(), + ], + TelemetryEndpoints::new(vec![(TELEMETRY_URL.into(), 0)]).ok(), + + Some("rose"), + None, + Some( + json!({ + "tokenDecimals": 18, + "tokenSymbol": "CLV" + }) + .as_object() + .expect("Created an object") + .clone(), + ), + Default::default(), + ) +} + +/// Helper function to generate a testnet genesis config. +fn iris_testnet_genesis() -> RuntimeGenesisConfig { + testnet_genesis( vec![ - // SECRET="..." - // 5CqWfdrRGdZe6bwxZMiHfdcNAVePjkUJpSh2rpKgcNWciTFP - // subkey inspect "$SECRET//clover//1//validator" - // subkey inspect "$SECRET//clover//1//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//1//grandpa" - // subkey inspect "$SECRET//clover//1//imonline" - // subkey inspect "$SECRET//clover//1//discovery" - ( - hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), - hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), - hex!["005b5b120aabe29673ca587a738ff1032437a388b006b51a9d6ea16f3dee6349"].unchecked_into(), // babe key - hex!["6575c1155089f6653206ffa533757ef71a9efb2738fb86bcc89128b1517788c0"].unchecked_into(), // grandpa - hex!["f8bc696eadcba0561c7a19af387b11f7db04e1d6457d344aa626476d6152a612"].unchecked_into(), // imonline - hex!["64f317d45163a8b4c1960c60550ea1f70506768a96eac2881f7805b9141d1b11"].unchecked_into(), // discovery - ), - // 5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX - // subkey inspect "$SECRET//clover//2//validator"5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX - // subkey inspect "$SECRET//clover//2//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//2//grandpa" - // subkey inspect "$SECRET//clover//2//imonline" - // subkey inspect "$SECRET//clover//2//discovery" - ( - hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), - hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), - hex!["dcb5d89f40d57b9da9cd1f677c789584e4e88e1cdfd7a91d561757e23e73aa45"].unchecked_into(), // babe - hex!["c7925c95410d4ad451f9bc995852127f169bef4fd75f2c23f9472620ddd59f91"].unchecked_into(), // grandpa - hex!["14e2ecd186552e1dfb1f2d5233657b69e0b398d7ec405bb68071ee19d3009f04"].unchecked_into(), // imonline - hex!["e404b380c6bd7ab0577a5e6809a3338d28d191137e7581bdd23eb3e893ca9e6a"].unchecked_into(), // discovery - ), - // 5HQDFanwYwt3QtkAvaBHbaaLgSRER42PWAXCJqNoxyQFZXZJ - // subkey inspect "$SECRET//clover//3//validator" - // subkey inspect "$SECRET//clover//3//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//3//grandpa" - // subkey inspect "$SECRET//clover//3//imonline" - // subkey inspect "$SECRET//clover//3//discovery" - ( - hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), - hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), - hex!["c08908eb1a58eb1df74e54415cdd4977c20023cc7f5dff771c38f26491367b6e"].unchecked_into(), // babe - hex!["0ec2a175b1efc3835a8d1497f914ef39ec4ba0ea7a60cf4cb440586fa74fcd99"].unchecked_into(), // grandpa - hex!["f49fda7f7db9af41fd4095a7bf37745e4cc30f9b592c1563ecc5fe2292e9f309"].unchecked_into(), // imonline - hex!["e0520566773304de5fd0d448b0ca76b6a2c7edd66d90b4dba36785e64ba65949"].unchecked_into(), // discovery - ), + // SECRET="..." + // 5CqWfdrRGdZe6bwxZMiHfdcNAVePjkUJpSh2rpKgcNWciTFP + // subkey inspect "$SECRET//clover//1//validator" + // subkey inspect "$SECRET//clover//1//babe" + // subkey inspect --scheme ed25519 "$SECRET//clover//1//grandpa" + // subkey inspect "$SECRET//clover//1//imonline" + // subkey inspect "$SECRET//clover//1//discovery" + ( + hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), + hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), + hex!["005b5b120aabe29673ca587a738ff1032437a388b006b51a9d6ea16f3dee6349"] + .unchecked_into(), // babe key + hex!["6575c1155089f6653206ffa533757ef71a9efb2738fb86bcc89128b1517788c0"] + .unchecked_into(), // grandpa + hex!["f8bc696eadcba0561c7a19af387b11f7db04e1d6457d344aa626476d6152a612"] + .unchecked_into(), // imonline + hex!["64f317d45163a8b4c1960c60550ea1f70506768a96eac2881f7805b9141d1b11"] + .unchecked_into(), // discovery + ), + // 5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX + // subkey inspect "$SECRET//clover//2//validator"5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX + // subkey inspect "$SECRET//clover//2//babe" + // subkey inspect --scheme ed25519 "$SECRET//clover//2//grandpa" + // subkey inspect "$SECRET//clover//2//imonline" + // subkey inspect "$SECRET//clover//2//discovery" + ( + hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), + hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), + hex!["dcb5d89f40d57b9da9cd1f677c789584e4e88e1cdfd7a91d561757e23e73aa45"] + .unchecked_into(), // babe + hex!["c7925c95410d4ad451f9bc995852127f169bef4fd75f2c23f9472620ddd59f91"] + .unchecked_into(), // grandpa + hex!["14e2ecd186552e1dfb1f2d5233657b69e0b398d7ec405bb68071ee19d3009f04"] + .unchecked_into(), // imonline + hex!["e404b380c6bd7ab0577a5e6809a3338d28d191137e7581bdd23eb3e893ca9e6a"] + .unchecked_into(), // discovery + ), + // 5HQDFanwYwt3QtkAvaBHbaaLgSRER42PWAXCJqNoxyQFZXZJ + // subkey inspect "$SECRET//clover//3//validator" + // subkey inspect "$SECRET//clover//3//babe" + // subkey inspect --scheme ed25519 "$SECRET//clover//3//grandpa" + // subkey inspect "$SECRET//clover//3//imonline" + // subkey inspect "$SECRET//clover//3//discovery" + ( + hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), + hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), + hex!["c08908eb1a58eb1df74e54415cdd4977c20023cc7f5dff771c38f26491367b6e"] + .unchecked_into(), // babe + hex!["0ec2a175b1efc3835a8d1497f914ef39ec4ba0ea7a60cf4cb440586fa74fcd99"] + .unchecked_into(), // grandpa + hex!["f49fda7f7db9af41fd4095a7bf37745e4cc30f9b592c1563ecc5fe2292e9f309"] + .unchecked_into(), // imonline + hex!["e0520566773304de5fd0d448b0ca76b6a2c7edd66d90b4dba36785e64ba65949"] + .unchecked_into(), // discovery + ), ], + vec![], // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 // subkey inspect "$SECRET//clover//root" hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), - // Pre-funded accounts - vec![ - // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 - hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), - ], - endowed_evm_account() - )) - .with_boot_nodes( - vec![ - "/dns/seed1.rose-cc2.clovernode.com/tcp/30333/p2p/12D3KooWPb5VY3dzydLFVh4Bn8sk73QvicvVoYcHQawRgicuMNwJ" - .parse() - .unwrap(), - "/dns/seed2.rose-cc2.clovernode.com/tcp/30333/p2p/12D3KooWG4jPV345wrEE23tdRh69i9YH5BtSo8RhToPj4fTaJgkZ" - .parse() - .unwrap(), - ],) - .with_telemetry_endpoints(TelemetryEndpoints::new(vec![(TELEMETRY_URL.into(), 0)]).expect("Valid telemetry url")) - .with_protocol_id("rose") - .build() + Some(vec![ + // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 + hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), + ]), + endowed_evm_account(), + ) } +/// Iris testnet config. pub fn iris_testnet_config() -> ChainSpec { - ChainSpec::builder(wasm_binary_unwrap(), Default::default()) - .with_name("Clover") - .with_id("iris") - .with_chain_type(ChainType::Custom("iris".to_string())) - .with_properties(json!({ - "tokenDecimals": 18, - "tokenSymbol": "CLV" - }).as_object().expect("Created an object").clone()) - .with_genesis_config_patch(testnet_genesis( - // Initial PoA authorities - vec![ - // SECRET="..." - // 5CqWfdrRGdZe6bwxZMiHfdcNAVePjkUJpSh2rpKgcNWciTFP - // subkey inspect "$SECRET//clover//1//validator" - // subkey inspect "$SECRET//clover//1//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//1//grandpa" - // subkey inspect "$SECRET//clover//1//imonline" - // subkey inspect "$SECRET//clover//1//discovery" - ( - hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), - hex!["222c5fa244583b1734ceb6515916efc5e103f65b869ebec4e56b989d9dbb446e"].into(), - hex!["005b5b120aabe29673ca587a738ff1032437a388b006b51a9d6ea16f3dee6349"].unchecked_into(), // babe key - hex!["6575c1155089f6653206ffa533757ef71a9efb2738fb86bcc89128b1517788c0"].unchecked_into(), // grandpa - hex!["f8bc696eadcba0561c7a19af387b11f7db04e1d6457d344aa626476d6152a612"].unchecked_into(), // imonline - hex!["64f317d45163a8b4c1960c60550ea1f70506768a96eac2881f7805b9141d1b11"].unchecked_into(), // discovery - ), - // 5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX - // subkey inspect "$SECRET//clover//2//validator"5FNQoCoibJMAyqC77og9tSbhGUtaVt51SD7GdCxmMeWxPBvX - // subkey inspect "$SECRET//clover//2//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//2//grandpa" - // subkey inspect "$SECRET//clover//2//imonline" - // subkey inspect "$SECRET//clover//2//discovery" - ( - hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), - hex!["9235b080b6ca2e7b2a7af7a46ac4f677bfa394e29d83611324046c38eb14ee49"].into(), - hex!["dcb5d89f40d57b9da9cd1f677c789584e4e88e1cdfd7a91d561757e23e73aa45"].unchecked_into(), // babe - hex!["c7925c95410d4ad451f9bc995852127f169bef4fd75f2c23f9472620ddd59f91"].unchecked_into(), // grandpa - hex!["14e2ecd186552e1dfb1f2d5233657b69e0b398d7ec405bb68071ee19d3009f04"].unchecked_into(), // imonline - hex!["e404b380c6bd7ab0577a5e6809a3338d28d191137e7581bdd23eb3e893ca9e6a"].unchecked_into(), // discovery - ), - // 5HQDFanwYwt3QtkAvaBHbaaLgSRER42PWAXCJqNoxyQFZXZJ - // subkey inspect "$SECRET//clover//3//validator" - // subkey inspect "$SECRET//clover//3//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//3//grandpa" - // subkey inspect "$SECRET//clover//3//imonline" - // subkey inspect "$SECRET//clover//3//discovery" - ( - hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), - hex!["ec0dc859299bcc7146d9ba74956ff67334454e23c0d9fd3e55302f94b09a742b"].into(), - hex!["c08908eb1a58eb1df74e54415cdd4977c20023cc7f5dff771c38f26491367b6e"].unchecked_into(), // babe - hex!["0ec2a175b1efc3835a8d1497f914ef39ec4ba0ea7a60cf4cb440586fa74fcd99"].unchecked_into(), // grandpa - hex!["f49fda7f7db9af41fd4095a7bf37745e4cc30f9b592c1563ecc5fe2292e9f309"].unchecked_into(), // imonline - hex!["e0520566773304de5fd0d448b0ca76b6a2c7edd66d90b4dba36785e64ba65949"].unchecked_into(), // discovery - ), - ], - // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 - // subkey inspect "$SECRET//clover//root" - hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), - // Pre-funded accounts - vec![ - // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 - hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), - ], - endowed_evm_account() - )) - .with_boot_nodes( - vec![ - "/dns/seed1.iris-cc2.clover.finance/tcp/30333/p2p/12D3KooWFtshqoFL1hAwseGc4WuFeREKicjFR15JiVEaJiHnDvn2" - .parse() - .unwrap(), - "/dns/seed2.iris-cc2.clover.finance/tcp/30333/p2p/12D3KooWBcU1EShS2azLwQhKVKyeXU2cc3CWyhuN8wJwEKaRVNe8" - .parse() - .unwrap(), - ]) - .with_telemetry_endpoints(TelemetryEndpoints::new(vec![(TELEMETRY_URL.into(), 0)]).expect("Valid telemetry url")) - .with_protocol_id("iris") - .build() -} + ChainSpec::from_genesis( + "Clover", + "iris", + ChainType::Custom(String::from("iris")), + local_testnet_genesis, + vec![ + "/dns/seed1.iris-cc2.clover.finance/tcp/30333/p2p/12D3KooWFtshqoFL1hAwseGc4WuFeREKicjFR15JiVEaJiHnDvn2" + .parse() + .unwrap(), + "/dns/seed2.iris-cc2.clover.finance/tcp/30333/p2p/12D3KooWBcU1EShS2azLwQhKVKyeXU2cc3CWyhuN8wJwEKaRVNe8" + .parse() + .unwrap(), + ], + TelemetryEndpoints::new(vec![(TELEMETRY_URL.into(), 0)]).ok(), -pub fn ivy_config() -> ChainSpec { - ChainSpec::builder(wasm_binary_unwrap(), Default::default()) - .with_name("Clover Mainnet") - .with_id("clover_ivy") - .with_chain_type(ChainType::Live) - .with_properties(json!({ - "tokenDecimals": 18, - "tokenSymbol": "CLV" - }).as_object().expect("Created an object").clone()) - .with_genesis_config_patch(testnet_genesis( - // Initial PoA authorities - vec![ - // SECRET="..." - // 5H14XVgazykT5sz2hUPkEBmj3N4wzj5Zej9QVmVwCzN4iYVL - // subkey inspect "$SECRET//clover//1//validator" - // subkey inspect "$SECRET//clover//1//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//1//grandpa" - // subkey inspect "$SECRET//clover//1//imonline" - // subkey inspect "$SECRET//clover//1//discovery" - ( - hex!["da65c3df9f86fbfb2b301282a5c0807d501e265354b5badd475eb4e28960aa55"].into(), - hex!["da65c3df9f86fbfb2b301282a5c0807d501e265354b5badd475eb4e28960aa55"].into(), - hex!["e254d4a170f065a4c76128d5b70da167b93550e26f61c16c36268fd0703d7e0b"].unchecked_into(), // babe key - hex!["730ef78d56adfbbd2889a794dd358b35d0b5573415b79baccbc213c688ee3e32"].unchecked_into(), // grandpa - hex!["8815cb09de848860956ee58c6900161b9491ed955d83c10d6f11bbc4bf5a3627"].unchecked_into(), // imonline - hex!["321514a7b080dfc016c134fe531fbd338a5ce4128ebc9f09611b14a42c2b9e6a"].unchecked_into(), // discovery - ), - // 5H6bu5PdTY2WovY4tqUWLi9pHyTuXXkRwR4XZ4N5YNfUJdpY - // subkey inspect "$SECRET//clover//2//validator" - // subkey inspect "$SECRET//clover//2//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//2//grandpa" - // subkey inspect "$SECRET//clover//2//imonline" - // subkey inspect "$SECRET//clover//2//discovery" - ( - hex!["de9f999ad12043c5793eddbb4189b0a82d3225c4b65468ef689a8b42bacb261a"].into(), - hex!["de9f999ad12043c5793eddbb4189b0a82d3225c4b65468ef689a8b42bacb261a"].into(), - hex!["4a86c546231758db8c648f616d3c5c45d5851275dd03ef174e9d42b06b657c6b"].unchecked_into(), // babe - hex!["2f2534068447782f49f51827355c069c3b61cf3cea9bff5060d45cfe754dd386"].unchecked_into(), // grandpa - hex!["a6a4614a1bc934d19c15fec123d1bac6c3d1e67bf88439567ea7444114e47c12"].unchecked_into(), // imonline - hex!["10d5fede129511e883414f6a17457eca1bae6e5cc8c8d8a59efa810e68f4326e"].unchecked_into(), // discovery - ), - // 5Gdi2r42Sx2Kka7Us4sJePdRLaogZH4MRCvKLqYVuEmLwrjC - // subkey inspect "$SECRET//clover//3//validator" - // subkey inspect "$SECRET//clover//3//babe" - // subkey inspect --scheme ed25519 "$SECRET//clover//3//grandpa" - // subkey inspect "$SECRET//clover//3//imonline" - // subkey inspect "$SECRET//clover//3//discovery" - ( - hex!["ca1c9f747fe1f7ea25c521e63bc521d825922ae1724c569556616ee6d173284b"].into(), - hex!["ca1c9f747fe1f7ea25c521e63bc521d825922ae1724c569556616ee6d173284b"].into(), - hex!["84bfc5961ccce24c4348e96cba5ce476c3864d1b37523105c908433517413e0f"].unchecked_into(), // babe - hex!["bd1a9c279e81f75b682e67e9a75f4c466af318a6ab0cd7721ceb7a8bee6a1376"].unchecked_into(), // grandpa - hex!["106bfca82987d1c44638e2b7b7a433d62c38b8e463471b4a6770a23ee5af3b0a"].unchecked_into(), // imonline - hex!["c0ff707d2849e3ea00803824ba50ed38f284bd84841cc5c8ff890406d048f90d"].unchecked_into(), // discovery + Some("iris"), + None, + Some( + json!({ + "tokenDecimals": 18, + "tokenSymbol": "CLV" + }) + .as_object() + .expect("Created an object") + .clone(), ), - ], - // 5HToWGk4935P9VWS8VCTKLbCiG1jT9g2JM6b6ThcS79GJ1xT - // subkey inspect "$SECRET//clover//root" - hex!["eecad357d3e3f702947770e84211cf47eaf2d62611eb5642a7e266a829bfb35c"].into(), - // Pre-funded accounts - vec![ - // 5HToWGk4935P9VWS8VCTKLbCiG1jT9g2JM6b6ThcS79GJ1xT - hex!["eecad357d3e3f702947770e84211cf47eaf2d62611eb5642a7e266a829bfb35c"].into(), - ], - BTreeMap::new(), // evm accounts - )) - .with_boot_nodes( - vec![ - "/dns/seed1.ivy.clover.finance/tcp/30333/p2p/12D3KooWAw6GLPuBsatTjmwhqq4vjEEiVMmttSS3V56ZWX7J9Yh5" - .parse() - .unwrap(), - "/dns/seed2.ivy.clover.finance/tcp/30333/p2p/12D3KooWCNnKzKHrPB5LcddhjA9epkq81pdkcaxm2berU7pgYmEN" - .parse() - .unwrap(), - ] + Default::default(), ) - .with_telemetry_endpoints(TelemetryEndpoints::new(vec![(TELEMETRY_URL.into(), 0)]).expect("Valid telemetry url")) - .with_protocol_id("ivy") - .build() } -/// Configure initial storage state for FRAME modules. +/// Helper function to create RuntimeGenesisConfig for testing. pub fn testnet_genesis( initial_authorities: Vec<( AccountId, AccountId, - BabeId, GrandpaId, + BabeId, ImOnlineId, AuthorityDiscoveryId, )>, + initial_nominators: Vec, root_key: AccountId, - endowed_accounts: Vec, + endowed_accounts: Option>, endowed_eth_accounts: BTreeMap, -) -> serde_json::Value { +) -> RuntimeGenesisConfig { + let mut endowed_accounts: Vec = endowed_accounts.unwrap_or_else(|| { + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ] + }); + // endow all authorities and nominators. + initial_authorities + .iter() + .map(|x| &x.0) + .chain(initial_nominators.iter()) + .for_each(|x| { + if !endowed_accounts.contains(x) { + endowed_accounts.push(x.clone()) + } + }); + + // stakers: all validators and nominators. + let mut rng = rand::thread_rng(); + let stakers = initial_authorities + .iter() + .map(|x| (x.0.clone(), x.0.clone(), STASH, StakerStatus::Validator)) + .chain(initial_nominators.iter().map(|x| { + use rand::seq::SliceRandom; + use rand::Rng; + let limit = initial_authorities.len(); + let count = rng.gen::() % limit; + let nominations = initial_authorities + .as_slice() + .choose_multiple(&mut rng, count) + .into_iter() + .map(|choice| choice.0.clone()) + .collect::>(); + ( + x.clone(), + x.clone(), + STASH, + StakerStatus::Nominator(nominations), + ) + })) + .collect::>(); + + let num_endowed_accounts = endowed_accounts.len(); + const ENDOWMENT: Balance = 1_000 * DOLLARS; const STASH: Balance = 100 * DOLLARS; - const AUTHOR_BALANCE: Balance = 200 * DOLLARS; - let num_endowed_accounts = endowed_accounts.len(); + RuntimeGenesisConfig { + system: SystemConfig { + code: wasm_binary_unwrap().to_vec(), + ..Default::default() + }, + balances: BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|x| (x, ENDOWMENT)) + .collect(), + }, + evm: EVMConfig { + accounts: endowed_eth_accounts, + ..Default::default() + }, + ethereum: EthereumConfig::default(), + im_online: ImOnlineConfig { keys: vec![] }, + indices: IndicesConfig { indices: vec![] }, + session: SessionConfig { + keys: initial_authorities + .iter() + .map(|x| { + ( + x.0.clone(), + x.0.clone(), + session_keys(x.2.clone(), x.3.clone(), x.4.clone(), x.5.clone()), + ) + }) + .collect::>(), + }, + staking: StakingConfig { + validator_count: initial_authorities.len() as u32, + minimum_validator_count: initial_authorities.len() as u32, + invulnerables: initial_authorities.iter().map(|x| x.0.clone()).collect(), + slash_reward_fraction: Perbill::from_percent(10), + stakers, + ..Default::default() + }, + democracy: DemocracyConfig::default(), + council: CouncilConfig::default(), + technical_committee: TechnicalCommitteeConfig { + members: endowed_accounts + .iter() + .take((num_endowed_accounts + 1) / 2) + .cloned() + .collect(), + phantom: Default::default(), + }, + sudo: SudoConfig { + key: Some(root_key), + }, + babe: BabeConfig { + epoch_config: Some(clover_runtime::BABE_GENESIS_EPOCH_CONFIG), + ..Default::default() + }, + authority_discovery: Default::default(), + grandpa: Default::default(), + technical_membership: Default::default(), + treasury: Default::default(), + vesting: Default::default(), + elections_phragmen: Default::default(), + } +} + +#[cfg(test)] +pub(crate) mod tests { + use super::*; + use crate::service::{new_full_base, NewFullBase}; + use sc_service_test; + use sp_runtime::BuildStorage; - serde_json::json!({ - "balances": { - "balances": endowed_accounts.iter().chain(initial_authorities.iter().map(|a| &a.0)).map(|k| (k, ENDOWMENT)).collect::>(), - }, - "session": { - "keys": initial_authorities.iter() - .map(|x| (x.0.clone(), x.0.clone(), session_keys( - x.3.clone(), - x.2.clone(), - x.4.clone(), - x.5.clone(), - ))) - .collect::>(), - }, - "staking": { - "validatorCount": initial_authorities.len() as u32, - "minimumValidatorCount": initial_authorities.len() as u32, - "invulnerables": initial_authorities.iter().map(|x| x.0.clone()).collect::>(), - "slashRewardFraction": Perbill::from_percent(10), - "stakers": initial_authorities.iter().map(|x| { - (x.0.clone(), x.0.clone(), STASH, StakerStatus::::Validator) - }).collect::>(), - }, - "babe": { - "epochConfig": Some(clover_runtime::BABE_GENESIS_EPOCH_CONFIG), - }, - "sudo": { "key": Some(root_key.clone()) }, - "evm": { - "accounts": Some(endowed_eth_accounts), - }, - "electionsPhragmen": { - "members": endowed_accounts - .iter() - .take((num_endowed_accounts + 1) / 2) - .cloned() - .map(|member| (member, STASH)) - .collect::>(), - }, - }) + fn local_testnet_genesis_instant_single() -> RuntimeGenesisConfig { + testnet_genesis( + vec![authority_keys_from_seed("Alice")], + vec![], + get_account_id_from_seed::("Alice"), + None, + dev_endowed_evm_accounts(), + ) + } + + /// Local testnet config (single validator - Alice). + pub fn integration_test_config_with_single_authority() -> ChainSpec { + ChainSpec::from_genesis( + "Integration Test", + "test", + ChainType::Development, + local_testnet_genesis_instant_single, + vec![], + None, + None, + None, + None, + Default::default(), + ) + } + + /// Local testnet config (multivalidator Alice + Bob). + pub fn integration_test_config_with_two_authorities() -> ChainSpec { + ChainSpec::from_genesis( + "Integration Test", + "test", + ChainType::Development, + local_testnet_genesis, + vec![], + None, + None, + None, + None, + Default::default(), + ) + } + + #[test] + #[ignore] + fn test_connectivity() { + sp_tracing::try_init_simple(); + + sc_service_test::connectivity(integration_test_config_with_two_authorities(), |config| { + let NewFullBase { + task_manager, + client, + network, + sync, + transaction_pool, + .. + } = new_full_base(config, false, |_, _| ())?; + Ok(sc_service_test::TestNetComponents::new( + task_manager, + client, + network, + sync, + transaction_pool, + )) + }); + } + + #[test] + fn test_create_development_chain_spec() { + development_config().build_storage().unwrap(); + } + + #[test] + fn test_create_local_testnet_chain_spec() { + local_testnet_config().build_storage().unwrap(); + } + + #[test] + fn test_staging_test_net_chain_spec() { + staging_testnet_config().build_storage().unwrap(); + } } diff --git a/node/src/cli.rs b/node/src/cli.rs index fc55b61..053c003 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,24 +1,85 @@ -use polkadot_sdk::{cumulus_client_cli, sc_cli}; +// This file is part of Substrate. -use fc_cli::FrontierDbCmd; -use sc_cli::{KeySubcommand, SignCmd, VanityCmd, VerifyCmd}; +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::eth::EthConfiguration; + +/// An overarching CLI command definition. +#[derive(Debug, clap::Parser)] +pub struct Cli { + /// Possible subcommand with parameters. + #[command(subcommand)] + pub subcommand: Option, + + #[allow(missing_docs)] + #[clap(flatten)] + pub run: sc_cli::RunCmd, + + /// Disable automatic hardware benchmarks. + /// + /// By default these benchmarks are automatically ran at startup and measure + /// the CPU speed, the memory bandwidth and the disk speed. + /// + /// The results are then printed out in the logs, and also sent as part of + /// telemetry, if telemetry is enabled. + #[arg(long)] + pub no_hardware_benchmarks: bool, + + /// Configuration for the storage monitor. + #[allow(missing_docs)] + #[clap(flatten)] + pub storage_monitor: sc_storage_monitor::StorageMonitorParams, + + /// Configuration for the Ethereum compatibility layer. + #[command(flatten)] + pub eth: EthConfiguration, +} /// Possible subcommands of the main binary. #[derive(Debug, clap::Subcommand)] pub enum Subcommand { + // /// The custom inspect subcommmand for decoding blocks and extrinsics. + // #[command( + // name = "inspect", + // about = "Decode given block or extrinsic using current native runtime." + // )] + // Inspect(node_inspect::cli::InspectCmd), + /// Sub-commands concerned with benchmarking. + /// The pallet benchmarking moved to the `pallet` sub-command. + #[command(subcommand)] + Benchmark(frame_benchmarking_cli::BenchmarkCmd), + + /// Try-runtime has migrated to a standalone CLI + /// (). The subcommand exists as a stub and + /// deprecation notice. It will be removed entirely some time after Janurary 2024. + TryRuntime, + /// Key management cli utilities #[command(subcommand)] - Key(KeySubcommand), + Key(sc_cli::KeySubcommand), - /// Verify a signature for a message, provided on STDIN, with a given - /// (public or secret) key. - Verify(VerifyCmd), + /// Verify a signature for a message, provided on STDIN, with a given (public or secret) key. + Verify(sc_cli::VerifyCmd), /// Generate a seed that provides a vanity address. - Vanity(VanityCmd), + Vanity(sc_cli::VanityCmd), /// Sign a message, with a given (secret) key. - Sign(SignCmd), + Sign(sc_cli::SignCmd), /// Build a chain specification. BuildSpec(sc_cli::BuildSpecCmd), @@ -42,52 +103,5 @@ pub enum Subcommand { Revert(sc_cli::RevertCmd), /// Db meta columns information. - FrontierDb(FrontierDbCmd), - - #[command(alias = "export-genesis-state")] - ExportGenesisHead(cumulus_client_cli::ExportGenesisHeadCommand), - ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), -} - -#[allow(missing_docs)] -#[derive(Debug, clap::Parser)] -pub struct CloverRunCmd { - #[allow(missing_docs)] - #[clap(flatten)] - pub base: cumulus_client_cli::RunCmd, - #[arg(long)] - pub manual_seal: bool, - - #[command(flatten)] - pub eth: crate::eth::EthConfiguration, -} - -#[derive(Debug, clap::Parser)] -#[command( - propagate_version = true, - args_conflicts_with_subcommands = true, - subcommand_negates_reqs = true -)] -pub struct Cli { - #[command(subcommand)] - pub subcommand: Option, - - #[clap(flatten)] - pub run: CloverRunCmd, - - #[allow(missing_docs)] - #[clap(flatten)] - pub mixnet_params: sc_cli::MixnetParams, - - /// Disable automatic hardware benchmarks. - /// - /// By default these benchmarks are automatically ran at startup and measure - /// the CPU speed, the memory bandwidth and the disk speed. - /// - /// The results are then printed out in the logs, and also sent as part of - /// telemetry, if telemetry is enabled. - #[arg(long)] - pub no_hardware_benchmarks: bool, - #[arg(raw = true)] - pub relay_chain_args: Vec, + ChainInfo(sc_cli::ChainInfoCmd), } diff --git a/node/src/command.rs b/node/src/command.rs index c0e1165..89f93d6 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,25 +1,32 @@ // This file is part of Substrate. -// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// use super::benchmarking::{inherent_benchmark_data, RemarkBuilder, TransferKeepAliveBuilder}; use crate::cli::{Cli, Subcommand}; -use crate::service::{new_partial, HostFunctions}; +use crate::service::{new_partial, FullClient}; use crate::{chain_spec, service}; -use clover_runtime::{Block, RuntimeApi}; -use sc_cli::SubstrateCli; +use clover_primitives::Block; +// use clover_runtime::{ExistentialDeposit, RuntimeApi}; +use frame_benchmarking_cli::*; +use sc_cli::{Result, SubstrateCli}; +use sc_consensus_grandpa as grandpa; use sc_service::PartialComponents; +use std::sync::Arc; impl SubstrateCli for Cli { fn impl_name() -> String { @@ -39,36 +46,130 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "support.anonymous.an".into() + "https://github.com/clover-network/clover/issues".into() } fn copyright_start_year() -> i32 { 2017 } - fn load_spec(&self, id: &str) -> Result, String> { + fn load_spec(&self, id: &str) -> std::result::Result, String> { let spec = match id { + "" => { + return Err( + "Please specify which chain you want to run, e.g. --dev or --chain=local" + .into(), + ) + } "dev" => Box::new(chain_spec::development_config()), - "" | "local" => Box::new(chain_spec::local_testnet_config()), + "local" => Box::new(chain_spec::local_testnet_config()), "rose" => Box::new(chain_spec::local_rose_testnet_config()), "iris" => Box::new(chain_spec::iris_testnet_config()), - "ivy" => Box::new(chain_spec::ivy_config()), - path => Box::new( - chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path)) - .map_err(|err| format!("Failed to load chain spec: {}", err))?, - ), + "staging" => Box::new(chain_spec::staging_testnet_config()), + path => Box::new(chain_spec::ChainSpec::from_json_file( + std::path::PathBuf::from(path), + )?), }; - Ok(spec) } } -/// Parse and run command line arguments -#[allow(dead_code)] -pub fn run() -> sc_cli::Result<()> { +/// Parse command line arguments into service configuration. +pub fn run() -> Result<()> { let cli = Cli::from_args(); match &cli.subcommand { + None => { + let runner = cli.create_runner(&cli.run)?; + runner.run_node_until_exit(|config| async move { + service::new_full(config, cli) + .await + .map_err(sc_cli::Error::Service) + }) + } + // Some(Subcommand::Inspect(cmd)) => { + // let runner = cli.create_runner(cmd)?; + + // runner.sync_run(|config| cmd.run::(config)) + // } + Some(Subcommand::Benchmark(cmd)) => { + let runner = cli.create_runner(cmd)?; + + runner.sync_run(|config| { + // This switch needs to be in the client, since the client decides + // which sub-commands it wants to support. + match cmd { + BenchmarkCmd::Pallet(cmd) => { + if !cfg!(feature = "runtime-benchmarks") { + return Err( + "Runtime benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`." + .into(), + ); + } + + cmd.run::(config) + } + BenchmarkCmd::Block(cmd) => { + // ensure that we keep the task manager alive + let partial = new_partial(&config, &cli.eth)?; + cmd.run(partial.client) + } + #[cfg(not(feature = "runtime-benchmarks"))] + BenchmarkCmd::Storage(_) => Err( + "Storage benchmarking can be enabled with `--features runtime-benchmarks`." + .into(), + ), + #[cfg(feature = "runtime-benchmarks")] + BenchmarkCmd::Storage(cmd) => { + // ensure that we keep the task manager alive + let partial = new_partial(&config)?; + let db = partial.backend.expose_db(); + let storage = partial.backend.expose_storage(); + + cmd.run(config, partial.client, db, storage) + } + BenchmarkCmd::Overhead(_cmd) => { + // // ensure that we keep the task manager alive + // let partial = new_partial(&config)?; + // let ext_builder = RemarkBuilder::new(partial.client.clone()); + + // cmd.run( + // config, + // partial.client, + // inherent_benchmark_data()?, + // Vec::new(), + // &ext_builder, + // ) + unimplemented!("Overhead benchmarking is not yet implemented") + } + BenchmarkCmd::Extrinsic(_cmd) => { + // ensure that we keep the task manager alive + // let partial = service::new_partial(&config)?; + // // Register the *Remark* and *TKA* builders. + // let ext_factory = ExtrinsicFactory(vec![ + // Box::new(RemarkBuilder::new(partial.client.clone())), + // Box::new(TransferKeepAliveBuilder::new( + // partial.client.clone(), + // Sr25519Keyring::Alice.to_account_id(), + // ExistentialDeposit::get(), + // )), + // ]); + + // cmd.run( + // partial.client, + // inherent_benchmark_data()?, + // Vec::new(), + // &ext_factory, + // ) + unimplemented!("Extrinsic benchmarking is not yet implemented") + } + BenchmarkCmd::Machine(cmd) => { + cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()) + } + } + }) + } Some(Subcommand::Key(cmd)) => cmd.run(&cli), Some(Subcommand::Sign(cmd)) => cmd.run(), Some(Subcommand::Verify(cmd)) => cmd.run(), @@ -85,7 +186,7 @@ pub fn run() -> sc_cli::Result<()> { task_manager, import_queue, .. - } = new_partial::(&config, &cli)?; + } = new_partial(&config, &cli.eth)?; Ok((cmd.run(client, import_queue), task_manager)) }) } @@ -96,11 +197,10 @@ pub fn run() -> sc_cli::Result<()> { client, task_manager, .. - } = new_partial::(&config, &cli)?; + } = new_partial(&config, &cli.eth)?; Ok((cmd.run(client, config.database), task_manager)) }) } - Some(Subcommand::ExportState(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { @@ -108,82 +208,52 @@ pub fn run() -> sc_cli::Result<()> { client, task_manager, .. - } = new_partial::(&config, &cli)?; + } = new_partial(&config, &cli.eth)?; Ok((cmd.run(client, config.chain_spec), task_manager)) }) } - Some(Subcommand::ImportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { let PartialComponents { client, - import_queue, task_manager, + import_queue, .. - } = new_partial::(&config, &cli)?; - + } = new_partial(&config, &cli.eth)?; Ok((cmd.run(client, import_queue), task_manager)) }) } - Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| cmd.run(config.database)) } - Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { let PartialComponents { client, task_manager, backend, .. - } = new_partial::(&config, &cli)?; - let aux_revert = Box::new(move |client, _, blocks| { - sc_consensus_grandpa::revert(client, blocks)?; + } = new_partial(&config, &cli.eth)?; + let aux_revert = Box::new(|client: Arc, backend, blocks| { + sc_consensus_babe::revert(client.clone(), backend, blocks)?; + grandpa::revert(client, blocks)?; Ok(()) }); Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) }) } - Some(Subcommand::FrontierDb(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.sync_run(|mut config| { - let (client, _, _, _, frontier_backend) = - service::new_chain_ops::(&mut config, &cli)?; - let frontier_backend = match frontier_backend { - fc_db::Backend::KeyValue(kv) => kv, - _ => panic!("Only fc_db::Backend::KeyValue supported"), - }; - cmd.run(client, frontier_backend) - }) - } - Some(Subcommand::ExportGenesisHead(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| { - let partials = new_partial::(&config, &cli)?; - - cmd.run(partials.client) - }) - } - Some(Subcommand::ExportGenesisWasm(cmd)) => { + #[cfg(feature = "try-runtime")] + Some(Subcommand::TryRuntime) => Err(try_runtime_cli::DEPRECATION_NOTICE.into()), + #[cfg(not(feature = "try-runtime"))] + Some(Subcommand::TryRuntime) => Err("TryRuntime wasn't enabled when building the node. \ + You can enable it with `--features try-runtime`." + .into()), + Some(Subcommand::ChainInfo(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|_config| { - let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; - cmd.run(&*spec) - }) - } - None => { - let runner = cli.create_runner(&cli.run.base.base)?; - runner.run_node_until_exit(|config| async move { - service::new_full(config, &cli) - .await - .map_err(sc_cli::Error::Service) - }) + runner.sync_run(|config| cmd.run::(&config)) } } } diff --git a/node/src/eth.rs b/node/src/eth.rs index 0a7ba8c..5d48371 100644 --- a/node/src/eth.rs +++ b/node/src/eth.rs @@ -1,35 +1,46 @@ -use std::collections::BTreeMap; -use std::path::PathBuf; -use std::sync::{Arc, Mutex}; -use std::time::Duration; - +use clover_runtime::opaque::Block; +use fc_rpc::EthTask; +pub use fc_rpc::{EthBlockDataCacheTask, EthConfig, OverrideHandle, StorageOverride}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; use futures::future; use futures::prelude::*; -// Substrate -use sc_client_api::BlockchainEvents; -use sc_executor::HostFunctions; +use jsonrpsee::RpcModule; +use sc_client_api::backend::{Backend, StorageProvider}; +use sc_client_api::client::BlockchainEvents; +use sc_client_api::{AuxStore, UsageProvider}; +use sc_consensus_babe::Epoch; +use sc_consensus_epochs::SharedEpochChanges; +use sc_network::NetworkService; use sc_network_sync::SyncingService; +use sc_rpc::SubscriptionTaskExecutor; use sc_service::error::Error as ServiceError; use sc_service::{Configuration, TaskManager}; -use sp_api::ConstructRuntimeApi; +use sc_transaction_pool::{ChainApi, Pool}; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder as BlockBuilderApi; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_consensus_babe::{AuthorityId as BabeId, BabeApi, BabeAuthorityWeight}; use sp_core::H256; +use sp_inherents::CreateInherentDataProviders; +use sp_keystore::KeystorePtr; use sp_runtime::traits::Block as BlockT; -// Frontier -pub use fc_consensus::FrontierBlockImport; -use fc_rpc::EthTask; -pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; -pub use fc_storage::{StorageOverride, StorageOverrideHandler}; +use std::collections::BTreeMap; +use std::path::PathBuf; +use std::sync::{Arc, Mutex}; +use std::time::Duration; use crate::service::{FullBackend, FullClient}; /// Frontier DB backend type. -pub type FrontierBackend = fc_db::Backend; +pub type FrontierBackend = fc_db::Backend; pub fn db_config_dir(config: &Configuration) -> PathBuf { config.base_path.config_dir(config.chain_spec.id()) } -/// Available frontier backend types. +/// Avalailable frontier backend types. #[derive(Debug, Copy, Clone, Default, clap::ValueEnum)] pub enum BackendType { /// Either RocksDb or ParityDb as per inherited from the global backend settings. @@ -99,7 +110,7 @@ pub struct FrontierPartialComponents { } pub fn new_frontier_partial( - config: &crate::eth::EthConfiguration, + config: &EthConfiguration, ) -> Result { Ok(FrontierPartialComponents { filter_pool: Some(Arc::new(Mutex::new(BTreeMap::new()))), @@ -108,47 +119,25 @@ pub fn new_frontier_partial( }) } -/// A set of APIs that ethereum-compatible runtimes must implement. -pub trait EthCompatRuntimeApiCollection: - sp_api::ApiExt - + fp_rpc::ConvertTransactionRuntimeApi - + fp_rpc::EthereumRuntimeRPCApi -{ -} - -impl EthCompatRuntimeApiCollection for Api -where - Block: BlockT, - Api: sp_api::ApiExt - + fp_rpc::ConvertTransactionRuntimeApi - + fp_rpc::EthereumRuntimeRPCApi, -{ -} - -pub async fn spawn_frontier_tasks( +/// Spawn tasks for the Ethereum compatibility layer. +pub async fn spawn_frontier_tasks( task_manager: &TaskManager, - client: Arc>, - backend: Arc>, - frontier_backend: Arc>>, + client: Arc, + backend: Arc, + frontier_backend: FrontierBackend, filter_pool: Option, - storage_override: Arc>, + overrides: Arc>, fee_history_cache: FeeHistoryCache, fee_history_cache_limit: FeeHistoryCacheLimit, - sync: Arc>, + sync: Arc>, pubsub_notification_sinks: Arc< fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, + fc_mapping_sync::EthereumBlockNotification, >, >, -) where - B: BlockT, - RA: ConstructRuntimeApi>, - RA: Send + Sync + 'static, - RA::RuntimeApi: EthCompatRuntimeApiCollection, - HF: HostFunctions + 'static, -{ +) { // Spawn main mapping sync worker background task. - match &*frontier_backend { + match frontier_backend { fc_db::Backend::KeyValue(b) => { task_manager.spawn_essential_handle().spawn( "frontier-mapping-sync-worker", @@ -158,10 +147,10 @@ pub async fn spawn_frontier_tasks( Duration::new(6, 0), client.clone(), backend, - storage_override.clone(), - b.clone(), + overrides.clone(), + Arc::new(b), 3, - 0u32.into(), + 0, fc_mapping_sync::SyncStrategy::Normal, sync, pubsub_notification_sinks, @@ -176,10 +165,10 @@ pub async fn spawn_frontier_tasks( fc_mapping_sync::sql::SyncWorker::run( client.clone(), backend, - b.clone(), + Arc::new(b), client.import_notification_stream(), fc_mapping_sync::sql::SyncWorkerConfig { - read_notification_timeout: Duration::from_secs(30), + read_notification_timeout: Duration::from_secs(10), check_indexed_blocks_interval: Duration::from_secs(60), }, fc_mapping_sync::SyncStrategy::Parachain, @@ -207,9 +196,202 @@ pub async fn spawn_frontier_tasks( Some("frontier"), EthTask::fee_history_task( client, - storage_override, + overrides, fee_history_cache, fee_history_cache_limit, ), ); } + +/// Extra dependencies for Ethereum compatibility. +pub struct EthDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// Graph pool instance. + pub graph: Arc>, + /// Ethereum transaction converter. + pub converter: Option, + /// The Node authority flag + pub is_authority: bool, + /// Whether to enable dev signer + pub enable_dev_signer: bool, + /// Network service + pub network: Arc>, + /// Chain syncing service + pub sync: Arc>, + /// Frontier Backend. + pub frontier_backend: Arc>, + /// Ethereum data access overrides. + pub overrides: Arc>, + /// Cache for Ethereum block data. + pub block_data_cache: Arc>, + /// EthFilterApi pool. + pub filter_pool: Option, + /// Maximum number of logs in a query. + pub max_past_logs: u32, + /// Fee history cache. + pub fee_history_cache: FeeHistoryCache, + /// Maximum fee history cache size. + pub fee_history_cache_limit: FeeHistoryCacheLimit, + /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when + /// using eth_call/eth_estimateGas. + pub execute_gas_limit_multiplier: u64, + /// Mandated parent hashes for a given block hash. + pub forced_parent_hashes: Option>, + /// Something that can create the inherent data providers for pending state + pub pending_create_inherent_data_providers: CIDP, + /// Keystore + pub keystore: KeystorePtr, + pub epoch_changes: SharedEpochChanges, + pub babe_authorities: Vec<(BabeId, BabeAuthorityWeight)>, +} + +/// Instantiate Ethereum-compatible RPC extensions. +pub fn create_eth( + mut io: RpcModule<()>, + deps: EthDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result, Box> +where + B: BlockT, + C: CallApiAt + ProvideRuntimeApi, + C::Api: BabeApi + + BlockBuilderApi + + ConvertTransactionRuntimeApi + + EthereumRuntimeRPCApi, + C: HeaderBackend + HeaderMetadata, + C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, + BE: Backend + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, + CIDP: CreateInherentDataProviders + Send + 'static, + EC: EthConfig, +{ + use fc_rpc::{ + Debug, DebugApiServer, Eth, EthApiServer, EthDevSigner, EthFilter, EthFilterApiServer, + EthPubSub, EthPubSubApiServer, EthSigner, Net, NetApiServer, Web3, Web3ApiServer, + }; + #[cfg(feature = "txpool")] + use fc_rpc::{TxPool, TxPoolApiServer}; + + let EthDeps { + client, + pool, + graph, + converter, + is_authority, + enable_dev_signer, + network, + sync, + frontier_backend, + overrides, + block_data_cache, + filter_pool, + max_past_logs, + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + pending_create_inherent_data_providers, + keystore, + epoch_changes: _, + babe_authorities: _, + } = deps; + + let mut signers = Vec::new(); + if enable_dev_signer { + signers.push(Box::new(EthDevSigner::new()) as Box); + } + + io.merge( + Eth::::new( + client.clone(), + pool.clone(), + graph.clone(), + converter, + sync.clone(), + signers, + overrides.clone(), + frontier_backend.clone(), + is_authority, + block_data_cache.clone(), + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + pending_create_inherent_data_providers, + Some(Box::new( + clover_babe_consensus_provider::BabeConsensusDataProvider::new( + client.clone(), + keystore.clone(), + // epoch_changes.clone(), + // babe_authorities, + ), + )), + ) + .replace_config::() + .into_rpc(), + )?; + + if let Some(filter_pool) = filter_pool { + io.merge( + EthFilter::new( + client.clone(), + frontier_backend.clone(), + graph.clone(), + filter_pool, + 500_usize, // max stored filters + max_past_logs, + block_data_cache.clone(), + ) + .into_rpc(), + )?; + } + + io.merge( + EthPubSub::new( + pool, + client.clone(), + sync, + subscription_task_executor, + overrides.clone(), + pubsub_notification_sinks, + ) + .into_rpc(), + )?; + + io.merge( + Net::new( + client.clone(), + network, + // Whether to format the `peer_count` response as Hex (default) or not. + true, + ) + .into_rpc(), + )?; + + io.merge(Web3::new(client.clone()).into_rpc())?; + + io.merge( + Debug::new( + client.clone(), + frontier_backend, + overrides, + block_data_cache, + ) + .into_rpc(), + )?; + + #[cfg(feature = "txpool")] + io.merge(TxPool::new(client, graph).into_rpc())?; + + Ok(io) +} diff --git a/node/src/lib.rs b/node/src/lib.rs index 4f5d4b8..8a9d39d 100644 --- a/node/src/lib.rs +++ b/node/src/lib.rs @@ -1,7 +1,52 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Substrate CLI library. +//! +//! This package has two Cargo features: +//! +//! - `cli` (default): exposes functions that parse command-line options, then start and run the +//! node as a CLI application. +//! +//! - `browser`: exposes the content of the `browser` module, which consists of exported symbols +//! that are meant to be passed through the `wasm-bindgen` utility and called from JavaScript. +//! Despite its name the produced WASM can theoretically also be used from NodeJS, although this +//! hasn't been tested. + +#![warn(missing_docs)] + +/// The main entry point of the CLI. pub mod chain_spec; + +#[macro_use] pub mod service; -pub mod rpc; -pub mod eth; -#[cfg(feature = "cli")] + +#[cfg(feature = "cli")] mod cli; +#[cfg(feature = "cli")] mod command; +#[cfg(feature = "cli")] +pub mod rpc; + +#[cfg(feature = "cli")] +pub use cli::*; +#[cfg(feature = "cli")] +pub use command::*; + +#[cfg(feature = "cli")] +mod eth; diff --git a/node/src/main.rs b/node/src/main.rs index fafe31a..aa8b772 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -6,9 +6,9 @@ mod chain_spec; mod service; mod cli; mod command; -mod rpc; mod eth; +mod rpc; fn main() -> sc_cli::Result<()> { - command::run() + command::run() } diff --git a/node/src/rpc.rs b/node/src/rpc.rs new file mode 100644 index 0000000..9968195 --- /dev/null +++ b/node/src/rpc.rs @@ -0,0 +1,245 @@ +//! A collection of node-specific RPC methods. +//! +//! Since `substrate` core functionality makes no assumptions +//! about the modules used inside the runtime, so do +//! RPC methods defined in `sc-rpc` crate. +//! It means that `client/rpc` can't have any methods that +//! need some strong assumptions about the particular runtime. +//! +//! The RPCs available in this crate however can make some assumptions +//! about how the runtime is constructed and what FRAME pallets +//! are part of it. Therefore all node-runtime-specific RPCs can +//! be placed here or imported from corresponding FRAME RPC definitions. + +#![warn(missing_docs)] +use std::sync::Arc; + +use clover_primitives::{AccountId, Balance, Block, BlockNumber, Hash, Index}; +use futures::channel::mpsc; +use jsonrpsee::RpcModule; +use sc_client_api::{AuxStore, BlockchainEvents, StorageProvider, UsageProvider}; +use sc_consensus_babe::BabeWorkerHandle; +use sc_consensus_grandpa::{ + FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, +}; +use sc_consensus_manual_seal::EngineCommand; +use sc_rpc::SubscriptionTaskExecutor; +pub use sc_rpc_api::DenyUnsafe; +use sc_transaction_pool::ChainApi; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_consensus::SelectChain; +use sp_consensus_babe::BabeApi; +use sp_inherents::CreateInherentDataProviders; +use sp_keystore::KeystorePtr; +use sp_runtime::traits::Block as BlockT; + +use crate::eth::EthDeps; + +/// Default Eth configuration. +pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); + +impl fc_rpc::EthConfig for DefaultEthConfig +where + C: StorageProvider + Sync + Send + 'static, + BE: sc_client_api::Backend + 'static, +{ + type EstimateGasAdapter = (); + type RuntimeStorageOverride = + fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; +} +/// Extra dependencies for BABE. +pub struct BabeDeps { + /// A handle to the BABE worker for issuing requests. + pub babe_worker_handle: BabeWorkerHandle, + /// The keystore that manages the keys of the node. + pub keystore: KeystorePtr, +} + +/// Extra dependencies for GRANDPA +pub struct GrandpaDeps { + /// Voting round info. + pub shared_voter_state: SharedVoterState, + /// Authority set info. + pub shared_authority_set: SharedAuthoritySet, + /// Receives notifications about justification events from Grandpa. + pub justification_stream: GrandpaJustificationStream, + /// Executor to drive the subscription manager in the Grandpa RPC handler. + pub subscription_executor: SubscriptionTaskExecutor, + /// Finality proof provider. + pub finality_provider: Arc>, +} + +/// Full client dependencies. +pub struct FullDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// The SelectChain Strategy + pub select_chain: SC, + /// A copy of the chain spec. + pub chain_spec: Box, + /// Whether to deny unsafe calls + pub deny_unsafe: DenyUnsafe, + /// BABE specific dependencies. + pub babe: BabeDeps, + /// GRANDPA specific dependencies. + pub grandpa: GrandpaDeps, + /// Shared statement store reference. + pub statement_store: Arc, + /// The backend used by the node. + pub backend: Arc, + /// Manual seal command sink + pub command_sink: Option>>, + /// Ethereum-compatibility specific dependencies. + pub eth: EthDeps, +} + +/// Instantiate all Full RPC extensions. +pub fn create_full( + FullDeps { + client, + pool, + select_chain, + chain_spec, + deny_unsafe, + babe, + grandpa, + statement_store, + backend, + command_sink, + eth, + }: FullDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result, Box> +where + C: ProvideRuntimeApi + + sc_client_api::BlockBackend + + HeaderBackend + + StorageProvider + + UsageProvider + + AuxStore + + HeaderMetadata + + CallApiAt + + BlockchainEvents + + Sync + + Send + + 'static, + C::Api: substrate_frame_rpc_system::AccountNonceApi, + // C::Api: mmr_rpc::MmrRuntimeApi::Hash, BlockNumber>, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: BabeApi, + C::Api: BlockBuilder, + C::Api: fp_rpc::ConvertTransactionRuntimeApi, + C::Api: fp_rpc::EthereumRuntimeRPCApi, + P: TransactionPool + 'static, + SC: SelectChain + 'static, + B: sc_client_api::Backend + Send + Sync + 'static, + B::State: sc_client_api::backend::StateBackend>, + A: ChainApi + 'static, + CIDP: CreateInherentDataProviders + Send + 'static, + CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, +{ + // use mmr_rpc::{Mmr, MmrApiServer}; + use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use sc_consensus_babe_rpc::{Babe, BabeApiServer}; + use sc_consensus_grandpa_rpc::{Grandpa, GrandpaApiServer}; + use sc_rpc::dev::{Dev, DevApiServer}; + use sc_rpc::statement::StatementApiServer; + use sc_rpc_spec_v2::chain_spec::{ChainSpec, ChainSpecApiServer}; + use sc_sync_state_rpc::{SyncState, SyncStateApiServer}; + use substrate_frame_rpc_system::{System, SystemApiServer}; + use substrate_state_trie_migration_rpc::{StateMigration, StateMigrationApiServer}; + + let mut io = RpcModule::new(()); + + let BabeDeps { + keystore, + babe_worker_handle, + } = babe; + let GrandpaDeps { + shared_voter_state, + shared_authority_set, + justification_stream, + subscription_executor, + finality_provider, + } = grandpa; + + let chain_name = chain_spec.name().to_string(); + let genesis_hash = client + .block_hash(0) + .ok() + .flatten() + .expect("Genesis block exists; qed"); + let properties = chain_spec.properties(); + io.merge(ChainSpec::new(chain_name, genesis_hash, properties).into_rpc())?; + + io.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; + // Making synchronous calls in light client freezes the browser currently, + // more context: https://github.com/paritytech/substrate/pull/3480 + // These RPCs should use an asynchronous caller instead. + // io.merge( + // Mmr::new( + // client.clone(), + // backend + // .offchain_storage() + // .ok_or_else(|| "Backend doesn't provide an offchain storage")?, + // ) + // .into_rpc(), + // )?; + io.merge(TransactionPayment::new(client.clone()).into_rpc())?; + io.merge( + Babe::new( + client.clone(), + babe_worker_handle.clone(), + keystore, + select_chain, + deny_unsafe, + ) + .into_rpc(), + )?; + io.merge( + Grandpa::new( + subscription_executor, + shared_authority_set.clone(), + shared_voter_state, + justification_stream, + finality_provider, + ) + .into_rpc(), + )?; + + io.merge( + SyncState::new( + chain_spec, + client.clone(), + shared_authority_set, + babe_worker_handle, + )? + .into_rpc(), + )?; + + io.merge(StateMigration::new(client.clone(), backend, deny_unsafe).into_rpc())?; + io.merge(Dev::new(client, deny_unsafe).into_rpc())?; + let statement_store = + sc_rpc::statement::StatementStore::new(statement_store, deny_unsafe).into_rpc(); + io.merge(statement_store)?; + + // Ethereum compatibility RPCs + let io = crate::eth::create_eth::>( + io, + eth, + subscription_task_executor, + pubsub_notification_sinks, + )?; + + Ok(io) +} diff --git a/node/src/rpc/eth.rs b/node/src/rpc/eth.rs deleted file mode 100644 index 9628c63..0000000 --- a/node/src/rpc/eth.rs +++ /dev/null @@ -1,202 +0,0 @@ -use jsonrpsee::RpcModule; -use std::collections::BTreeMap; -use std::sync::Arc; -// Substrate -use sc_client_api::backend::{Backend, StorageProvider}; -use sc_client_api::client::BlockchainEvents; -use sc_client_api::{AuxStore, UsageProvider}; -use sc_consensus_babe::BabeApi; -use sc_network::service::traits::NetworkService; -use sc_network_sync::SyncingService; -use sc_rpc::SubscriptionTaskExecutor; -use sc_transaction_pool::{ChainApi, FullChainApi, Pool}; -use sp_api::{CallApiAt, ProvideRuntimeApi}; -use sp_block_builder::BlockBuilder as BlockBuilderApi; -use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sp_core::H256; -use sp_inherents::CreateInherentDataProviders; -use sp_runtime::traits::Block as BlockT; -// Frontier -pub use fc_rpc::{EthBlockDataCacheTask, EthConfig}; -pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; -use fc_storage::StorageOverride; -use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; - -/// Extra dependencies for Ethereum compatibility. -pub struct EthDeps { - /// The client instance to use. - pub client: Arc, - /// Transaction pool instance. - pub pool: Arc

, - /// Graph pool instance. - pub graph: Arc>, - /// Ethereum transaction converter. - pub converter: Option, - /// The Node authority flag - pub is_authority: bool, - /// Whether to enable dev signer - pub enable_dev_signer: bool, - /// Network service - pub network: Arc, - /// Chain syncing service - pub sync: Arc>, - /// Frontier Backend. - pub frontier_backend: Arc>, - /// Ethereum data access overrides. - pub storage_override: Arc>, - /// Cache for Ethereum block data. - pub block_data_cache: Arc>, - /// EthFilterApi pool. - pub filter_pool: Option, - /// Maximum number of logs in a query. - pub max_past_logs: u32, - /// Fee history cache. - pub fee_history_cache: FeeHistoryCache, - /// Maximum fee history cache size. - pub fee_history_cache_limit: FeeHistoryCacheLimit, - /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when - /// using eth_call/eth_estimateGas. - pub execute_gas_limit_multiplier: u64, - /// Mandated parent hashes for a given block hash. - pub forced_parent_hashes: Option>, - /// Something that can create the inherent data providers for pending state - pub pending_create_inherent_data_providers: CIDP, -} - -/// Instantiate Ethereum-compatible RPC extensions. -pub fn create_eth( - mut io: RpcModule<()>, - deps: EthDeps, - subscription_task_executor: SubscriptionTaskExecutor, - pubsub_notification_sinks: Arc< - fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - >, - >, -) -> Result, Box> -where - B: BlockT, - C: CallApiAt + ProvideRuntimeApi, - C::Api: BabeApi - + BlockBuilderApi - + ConvertTransactionRuntimeApi - + EthereumRuntimeRPCApi, - C: HeaderBackend + HeaderMetadata, - C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, - BE: Backend + 'static, - P: polkadot_sdk::sc_transaction_pool_api::TransactionPool + 'static, - A: ChainApi + 'static, - CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, - CIDP: CreateInherentDataProviders + Send + 'static, - EC: EthConfig, -{ - use fc_rpc::{ - Debug, DebugApiServer, Eth, EthApiServer, EthDevSigner, EthFilter, EthFilterApiServer, - EthPubSub, EthPubSubApiServer, EthSigner, Net, NetApiServer, Web3, Web3ApiServer, - }; - #[cfg(feature = "txpool")] - use fc_rpc::{TxPool, TxPoolApiServer}; - - let EthDeps { - client, - pool, - graph, - converter, - is_authority, - enable_dev_signer, - network, - sync, - frontier_backend, - storage_override, - block_data_cache, - filter_pool, - max_past_logs, - fee_history_cache, - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes, - pending_create_inherent_data_providers, - } = deps; - - let mut signers = Vec::new(); - if enable_dev_signer { - signers.push(Box::new(EthDevSigner::new()) as Box); - } - - io.merge( - Eth::::new( - client.clone(), - pool.clone(), - graph.clone(), - converter, - sync.clone(), - signers, - storage_override.clone(), - frontier_backend.clone(), - is_authority, - block_data_cache.clone(), - fee_history_cache, - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes, - pending_create_inherent_data_providers, - None, - ) - .replace_config::() - .into_rpc(), - )?; - - if let Some(filter_pool) = filter_pool { - io.merge( - EthFilter::new( - client.clone(), - frontier_backend.clone(), - graph.clone(), - filter_pool, - 500_usize, // max stored filters - max_past_logs, - block_data_cache.clone(), - ) - .into_rpc(), - )?; - } - - io.merge( - EthPubSub::new( - pool, - client.clone(), - sync, - subscription_task_executor, - storage_override.clone(), - pubsub_notification_sinks, - ) - .into_rpc(), - )?; - - io.merge( - Net::new( - client.clone(), - network, - // Whether to format the `peer_count` response as Hex (default) or not. - true, - ) - .into_rpc(), - )?; - - io.merge(Web3::new(client.clone()).into_rpc())?; - - io.merge( - Debug::new( - client.clone(), - frontier_backend, - storage_override, - block_data_cache, - ) - .into_rpc(), - )?; - - #[cfg(feature = "txpool")] - io.merge(TxPool::new(client, graph).into_rpc())?; - - Ok(io) -} diff --git a/node/src/rpc/mod.rs b/node/src/rpc/mod.rs deleted file mode 100644 index 651e381..0000000 --- a/node/src/rpc/mod.rs +++ /dev/null @@ -1,231 +0,0 @@ -//! A collection of node-specific RPC methods. -//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer -//! used by Substrate nodes. This file extends those RPC definitions with -//! capabilities that are specific to this project's runtime configuration. - -#![warn(missing_docs)] -use std::sync::Arc; - -use clover_primitives::{AccountId, Balance, Hash, Index}; -use jsonrpc_pubsub::manager::SubscriptionManager; -use jsonrpsee::RpcModule; -use sc_client_api::backend::Backend; -use sc_client_api::{AuxStore, BlockchainEvents, StorageProvider, UsageProvider}; -use sc_consensus_grandpa::{ - BlockNumberOps, FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, - SharedVoterState, -}; -use sc_consensus_manual_seal::rpc::{ManualSeal, ManualSealApiServer}; -use sc_network::service::traits::NetworkService; -pub use sc_rpc::SubscriptionTaskExecutor; -pub use sc_rpc_api::DenyUnsafe; -use sc_transaction_pool::ChainApi; -use serde_json::Number; -use sp_api::{CallApiAt, ProvideRuntimeApi}; -use sp_block_builder::BlockBuilder; -use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sp_consensus::SelectChain; -use sp_consensus_babe::BabeApi; -use sp_inherents::CreateInherentDataProviders; -use sp_keystore::KeystorePtr; -use sp_runtime::traits::{Block as BlockT, NumberFor}; - -use crate::rpc::eth::create_eth; -use crate::service::{FullBackend, FullFrontierBackend}; - -use self::eth::EthDeps; - -/// ETH RPC module -pub mod eth; - -/// Extra dependencies for BABE. -pub struct BabeDeps { - /// The keystore that manages the keys of the node. - pub keystore: KeystorePtr, - /// A handle to the BABE worker for issuing requests. - pub babe_worker_handle: sc_consensus_babe::BabeWorkerHandle, -} - -/// Extra dependencies for GRANDPA -pub struct GrandpaDeps { - /// Voting round info. - pub shared_voter_state: SharedVoterState, - /// Authority set info. - pub shared_authority_set: SharedAuthoritySet>, - /// Receives notifications about justification events from Grandpa. - pub justification_stream: GrandpaJustificationStream, - /// Subscription manager to keep track of pubsub subscribers. - pub subscription_executor: SubscriptionTaskExecutor, - /// Finality proof provider. - pub finality_provider: Arc>, -} - -/// Full client dependencies. -pub struct FullDeps { - /// The client instance to use. - pub client: Arc, - /// Transaction pool instance. - pub pool: Arc

, - /// The SelectChain Strategy - pub select_chain: SC, - /// A copy of the chain spec. - pub chain_spec: Box, - /// Whether to deny unsafe calls - pub deny_unsafe: DenyUnsafe, - /// BABE specific dependencies. - pub babe: Option>, - /// GRANDPA specific dependencies. - pub grandpa: GrandpaDeps, - /// The backend used by the node. - pub backend: Arc, - /// Maximum number of logs in a query. - pub max_past_logs: u32, - /// The Node authority flag - pub is_authority: bool, - /// Network service - pub network: Arc, - /// Manual seal command sink - pub command_sink: - Option>>, - /// Eth deps - pub eth: EthDeps, -} - -/// Default ETH config -pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); - -impl fc_rpc::EthConfig for DefaultEthConfig -where - B: BlockT, - C: StorageProvider + Sync + Send + 'static, - BE: Backend + 'static, -{ - type EstimateGasAdapter = (); - type RuntimeStorageOverride = - fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; -} - -/// Instantiate all Full RPC extensions. -pub fn create_full( - deps: FullDeps, - subscription_task_executor: SubscriptionTaskExecutor, - pubsub_notification_sinks: Arc< - fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - >, - >, -) -> Result, Box> -where - B: BlockT, - NumberFor: BlockNumberOps, - C: CallApiAt + ProvideRuntimeApi, - C::Api: sp_block_builder::BlockBuilder, - C::Api: sp_consensus_babe::BabeApi, - C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, - C::Api: fp_rpc::ConvertTransactionRuntimeApi, - C::Api: fp_rpc::EthereumRuntimeRPCApi, - C::Api: BabeApi, - C: HeaderBackend + HeaderMetadata + 'static, - C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider, - SC: SelectChain + 'static, - BE: Backend + Send + Sync + 'static, - BE::State: sc_client_api::backend::StateBackend>, - P: sc_service::TransactionPool + 'static, - A: ChainApi + 'static, - CIDP: CreateInherentDataProviders + Send + 'static, - CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, -{ - use fc_rpc::{EthDevSigner, EthFilter, EthPubSub, EthPubSubApiServer, EthSigner, Net, Web3}; - use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; - use sc_consensus_babe_rpc::{Babe, BabeApiServer}; - use sc_consensus_grandpa_rpc::{Grandpa, GrandpaApiServer}; - use sc_sync_state_rpc::{SyncState, SyncStateApiServer}; - use substrate_frame_rpc_system::{System, SystemApiServer}; - - let mut io = RpcModule::new(()); - - let FullDeps { - client, - pool, - select_chain, - chain_spec, - deny_unsafe, - babe, - grandpa, - network, - backend, - max_past_logs, - is_authority, - command_sink, - eth, - } = deps; - - let GrandpaDeps { - shared_voter_state, - shared_authority_set, - justification_stream, - subscription_executor, - finality_provider, - } = grandpa; - - io.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; - io.merge(TransactionPayment::new(client.clone()).into_rpc())?; - - // io.merge(ContractsApi::to_delegate(Contracts::new(client.clone()))); - if let Some(BabeDeps { - babe_worker_handle, - keystore, - }) = babe - { - io.merge( - Babe::new( - client.clone(), - babe_worker_handle.clone(), - keystore, - select_chain, - deny_unsafe, - ) - .into_rpc(), - )?; - - io.merge( - SyncState::new( - chain_spec, - client.clone(), - shared_authority_set.clone(), - babe_worker_handle, - )? - .into_rpc(), - )?; - } - - io.merge( - Grandpa::new( - subscription_executor, - shared_authority_set.clone(), - shared_voter_state, - justification_stream, - finality_provider, - ) - .into_rpc(), - )?; - - // The final RPC extension receives commands for the manual seal consensus engine. - if let Some(command_sink) = command_sink { - io.merge( - // We provide the rpc handler with the sending end of the channel to allow the rpc - // send EngineCommands to the background block authorship task. - ManualSeal::new(command_sink).into_rpc(), - )?; - } - - let io = create_eth::<_, _, _, _, _, _, _, DefaultEthConfig>( - io, - eth, - subscription_task_executor, - pubsub_notification_sinks, - )?; - - Ok(io) -} diff --git a/node/src/service.rs b/node/src/service.rs index fcef41e..3c5c02d 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,876 +1,1041 @@ -//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. - -use std::{collections::{BTreeMap, HashMap}, path::Path, sync::{Arc, Mutex}, time::Duration}; -use parity_scale_codec::Codec; -use polkadot_sdk::sc_transaction_pool_api::OffchainTransactionPoolFactory; -use polkadot_sdk::sc_offchain; -use sc_client_api::{ExecutorProvider, BlockchainEvents}; -use fc_rpc_core::types::FilterPool; -use fc_rpc::EthTask; -use clover_runtime::{self, RuntimeApi, TransactionConverter, opaque::Block}; -use sc_consensus::BasicQueue; -use sc_consensus_babe::{BabeWorkerHandle, SlotProportion}; -use sc_consensus_grandpa::BlockNumberOps; -use sc_executor::{HostFunctions as HostFunctionsT, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; -use sc_network::{service::traits::NetworkService, Event}; -use sc_network_sync::SyncingService; -use sc_service::{error::Error as ServiceError, BasePath, Configuration, PartialComponents, RpcHandlers, TaskManager}; -use sp_api::ConstructRuntimeApi; -use sp_core::H256; -use sp_inherents::InherentDataProvider; -use sc_client_api::Backend; -use sp_runtime::traits::{Block as BlockT, MaybeDisplay, NumberFor, Zero}; -use sc_cli::SubstrateCli; -use sc_telemetry::{Telemetry, TelemetryConnectionNotifier, TelemetryWorker}; -use fc_mapping_sync::kv::MappingSyncWorker; -use sc_client_api::BlockBackend; -use futures::channel::mpsc::Receiver; -use futures::StreamExt; -use futures::prelude::*; -use sc_consensus_manual_seal::{EngineCommand, ManualSealParams}; -use clover_primitives::{Hash, AccountId, Index, Balance}; -pub use crate::eth::{db_config_dir, EthConfiguration}; -use crate:: - eth::{ - new_frontier_partial, spawn_frontier_tasks, BackendType, EthCompatRuntimeApiCollection, - FrontierBackend, FrontierBlockImport, FrontierPartialComponents, StorageOverride, - StorageOverrideHandler, - }; +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#![warn(unused_extern_crates)] + +//! Service implementation. Specialized wrapper over substrate service. use crate::cli::Cli; +use crate::eth::{ + db_config_dir, new_frontier_partial, spawn_frontier_tasks, BackendType, EthConfiguration, + EthDeps, FrontierBackend, FrontierPartialComponents, +}; +use clover_primitives::Block; +use clover_runtime::{RuntimeApi, TransactionConverter}; +use fc_rpc::OverrideHandle; +use fc_storage::overrides_handle; +use frame_benchmarking_cli::*; +use futures::prelude::*; +use sc_client_api::{Backend, BlockBackend}; +use sc_consensus_babe::{self, BabeWorkerHandle, SlotProportion}; +use sc_consensus_grandpa as grandpa; +use sc_executor::{NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; +use sc_network::event::Event; +use sc_network::{NetworkEventStream, NetworkService}; +use sc_network_sync::warp::WarpSyncParams; +use sc_network_sync::SyncingService; +use sc_rpc::SubscriptionTaskExecutor; +use sc_service::config::Configuration; +use sc_service::error::Error as ServiceError; +use sc_service::{RpcHandlers, TaskManager}; +use sc_statement_store::Store as StatementStore; +use sc_telemetry::{Telemetry, TelemetryWorker}; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; +use sp_runtime::traits::Block as BlockT; +use std::path::Path; +use std::sync::Arc; + /// Only enable the benchmarking host functions when we actually want to benchmark. #[cfg(feature = "runtime-benchmarks")] pub type HostFunctions = ( - sp_io::SubstrateHostFunctions, - frame_benchmarking::benchmarking::HostFunctions, + sp_io::SubstrateHostFunctions, + frame_benchmarking::benchmarking::HostFunctions, ); /// Otherwise we use empty host functions for ext host functions. #[cfg(not(feature = "runtime-benchmarks"))] pub type HostFunctions = sp_io::SubstrateHostFunctions; -/// Full frontier backend. -pub type FullFrontierBackend = fc_db::Backend>; - -/// A specialized `WasmExecutor` intended to use across substrate node. It provides all required -/// HostFunctions. -pub type RuntimeExecutor = sc_executor::WasmExecutor; - -/// Full backend. -pub type FullBackend = sc_service::TFullBackend; - -/// Full client. -pub type FullClient = sc_service::TFullClient>; -type FullSelectChain = sc_consensus::LongestChain, B>; - -type FullGrandpaBlockImport = - sc_consensus_grandpa::GrandpaBlockImport, B, FullClient, FullSelectChain>; -type FullFrontierBlockImport = fc_consensus::FrontierBlockImport, FullClient>; - -/// A set of APIs that every runtime must implement. -pub trait BaseRuntimeApiCollection: - sp_api::ApiExt - + sp_api::Metadata - + sp_block_builder::BlockBuilder - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_authority_discovery::AuthorityDiscoveryApi - + sp_consensus_grandpa::GrandpaApi - + sp_consensus_babe::BabeApi - { - } - -impl BaseRuntimeApiCollection for Api -where - Block: BlockT, - Api: sp_api::ApiExt - + sp_api::Metadata - + sp_block_builder::BlockBuilder - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_authority_discovery::AuthorityDiscoveryApi - + sp_consensus_grandpa::GrandpaApi - + sp_consensus_babe::BabeApi -{ -} - +/// The full client type definition. +pub type FullClient = sc_service::TFullClient>; +pub(crate) type FullBackend = sc_service::TFullBackend; +type FullSelectChain = sc_consensus::LongestChain; +type FullGrandpaBlockImport = + grandpa::GrandpaBlockImport; /// The transaction pool type definition. -pub type TransactionPool = sc_transaction_pool::FullPool>; +pub type TransactionPool = sc_transaction_pool::FullPool; + +/// Declare an instance of the native executor named `ExecutorDispatch`. Include the wasm binary as +/// the equivalent wasm code. +pub struct ExecutorDispatch; + +impl sc_executor::NativeExecutionDispatch for ExecutorDispatch { + type ExtendHostFunctions = (sp_statement_store::runtime_api::HostFunctions,); + + fn dispatch(method: &str, data: &[u8]) -> Option> { + clover_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + clover_runtime::native_version() + } +} /// The minimum period of blocks on which justifications will be /// imported and generated. const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; -pub fn new_partial( - config: &Configuration, - cli: &Cli, -) -> Result, - FullBackend, - FullSelectChain, - sc_consensus::DefaultImportQueue, - sc_transaction_pool::FullPool>, - ( - ( - sc_consensus_babe::BabeBlockImport, FrontierBlockImport, FullClient>>, - sc_consensus_grandpa::LinkHalf, FullSelectChain>, - sc_consensus_babe::BabeLink, - ), - ( - Option, - FullFrontierBackend, - FrontierBlockImport< - B, - FullGrandpaBlockImport, - FullClient, - >, - Arc>, - Option, - Option> - ), - ) ->, ServiceError> - where - B: BlockT, - NumberFor: BlockNumberOps, - RA: ConstructRuntimeApi>, - RA: Send + Sync + 'static, - RA::RuntimeApi: BaseRuntimeApiCollection + EthCompatRuntimeApiCollection, - HF: HostFunctionsT + 'static, -{ - let eth_config = &cli.run.eth; - let telemetry = config - .telemetry_endpoints - .clone() - .filter(|x| !x.is_empty()) - .map(|endpoints| -> Result<_, sc_telemetry::Error> { - let worker = TelemetryWorker::new(16)?; - let telemetry = worker.handle().new_telemetry(endpoints); - Ok((worker, telemetry)) - }) - .transpose()?; - - // let executor = sc_service::new_wasm_executor(&config); - let executor = { - let strategy = config.default_heap_pages.map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |p| sc_executor::HeapAllocStrategy::Static { extra_pages: p as _ }); - WasmExecutor::::builder() - .with_execution_method(config.wasm_method) - .with_onchain_heap_alloc_strategy(strategy) - .with_offchain_heap_alloc_strategy(strategy) - .with_max_runtime_instances(config.max_runtime_instances) - .with_runtime_cache_size(config.runtime_cache_size) - .with_allow_missing_host_functions(true) - .build() - }; - - let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::(&config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - )?; - let client = Arc::new(client); - - let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", None, worker.run()); - telemetry - }); - - let select_chain = sc_consensus::LongestChain::new(backend.clone()); - - let transaction_pool = sc_transaction_pool::BasicPool::new_full( - config.transaction_pool.clone(), - config.role.is_authority().into(), - config.prometheus_registry(), - task_manager.spawn_essential_handle(), - client.clone(), - ); - - let filter_pool: Option - = Some(Arc::new(Mutex::new(BTreeMap::new()))); - - let (grandpa_block_import, grandpa_link) = sc_consensus_grandpa::block_import( - client.clone(), - GRANDPA_JUSTIFICATION_PERIOD, - &(client.clone() as Arc<_>), - select_chain.clone(), - telemetry.as_ref().map(|x| x.handle()), - )?; - - let justification_import = grandpa_block_import.clone(); - - let storage_override = Arc::new(StorageOverrideHandler::::new(client.clone())); - let frontier_backend = match eth_config.frontier_backend_type { - BackendType::KeyValue => FrontierBackend::KeyValue(Arc::new(fc_db::kv::Backend::open( - Arc::clone(&client), - &config.database, - &db_config_dir(config), - )?)), - BackendType::Sql => { - let db_path = db_config_dir(config).join("sql"); - std::fs::create_dir_all(&db_path).expect("failed creating sql db directory"); - let backend = futures::executor::block_on(fc_db::sql::Backend::new( - fc_db::sql::BackendConfig::Sqlite(fc_db::sql::SqliteBackendConfig { - path: Path::new("sqlite:///") - .join(db_path) - .join("frontier.db3") - .to_str() - .unwrap(), - create_if_missing: true, - thread_count: eth_config.frontier_sql_backend_thread_count, - cache_size: eth_config.frontier_sql_backend_cache_size, - }), - eth_config.frontier_sql_backend_pool_size, - std::num::NonZeroU32::new(eth_config.frontier_sql_backend_num_ops_timeout), - storage_override.clone(), - )) - .unwrap_or_else(|err| panic!("failed creating sql backend: {:?}", err)); - FrontierBackend::Sql(Arc::new(backend)) - } - }; - - let frontier_block_import = FrontierBlockImport::new( - grandpa_block_import.clone(), - client.clone(), +/// Creates a new partial node. +pub fn new_partial( + config: &Configuration, + eth_config: &EthConfiguration, +) -> Result< + sc_service::PartialComponents< + FullClient, + FullBackend, + FullSelectChain, + sc_consensus::DefaultImportQueue, + sc_transaction_pool::FullPool, + ( + ( + sc_consensus_babe::BabeBlockImport, + grandpa::LinkHalf, + sc_consensus_babe::BabeLink, + BabeWorkerHandle, + ), + Option, + Arc, + FrontierBackend, + Arc>, + ), + >, + ServiceError, +> { + let telemetry = config + .telemetry_endpoints + .clone() + .filter(|x| !x.is_empty()) + .map(|endpoints| -> Result<_, sc_telemetry::Error> { + let worker = TelemetryWorker::new(16)?; + let telemetry = worker.handle().new_telemetry(endpoints); + Ok((worker, telemetry)) + }) + .transpose()?; + + let executor = { + let strategy = config + .default_heap_pages + .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |p| { + sc_executor::HeapAllocStrategy::Static { + extra_pages: p as _, + } + }); + WasmExecutor::::builder() + .with_execution_method(config.wasm_method) + .with_onchain_heap_alloc_strategy(strategy) + .with_offchain_heap_alloc_strategy(strategy) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) + .with_allow_missing_host_functions(true) + .build() + }; + + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + )?; + let client = Arc::new(client); + + let telemetry = telemetry.map(|(worker, telemetry)| { + task_manager + .spawn_handle() + .spawn("telemetry", None, worker.run()); + telemetry + }); + + let select_chain = sc_consensus::LongestChain::new(backend.clone()); + + let transaction_pool = sc_transaction_pool::BasicPool::new_full( + config.transaction_pool.clone(), + config.role.is_authority().into(), + config.prometheus_registry(), + task_manager.spawn_essential_handle(), + client.clone(), ); - let (block_import, babe_link) = sc_consensus_babe::block_import( - sc_consensus_babe::configuration(&*client)?, - frontier_block_import.clone(), - client.clone(), - )?; - - let slot_duration = babe_link.config().slot_duration(); - - let (import_queue, babe_worker_handle) = if cli.run.manual_seal { - (sc_consensus_manual_seal::import_queue( - Box::new(frontier_block_import.clone()), - &task_manager.spawn_essential_handle(), - config.prometheus_registry(), - ), None) - } else { - let (import_queue, babe_worker_handle) = sc_consensus_babe::import_queue(sc_consensus_babe::ImportQueueParams { - link: babe_link.clone(), - block_import: block_import.clone(), - justification_import: Some(Box::new(justification_import)), - client: client.clone(), - select_chain: select_chain.clone(), - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = + let (grandpa_block_import, grandpa_link) = grandpa::block_import( + client.clone(), + GRANDPA_JUSTIFICATION_PERIOD, + &(client.clone() as Arc<_>), + select_chain.clone(), + telemetry.as_ref().map(|x| x.handle()), + )?; + let justification_import = grandpa_block_import.clone(); + + let (block_import, babe_link) = sc_consensus_babe::block_import( + sc_consensus_babe::configuration(&*client)?, + grandpa_block_import, + client.clone(), + )?; + + let slot_duration = babe_link.config().slot_duration(); + let (import_queue, babe_worker_handle) = + sc_consensus_babe::import_queue(sc_consensus_babe::ImportQueueParams { + link: babe_link.clone(), + block_import: block_import.clone(), + justification_import: Some(Box::new(justification_import)), + client: client.clone(), + select_chain: select_chain.clone(), + create_inherent_data_providers: move |_, ()| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( *timestamp, slot_duration, ); - Ok((slot, timestamp)) - }, - spawner: &task_manager.spawn_essential_handle(), - registry: config.prometheus_registry(), - telemetry: telemetry.as_ref().map(|x| x.handle()), - offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), - })?; - - ( - import_queue, - Some(babe_worker_handle) + Ok((slot, timestamp)) + }, + spawner: &task_manager.spawn_essential_handle(), + registry: config.prometheus_registry(), + telemetry: telemetry.as_ref().map(|x| x.handle()), + offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), + })?; + + let import_setup = (block_import, grandpa_link, babe_link, babe_worker_handle); + + let statement_store = sc_statement_store::Store::new_shared( + &config.data_path, + Default::default(), + client.clone(), + keystore_container.local_keystore(), + config.prometheus_registry(), + &task_manager.spawn_handle(), ) - }; - - let import_setup = (block_import, grandpa_link, babe_link); + .map_err(|e| ServiceError::Other(format!("Statement store error: {:?}", e)))?; + + let overrides = overrides_handle(client.clone()); + + let frontier_backend = match eth_config.frontier_backend_type { + BackendType::KeyValue => FrontierBackend::KeyValue(fc_db::kv::Backend::open( + Arc::clone(&client), + &config.database, + &db_config_dir(config), + )?), + BackendType::Sql => { + let db_path = db_config_dir(config).join("sql"); + std::fs::create_dir_all(&db_path).expect("failed creating sql db directory"); + let backend = futures::executor::block_on(fc_db::sql::Backend::new( + fc_db::sql::BackendConfig::Sqlite(fc_db::sql::SqliteBackendConfig { + path: Path::new("sqlite:///") + .join(db_path) + .join("frontier.db3") + .to_str() + .unwrap(), + create_if_missing: true, + thread_count: eth_config.frontier_sql_backend_thread_count, + cache_size: eth_config.frontier_sql_backend_cache_size, + }), + eth_config.frontier_sql_backend_pool_size, + std::num::NonZeroU32::new(eth_config.frontier_sql_backend_num_ops_timeout), + overrides.clone(), + )) + .unwrap_or_else(|err| panic!("failed creating sql backend: {:?}", err)); + FrontierBackend::Sql(backend) + } + }; - Ok(sc_service::PartialComponents { - client, backend, task_manager, keystore_container, select_chain, import_queue, transaction_pool, - other: (import_setup, (filter_pool, frontier_backend, frontier_block_import, storage_override, telemetry, babe_worker_handle)), - }) + Ok(sc_service::PartialComponents { + client, + backend, + task_manager, + keystore_container, + select_chain, + import_queue, + transaction_pool, + other: ( + import_setup, + telemetry, + statement_store, + frontier_backend, + overrides, + ), + }) } -/// Builds a new service for a full client. -pub async fn new_full_base( - mut config: Configuration, - cli: &Cli, - with_startup_data: impl FnOnce( - &sc_consensus_babe::BabeBlockImport, FullFrontierBlockImport>, - &sc_consensus_babe::BabeLink, - ) -) -> Result -where - B: BlockT + Unpin, - NumberFor: BlockNumberOps, - ::Header: Unpin, - RA: ConstructRuntimeApi>, - RA: Send + Sync + 'static, - RA::RuntimeApi: RuntimeApiCollection, - HF: HostFunctionsT + 'static, - NB: sc_network::NetworkBackend::Hash>, -{ - let eth_config = &cli.run.eth; - let manual_seal = cli.run.manual_seal; - - let role = config.role.clone(); - let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; - let auth_disc_public_addresses = config.network.public_addresses.clone(); - - let sc_service::PartialComponents { - client, backend, mut task_manager, import_queue, keystore_container, select_chain, transaction_pool, - other: (import_setup, (filter_pool, - frontier_backend,frontier_block_import, storage_override, telemetry, babe_worker_handle)), - } = new_partial(&config, cli)?; - - let FrontierPartialComponents { - filter_pool, - fee_history_cache, - fee_history_cache_limit, - } = new_frontier_partial(ð_config)?; - - let mut net_config = - sc_network::config::FullNetworkConfiguration::<_, _, NB>::new(&config.network); - - let genesis_hash = client.block_hash(Zero::zero()).ok().flatten().expect("Genesis block exists; qed"); - let peer_store_handle = net_config.peer_store_handle(); - - let metrics = NB::register_notification_metrics( - config.prometheus_config.as_ref().map(|cfg| &cfg.registry), - ); - let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name(&genesis_hash, &config.chain_spec); - - -// config.network.extra_sets.push(sc_consensus_grandpa::grandpa_peers_set_config( -// grandpa_protocol_name.clone(), -// metrics.clone(), -// Arc::clone(&peer_store_handle), -// )); - - // #[cfg(feature = "cli")] - // config.network.request_response_protocols.push(sc_finality_grandpa_warp_sync::request_response_config_for_chain( - // &config, task_manager.spawn_handle(), backend.clone(), - // )); - - - - let (grandpa_protocol_config, grandpa_notification_service) = - sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( - grandpa_protocol_name.clone(), - metrics.clone(), - Arc::clone(&peer_store_handle), - ); - net_config.add_notification_protocol(grandpa_protocol_config); - - let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( - backend.clone(), - import_setup.1.shared_authority_set().clone(), - Vec::default(), - )); - - let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: &config, - client: client.clone(), - net_config, - warp_sync_params: Some(sc_service::WarpSyncParams::WithProvider(warp_sync)), - transaction_pool: transaction_pool.clone(), - spawn_handle: task_manager.spawn_handle(), - import_queue, - block_announce_validator_builder: None, - block_relay: None, - metrics, - })?; - - let mixnet_protocol_name = - sc_mixnet::protocol_name(genesis_hash.as_ref(), config.chain_spec.fork_id()); - // let mixnet_notification_service = mixnet_config.as_ref().map(|mixnet_config| { - // let (config, notification_service) = sc_mixnet::peers_set_config::<_, N>( - // mixnet_protocol_name.clone(), - // mixnet_config, - // metrics.clone(), - // Arc::clone(&peer_store_handle), - // ); - // net_config.add_notification_protocol(config); - // notification_service - // }); - - // if let Some(mixnet_config) = mixnet_config { - // let mixnet = sc_mixnet::run( - // mixnet_config, - // mixnet_api_backend.expect("Mixnet API backend created if mixnet enabled"), - // client.clone(), - // sync_service.clone(), - // network.clone(), - // mixnet_protocol_name, - // transaction_pool.clone(), - // Some(keystore_container.keystore()), - // mixnet_notification_service - // .expect("`NotificationService` exists since mixnet was enabled; qed"), - // ); - // task_manager.spawn_handle().spawn("mixnet", None, mixnet); - // } - - if config.offchain_worker.enabled { - task_manager.spawn_handle().spawn( - "offchain-workers-runner", - "offchain-work", - sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { - runtime_api_provider: client.clone(), - keystore: Some(keystore_container.keystore()), - offchain_db: backend.offchain_storage(), - transaction_pool: Some(OffchainTransactionPoolFactory::new( - transaction_pool.clone(), - )), - network_provider: Arc::new(network.clone()), - is_validator: role.is_authority(), - enable_http_requests: true, - custom_extensions: move |_| { vec![] }, - }) - .run(client.clone(), task_manager.spawn_handle()) - .boxed(), - ); - } - - let role = config.role.clone(); - let force_authoring = config.force_authoring; - let backoff_authoring_blocks = - Some(sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging::default()); - let name = config.network.node_name.clone(); - let frontier_backend = Arc::new(frontier_backend); - let enable_grandpa = !config.disable_grandpa; - let prometheus_registry = config.prometheus_registry().cloned(); - - let network_clone = network.clone(); - - let (_, grandpa_link, babe_link) = &import_setup; - let keystore = keystore_container.keystore(); - let shared_authority_set = grandpa_link.shared_authority_set().clone(); - let justification_stream = grandpa_link.justification_stream(); - let shared_voter_state = sc_consensus_grandpa::SharedVoterState::empty(); - - // Sinks for pubsub notifications. - // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. - // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. - // This way we avoid race conditions when using native substrate block import notification stream. - let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - > = Default::default(); - let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); - - let (command_sink, commands_stream) = futures::channel::mpsc::channel(1000); - - let rpc_builder = { - let client = client.clone(); - let backend = backend.clone(); - let select_chain = select_chain.clone(); - let pool = transaction_pool.clone(); - let network = network.clone(); - let sync_service = sync_service.clone(); - let chain_spec = config.chain_spec.cloned_box(); - let shared_voter_state = shared_voter_state.clone(); - - let is_authority = role.is_authority(); - let enable_dev_signer = eth_config.enable_dev_signer; - let max_past_logs = eth_config.max_past_logs; - let execute_gas_limit_multiplier = eth_config.execute_gas_limit_multiplier; - let filter_pool = filter_pool.clone(); - let frontier_backend = frontier_backend.clone(); - let pubsub_notification_sinks = pubsub_notification_sinks.clone(); - let storage_override = storage_override.clone(); - let fee_history_cache = fee_history_cache.clone(); - let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( - task_manager.spawn_handle(), - storage_override.clone(), - eth_config.eth_log_block_cache, - eth_config.eth_statuses_cache, - prometheus_registry.clone(), - )); - - let slot_duration = babe_link.config().slot_duration(); - let target_gas_price = eth_config.target_gas_price; - let pending_create_inherent_data_providers = move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = - sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); +/// Result of [`new_full_base`]. +pub struct NewFullBase { + /// The task manager of the node. + pub task_manager: TaskManager, + /// The client instance of the node. + pub client: Arc, + /// The networking service of the node. + pub network: Arc::Hash>>, + /// The syncing service of the node. + pub sync: Arc>, + /// The transaction pool of the node. + pub transaction_pool: Arc, + /// The rpc handlers of the node. + pub rpc_handlers: RpcHandlers, +} - Ok((slot, timestamp)) - }; +/// Creates a full service from the configuration. +pub async fn new_full_base( + config: Configuration, + eth_config: EthConfiguration, + disable_hardware_benchmarks: bool, + with_startup_data: impl FnOnce( + &sc_consensus_babe::BabeBlockImport, + &sc_consensus_babe::BabeLink, + ), +) -> Result { + let hwbench = (!disable_hardware_benchmarks) + .then_some(config.database.path().map(|database_path| { + let _ = std::fs::create_dir_all(&database_path); + sc_sysinfo::gather_hwbench(Some(database_path)) + })) + .flatten(); + + let sc_service::PartialComponents { + client, + backend, + mut task_manager, + import_queue, + keystore_container, + select_chain, + transaction_pool, + other: (import_setup, mut telemetry, statement_store, frontier_backend, overrides), + } = new_partial(&config, ð_config)?; + + let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; + let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + + let grandpa_protocol_name = grandpa::protocol_standard_name( + &client + .block_hash(0) + .ok() + .flatten() + .expect("Genesis block exists; qed"), + &config.chain_spec, + ); + net_config.add_notification_protocol(grandpa::grandpa_peers_set_config( + grandpa_protocol_name.clone(), + )); + + let statement_handler_proto = sc_network_statement::StatementHandlerPrototype::new( + client + .block_hash(0u32.into()) + .ok() + .flatten() + .expect("Genesis block exists; qed"), + config.chain_spec.fork_id(), + ); + net_config.add_notification_protocol(statement_handler_proto.set_config()); - Box::new(move |deny_unsafe, subscription_task_executor: sc_rpc::SubscriptionTaskExecutor| { - let eth_deps = crate::rpc::eth::EthDeps { - client: client.clone(), - pool: pool.clone(), - graph: pool.pool().clone(), - converter: Some(TransactionConverter::::default()), - is_authority, - enable_dev_signer, - network: network.clone(), - sync: sync_service.clone(), - frontier_backend: match &*frontier_backend { - fc_db::Backend::KeyValue(b) => b.clone(), - fc_db::Backend::Sql(b) => b.clone(), - }, - storage_override: storage_override.clone(), - block_data_cache: block_data_cache.clone(), - filter_pool: filter_pool.clone(), - max_past_logs, - fee_history_cache: fee_history_cache.clone(), - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes: None, - pending_create_inherent_data_providers, - }; - - let finality_proof_provider = sc_consensus_grandpa::FinalityProofProvider::new_for_service( + let warp_sync = Arc::new(grandpa::warp_proof::NetworkProvider::new( backend.clone(), - Some(shared_authority_set.clone()), - ); + import_setup.1.shared_authority_set().clone(), + Vec::default(), + )); + + let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = + sc_service::build_network(sc_service::BuildNetworkParams { + config: &config, + net_config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + block_announce_validator_builder: None, + warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), + block_relay: None, + })?; + + let role = config.role.clone(); + let force_authoring = config.force_authoring; + let backoff_authoring_blocks = + Some(sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging::default()); + let name = config.network.node_name.clone(); + let enable_grandpa = !config.disable_grandpa; + let prometheus_registry = config.prometheus_registry().cloned(); + let enable_offchain_worker = config.offchain_worker.enabled; + + // Sinks for pubsub notifications. + // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. + // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. + // This way we avoid race conditions when using native substrate block import notification stream. + let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + > = Default::default(); + let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); + + let FrontierPartialComponents { + filter_pool, + fee_history_cache, + fee_history_cache_limit, + } = new_frontier_partial(ð_config)?; + + let (block_import, grandpa_link, babe_link, babe_worker_handle) = import_setup; + + let (rpc_builder, shared_voter_state) = { + let babe_link = babe_link.clone(); + let justification_stream = grandpa_link.justification_stream(); + let shared_authority_set = grandpa_link.shared_authority_set().clone(); + let shared_voter_state = grandpa::SharedVoterState::empty(); + let shared_voter_state2 = shared_voter_state.clone(); + let is_authority = role.is_authority(); + + let finality_proof_provider = grandpa::FinalityProofProvider::new_for_service( + backend.clone(), + Some(shared_authority_set.clone()), + ); + + let client = client.clone(); + let pool = transaction_pool.clone(); + let select_chain = select_chain.clone(); + let keystore = keystore_container.keystore(); + let chain_spec = config.chain_spec.cloned_box(); + let network = network.clone(); + let sync_service = sync_service.clone(); + + let rpc_backend = backend.clone(); + let rpc_statement_store = statement_store.clone(); + + // frontier stuff + let max_past_logs = eth_config.max_past_logs; + let execute_gas_limit_multiplier = eth_config.execute_gas_limit_multiplier; + let filter_pool = filter_pool.clone(); + let frontier_backend = frontier_backend.clone(); + let pubsub_notification_sinks = pubsub_notification_sinks.clone(); + let overrides = overrides.clone(); + let fee_history_cache = fee_history_cache.clone(); + let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( + task_manager.spawn_handle(), + overrides.clone(), + eth_config.eth_log_block_cache, + eth_config.eth_statuses_cache, + config.prometheus_registry().cloned(), + )); + + let slot_duration = babe_link.config().slot_duration(); + let pending_create_inherent_data_providers = move |_, ()| async move { + let current = sp_timestamp::InherentDataProvider::from_system_time(); + let next_slot = current.timestamp().as_millis() + slot_duration.as_millis(); + let timestamp = sp_timestamp::InherentDataProvider::new(next_slot.into()); + let slot = sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + // let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((slot, timestamp)) + }; + + let rpc_extensions_builder = + move |deny_unsafe, subscription_executor: SubscriptionTaskExecutor| { + let eth_deps = EthDeps { + client: client.clone(), + pool: pool.clone(), + graph: pool.pool().clone(), + converter: Some(TransactionConverter), + is_authority, + enable_dev_signer: eth_config.enable_dev_signer, + network: network.clone(), + sync: sync_service.clone(), + frontier_backend: match frontier_backend.clone() { + fc_db::Backend::KeyValue(b) => Arc::new(b), + fc_db::Backend::Sql(b) => Arc::new(b), + }, + overrides: overrides.clone(), + block_data_cache: block_data_cache.clone(), + filter_pool: filter_pool.clone(), + max_past_logs, + fee_history_cache: fee_history_cache.clone(), + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes: None, + pending_create_inherent_data_providers, + keystore: keystore.clone(), + epoch_changes: babe_link.epoch_changes().clone(), + babe_authorities: babe_link.config().authorities.clone(), + }; + let deps = crate::rpc::FullDeps { + client: client.clone(), + pool: pool.clone(), + select_chain: select_chain.clone(), + chain_spec: chain_spec.cloned_box(), + deny_unsafe, + babe: crate::rpc::BabeDeps { + keystore: keystore.clone(), + babe_worker_handle: babe_worker_handle.clone(), + }, + grandpa: crate::rpc::GrandpaDeps { + shared_voter_state: shared_voter_state.clone(), + shared_authority_set: shared_authority_set.clone(), + justification_stream: justification_stream.clone(), + subscription_executor: subscription_executor.clone(), + finality_provider: finality_proof_provider.clone(), + }, + statement_store: rpc_statement_store.clone(), + backend: rpc_backend.clone(), + command_sink: None, + eth: eth_deps, + }; + + crate::rpc::create_full( + deps, + subscription_executor.clone(), + pubsub_notification_sinks.clone(), + ) + .map_err(Into::into) + }; + + (rpc_extensions_builder, shared_voter_state2) + }; - let deps = crate::rpc::FullDeps { - client: client.clone(), - pool: pool.clone(), - select_chain: select_chain.clone(), - chain_spec: chain_spec.cloned_box(), - deny_unsafe, - babe: babe_worker_handle.clone().map(|babe| crate::rpc::BabeDeps { - babe_worker_handle: babe, - keystore: keystore.clone(), - }), - grandpa: crate::rpc::GrandpaDeps { - shared_voter_state: shared_voter_state.clone(), - shared_authority_set: shared_authority_set.clone(), - justification_stream: justification_stream.clone(), - subscription_executor: subscription_task_executor.clone(), - finality_provider: finality_proof_provider.clone(), - }, + let rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { + config, backend: backend.clone(), - is_authority, - max_past_logs, + client: client.clone(), + keystore: keystore_container.keystore(), network: network.clone(), - command_sink: if manual_seal { - Some(command_sink.clone()) - } else { - None - }, - eth: eth_deps, - }; - - crate::rpc::create_full( - deps, - subscription_task_executor, - pubsub_notification_sinks.clone(), - ) - .map_err(Into::into) - }) - }; - - let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { - config, - backend: backend.clone(), - client: client.clone(), - network: network.clone(), - keystore: keystore_container.keystore(), - rpc_builder, - transaction_pool: transaction_pool.clone(), - task_manager: &mut task_manager, - system_rpc_tx, - sync_service: sync_service.clone(), - tx_handler_controller, - telemetry: None, - })?; - - // Spawn Frontier EthFilterApi maintenance task. - if let Some(filter_pool) = filter_pool.clone() { - // Each filter is allowed to stay in the pool for 100 blocks. - const FILTER_RETAIN_THRESHOLD: u64 = 100; - task_manager.spawn_essential_handle().spawn( - "frontier-filter-pool", - Some("frontier"), - EthTask::filter_pool_task(client.clone(), filter_pool, FILTER_RETAIN_THRESHOLD), - ); - } - - // // Spawn Frontier pending transactions maintenance task (as essential, otherwise we leak). - // if let Some(pending_transactions) = pending_transactions { - // const TRANSACTION_RETAIN_THRESHOLD: u64 = 15; - // task_manager.spawn_essential_handle().spawn( - // "frontier-pending-transactions", - // None, - // EthTask::pending_transaction_task( - // Arc::clone(&client), - // pending_transactions, - // TRANSACTION_RETAIN_THRESHOLD, - // ) - // ); - // } - - let (block_import, grandpa_link, babe_link) = import_setup; - - (with_startup_data)(&block_import, &babe_link); - - spawn_frontier_tasks( - &task_manager, - client.clone(), - backend, - frontier_backend, - filter_pool.clone(), - storage_override, - fee_history_cache, - fee_history_cache_limit, - sync_service.clone(), - pubsub_notification_sinks, - ) - .await; - - if role.is_authority() { - let proposer = sc_basic_authorship::ProposerFactory::new( - task_manager.spawn_handle(), - client.clone(), - transaction_pool.clone(), - prometheus_registry.as_ref(), - telemetry.as_ref().map(|x| x.handle()), - ); - - if manual_seal { - let authorship_future = sc_consensus_manual_seal::run_manual_seal( - ManualSealParams { - block_import: frontier_block_import, - env: proposer, - client: client.clone(), - pool: transaction_pool.clone(), - commands_stream, - select_chain: select_chain.clone(), - consensus_data_provider: None, - create_inherent_data_providers: move |_, ()| async move { - Ok(sp_timestamp::InherentDataProvider::from_system_time()) - }, - } - ); - - task_manager - .spawn_essential_handle() - .spawn_blocking("manual-seal", None, authorship_future); - - log::info!("Manual Seal Ready"); + rpc_builder: Box::new(rpc_builder), + transaction_pool: transaction_pool.clone(), + task_manager: &mut task_manager, + system_rpc_tx, + tx_handler_controller, + sync_service: sync_service.clone(), + telemetry: telemetry.as_mut(), + })?; - } else { - let client_clone = client.clone(); - let slot_duration = babe_link.config().slot_duration(); - let babe_config = sc_consensus_babe::BabeParams { - keystore: keystore_container.keystore(), - client: client.clone(), - select_chain, - env: proposer, - block_import, - sync_oracle: sync_service.clone(), - force_authoring, - backoff_authoring_blocks, - babe_link, - justification_sync_link: sync_service.clone(), - create_inherent_data_providers: move |parent, ()| { - let client_clone = client_clone.clone(); - async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - let slot = sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration - ); - let storage_proof = - sp_transaction_storage_proof::registration::new_data_provider( - &*client_clone, - &parent, - )?; - - Ok((slot, timestamp, storage_proof)) - } - }, - block_proposal_slot_portion: SlotProportion::new(0.5), - max_block_proposal_slot_portion: None, - telemetry: telemetry.as_ref().map(|x| x.handle()), - }; + spawn_frontier_tasks( + &task_manager, + client.clone(), + backend.clone(), + frontier_backend, + filter_pool, + overrides, + fee_history_cache, + fee_history_cache_limit, + sync_service.clone(), + pubsub_notification_sinks, + ) + .await; + + if let Some(hwbench) = hwbench { + sc_sysinfo::print_hwbench(&hwbench); + if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && role.is_authority() { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." + ); + } + + if let Some(ref mut telemetry) = telemetry { + let telemetry_handle = telemetry.handle(); + task_manager.spawn_handle().spawn( + "telemetry_hwbench", + None, + sc_sysinfo::initialize_hwbench_telemetry(telemetry_handle, hwbench), + ); + } + } - let babe = sc_consensus_babe::start_babe(babe_config)?; + (with_startup_data)(&block_import, &babe_link); + + if let sc_service::config::Role::Authority { .. } = &role { + let proposer = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry.as_ref(), + telemetry.as_ref().map(|x| x.handle()), + ); + + let client_clone = client.clone(); + let slot_duration = babe_link.config().slot_duration(); + let babe_config = sc_consensus_babe::BabeParams { + keystore: keystore_container.keystore(), + client: client.clone(), + select_chain, + env: proposer, + block_import, + sync_oracle: sync_service.clone(), + justification_sync_link: sync_service.clone(), + create_inherent_data_providers: move |parent, ()| { + let client_clone = client_clone.clone(); + async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = + sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + + let storage_proof = + sp_transaction_storage_proof::registration::new_data_provider( + &*client_clone, + &parent, + )?; + + Ok((slot, timestamp, storage_proof)) + } + }, + force_authoring, + backoff_authoring_blocks, + babe_link, + block_proposal_slot_portion: SlotProportion::new(0.5), + max_block_proposal_slot_portion: None, + telemetry: telemetry.as_ref().map(|x| x.handle()), + }; + + let babe = sc_consensus_babe::start_babe(babe_config)?; + task_manager.spawn_essential_handle().spawn_blocking( + "babe-proposer", + Some("block-authoring"), + babe, + ); + } - task_manager.spawn_essential_handle().spawn_blocking("babe-proposer", None, babe); + // Spawn authority discovery module. + if role.is_authority() { + let authority_discovery_role = + sc_authority_discovery::Role::PublishAndDiscover(keystore_container.keystore()); + let dht_event_stream = + network + .event_stream("authority-discovery") + .filter_map(|e| async move { + match e { + Event::Dht(e) => Some(e), + _ => None, + } + }); + let (authority_discovery_worker, _service) = + sc_authority_discovery::new_worker_and_service_with_config( + sc_authority_discovery::WorkerConfig { + publish_non_global_ips: auth_disc_publish_non_global_ips, + ..Default::default() + }, + client.clone(), + network.clone(), + Box::pin(dht_event_stream), + authority_discovery_role, + prometheus_registry.clone(), + ); + + task_manager.spawn_handle().spawn( + "authority-discovery-worker", + Some("networking"), + authority_discovery_worker.run(), + ); } - } - // Spawn authority discovery module. - if role.is_authority() { - let authority_discovery_role = sc_authority_discovery::Role::PublishAndDiscover( - keystore_container.keystore(), - ); - let dht_event_stream = network.event_stream("authority-discovery") - .filter_map(|e| async move { match e { - Event::Dht(e) => Some(e), - _ => None, - }}); - let (authority_discovery_worker, _service) = sc_authority_discovery::new_worker_and_service_with_config( - sc_authority_discovery::WorkerConfig { - publish_non_global_ips: auth_disc_publish_non_global_ips, - public_addresses: auth_disc_public_addresses, - ..Default::default() - }, - client.clone(), - Arc::new(network.clone()), - Box::pin(dht_event_stream), - authority_discovery_role, - prometheus_registry.clone(), - ); + // if the node isn't actively participating in consensus then it doesn't + // need a keystore, regardless of which protocol we use below. + let keystore = if role.is_authority() { + Some(keystore_container.keystore()) + } else { + None + }; - task_manager.spawn_handle().spawn("authority-discovery-worker", None, authority_discovery_worker.run()); - } - - // if the node isn't actively participating in consensus then it doesn't - // need a keystore, regardless of which protocol we use below. - let keystore = if role.is_authority() { - Some(keystore_container.keystore()) - } else { - None - }; - - let grandpa_config = sc_consensus_grandpa::Config { - // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), - justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, - name: Some(name), - observer_enabled: false, - keystore, - local_role: role, - telemetry: None, - protocol_name: grandpa_protocol_name, - }; - - if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. - let grandpa_config = sc_consensus_grandpa::GrandpaParams { - config: grandpa_config, - link: grandpa_link, - network: network.clone(), - voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), - prometheus_registry, - shared_voter_state: shared_voter_state.clone(), - sync: Arc::new(sync_service.clone()), - telemetry: telemetry.as_ref().map(|x| x.handle()), - offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), - notification_service: grandpa_notification_service, + let grandpa_config = grandpa::Config { + // FIXME #1578 make this available through chainspec + gossip_duration: std::time::Duration::from_millis(333), + justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, + name: Some(name), + observer_enabled: false, + keystore, + local_role: role.clone(), + telemetry: telemetry.as_ref().map(|x| x.handle()), + protocol_name: grandpa_protocol_name, }; - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking( - "grandpa-voter", - None, - sc_consensus_grandpa::run_grandpa_voter(grandpa_config)? + if enable_grandpa { + // start the full GRANDPA voter + // NOTE: non-authorities could run the GRANDPA observer protocol, but at + // this point the full voter should provide better guarantees of block + // and vote data availability than the observer. The observer has not + // been tested extensively yet and having most nodes in a network run it + // could lead to finality stalls. + let grandpa_config = grandpa::GrandpaParams { + config: grandpa_config, + link: grandpa_link, + network: network.clone(), + sync: Arc::new(sync_service.clone()), + telemetry: telemetry.as_ref().map(|x| x.handle()), + voting_rule: grandpa::VotingRulesBuilder::default().build(), + prometheus_registry: prometheus_registry.clone(), + shared_voter_state, + offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), + }; + + // the GRANDPA voter task is considered infallible, i.e. + // if it fails we take down the service with it. + task_manager.spawn_essential_handle().spawn_blocking( + "grandpa-voter", + None, + grandpa::run_grandpa_voter(grandpa_config)?, + ); + } + + // Spawn statement protocol worker + let statement_protocol_executor = { + let spawn_handle = task_manager.spawn_handle(); + Box::new(move |fut| { + spawn_handle.spawn("network-statement-validator", Some("networking"), fut); + }) + }; + let statement_handler = statement_handler_proto.build( + network.clone(), + sync_service.clone(), + statement_store.clone(), + prometheus_registry.as_ref(), + statement_protocol_executor, + )?; + task_manager.spawn_handle().spawn( + "network-statement-handler", + Some("networking"), + statement_handler.run(), ); - } - network_starter.start_network(); - Ok(task_manager) + if enable_offchain_worker { + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + keystore: Some(keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new( + transaction_pool.clone(), + )), + network_provider: network.clone(), + is_validator: role.is_authority(), + enable_http_requests: true, + custom_extensions: move |_| { + vec![Box::new(statement_store.clone().as_statement_store_ext()) as Box<_>] + }, + }) + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), + ); + } + + network_starter.start_network(); + Ok(NewFullBase { + task_manager, + client, + network, + sync: sync_service, + transaction_pool, + rpc_handlers, + }) } /// Builds a new service for a full client. -pub async fn new_full(config: Configuration, cli: &Cli) --> Result { - let database_path = config.database.path().map(Path::to_path_buf); - - let task_manager = match config.network.network_backend { - sc_network::config::NetworkBackendType::Libp2p => { - new_full_base::>( - config, - cli, - |_, _| (), - ) - .await? - }, - sc_network::config::NetworkBackendType::Litep2p => { - new_full_base::( - config, - cli, - |_, _| (), - ) - .await? - }, - }; - - // TODO: uncomment this when storage monitor is ready - // if let Some(database_path) = database_path { - // sc_storage_monitor::StorageMonitorService::try_spawn( - // cli.storage_monitor, - // database_path, - // &task_manager.spawn_essential_handle(), - // ) - // .map_err(|e| ServiceError::Application(e.into()))?; - // } - - Ok(task_manager) -} +pub async fn new_full(config: Configuration, cli: Cli) -> Result { + let database_source = config.database.clone(); + let task_manager = new_full_base(config, cli.eth, cli.no_hardware_benchmarks, |_, _| ()) + .await + .map(|NewFullBase { task_manager, .. }| task_manager)?; + + sc_storage_monitor::StorageMonitorService::try_spawn( + cli.storage_monitor, + database_source, + &task_manager.spawn_essential_handle(), + ) + .map_err(|e| ServiceError::Application(e.into()))?; -pub fn new_chain_ops( - config: &mut Configuration, - cli: &Cli, -) -> Result< - ( - Arc>, - Arc>, - BasicQueue, - TaskManager, - FullFrontierBackend, - ), - ServiceError, -> where - B: BlockT, - NumberFor: BlockNumberOps, - RA: ConstructRuntimeApi>, - RA: Send + Sync + 'static, - RA::RuntimeApi: BaseRuntimeApiCollection + EthCompatRuntimeApiCollection, - HF: HostFunctionsT + 'static, -{ - config.keystore = sc_service::config::KeystoreConfig::InMemory; - let PartialComponents { - client, - backend, - import_queue, - task_manager, - other, - .. - } = new_partial( - config, - cli, - )?; - Ok((client, backend, import_queue, task_manager, other.1.1)) + Ok(task_manager) } -/// A set of APIs that template runtime must implement. -pub trait RuntimeApiCollection< - Block: BlockT, - AccountId: Codec, - Nonce: Codec, - Balance: Codec + MaybeDisplay, ->: - BaseRuntimeApiCollection - + EthCompatRuntimeApiCollection - + frame_system_rpc_runtime_api::AccountNonceApi - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi -{ -} +#[cfg(test)] +mod tests { + use crate::service::{new_full_base, NewFullBase}; + use clover_primitives::{Block, DigestItem, Signature}; + use clover_runtime::constants::currency::CENTS; + use clover_runtime::constants::time::SLOT_DURATION; + use clover_runtime::{Address, BalancesCall, RuntimeCall, UncheckedExtrinsic}; + use codec::Encode; + use sc_client_api::BlockBackend; + use sc_consensus::{BlockImport, BlockImportParams, ForkChoiceStrategy}; + use sc_consensus_babe::{BabeIntermediate, CompatibleDigestItem, INTERMEDIATE_KEY}; + use sc_consensus_epochs::descendent_query; + use sc_keystore::LocalKeystore; + use sc_service_test::TestNetNode; + use sc_transaction_pool_api::{ChainEvent, MaintainedTransactionPool}; + use sp_consensus::{BlockOrigin, Environment, Proposer}; + use sp_core::crypto::Pair; + use sp_inherents::InherentDataProvider; + use sp_keyring::AccountKeyring; + use sp_keystore::KeystorePtr; + use sp_runtime::generic::{Digest, Era, SignedPayload}; + use sp_runtime::key_types::BABE; + use sp_runtime::traits::{Block as BlockT, Header as HeaderT, IdentifyAccount, Verify}; + use sp_runtime::RuntimeAppPublic; + use sp_timestamp; + use std::sync::Arc; + + type AccountPublic = ::Signer; + + #[test] + // It is "ignored", but the node-cli ignored tests are running on the CI. + // This can be run locally with `cargo test --release -p node-cli test_sync -- --ignored`. + #[ignore] + fn test_sync() { + sp_tracing::try_init_simple(); + + let keystore_path = tempfile::tempdir().expect("Creates keystore path"); + let keystore: KeystorePtr = LocalKeystore::open(keystore_path.path(), None) + .expect("Creates keystore") + .into(); + let alice: sp_consensus_babe::AuthorityId = keystore + .sr25519_generate_new(BABE, Some("//Alice")) + .expect("Creates authority pair") + .into(); + + let chain_spec = crate::chain_spec::tests::integration_test_config_with_single_authority(); + + // For the block factory + let mut slot = 1u64; + + // For the extrinsics factory + let bob = Arc::new(AccountKeyring::Bob.pair()); + let charlie = Arc::new(AccountKeyring::Charlie.pair()); + let mut index = 0; + + sc_service_test::sync( + chain_spec, + |config| { + let mut setup_handles = None; + let NewFullBase { + task_manager, + client, + network, + sync, + transaction_pool, + .. + } = new_full_base( + config, + false, + |block_import: &sc_consensus_babe::BabeBlockImport, + babe_link: &sc_consensus_babe::BabeLink| { + setup_handles = Some((block_import.clone(), babe_link.clone())); + }, + )?; + + let node = sc_service_test::TestNetComponents::new( + task_manager, + client, + network, + sync, + transaction_pool, + ); + Ok((node, setup_handles.unwrap())) + }, + |service, &mut (ref mut block_import, ref babe_link)| { + let parent_hash = service.client().chain_info().best_hash; + let parent_header = service.client().header(parent_hash).unwrap().unwrap(); + let parent_number = *parent_header.number(); + + futures::executor::block_on(service.transaction_pool().maintain( + ChainEvent::NewBestBlock { + hash: parent_header.hash(), + tree_route: None, + }, + )); + + let mut proposer_factory = sc_basic_authorship::ProposerFactory::new( + service.spawn_handle(), + service.client(), + service.transaction_pool(), + None, + None, + ); + + let mut digest = Digest::default(); + + // even though there's only one authority some slots might be empty, + // so we must keep trying the next slots until we can claim one. + let (babe_pre_digest, epoch_descriptor) = loop { + let epoch_descriptor = babe_link + .epoch_changes() + .shared_data() + .epoch_descriptor_for_child_of( + descendent_query(&*service.client()), + &parent_hash, + parent_number, + slot.into(), + ) + .unwrap() + .unwrap(); + + let epoch = babe_link + .epoch_changes() + .shared_data() + .epoch_data(&epoch_descriptor, |slot| { + sc_consensus_babe::Epoch::genesis(babe_link.config(), slot) + }) + .unwrap(); + + if let Some(babe_pre_digest) = + sc_consensus_babe::authorship::claim_slot(slot.into(), &epoch, &keystore) + .map(|(digest, _)| digest) + { + break (babe_pre_digest, epoch_descriptor); + } + + slot += 1; + }; + + let inherent_data = futures::executor::block_on( + ( + sp_timestamp::InherentDataProvider::new( + std::time::Duration::from_millis(SLOT_DURATION * slot).into(), + ), + sp_consensus_babe::inherents::InherentDataProvider::new(slot.into()), + ) + .create_inherent_data(), + ) + .expect("Creates inherent data"); + + digest.push(::babe_pre_digest( + babe_pre_digest, + )); + + let new_block = futures::executor::block_on(async move { + let proposer = proposer_factory.init(&parent_header).await; + proposer + .unwrap() + .propose( + inherent_data, + digest, + std::time::Duration::from_secs(1), + None, + ) + .await + }) + .expect("Error making test block") + .block; + + let (new_header, new_body) = new_block.deconstruct(); + let pre_hash = new_header.hash(); + // sign the pre-sealed hash of the block and then + // add it to a digest item. + let to_sign = pre_hash.encode(); + let signature = keystore + .sr25519_sign(sp_consensus_babe::AuthorityId::ID, alice.as_ref(), &to_sign) + .unwrap() + .unwrap(); + let item = ::babe_seal(signature.into()); + slot += 1; + + let mut params = BlockImportParams::new(BlockOrigin::File, new_header); + params.post_digests.push(item); + params.body = Some(new_body); + params.insert_intermediate( + INTERMEDIATE_KEY, + BabeIntermediate:: { epoch_descriptor }, + ); + params.fork_choice = Some(ForkChoiceStrategy::LongestChain); + + futures::executor::block_on(block_import.import_block(params)) + .expect("error importing test block"); + }, + |service, _| { + let amount = 5 * CENTS; + let to: Address = AccountPublic::from(bob.public()).into_account().into(); + let from: Address = AccountPublic::from(charlie.public()).into_account().into(); + let genesis_hash = service.client().block_hash(0).unwrap().unwrap(); + let best_hash = service.client().chain_info().best_hash; + let (spec_version, transaction_version) = { + let version = service.client().runtime_version_at(best_hash).unwrap(); + (version.spec_version, version.transaction_version) + }; + let signer = charlie.clone(); + + let function = RuntimeCall::Balances(BalancesCall::transfer_allow_death { + dest: to.into(), + value: amount, + }); + + let check_non_zero_sender = frame_system::CheckNonZeroSender::new(); + let check_spec_version = frame_system::CheckSpecVersion::new(); + let check_tx_version = frame_system::CheckTxVersion::new(); + let check_genesis = frame_system::CheckGenesis::new(); + let check_era = frame_system::CheckEra::from(Era::Immortal); + let check_nonce = frame_system::CheckNonce::from(index); + let check_weight = frame_system::CheckWeight::new(); + let tx_payment = + pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::from(0, None); + let metadata_hash = frame_metadata_hash_extension::CheckMetadataHash::new(false); + let extra = ( + check_non_zero_sender, + check_spec_version, + check_tx_version, + check_genesis, + check_era, + check_nonce, + check_weight, + tx_payment, + metadata_hash, + ); + let raw_payload = SignedPayload::from_raw( + function, + extra, + ( + (), + spec_version, + transaction_version, + genesis_hash, + genesis_hash, + (), + (), + (), + None, + ), + ); + let signature = raw_payload.using_encoded(|payload| signer.sign(payload)); + let (function, extra, _) = raw_payload.deconstruct(); + index += 1; + UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), extra) + .into() + }, + ); + } -impl - RuntimeApiCollection for Api -where - Block: BlockT, - AccountId: Codec, - Nonce: Codec, - Balance: Codec + MaybeDisplay, - Api: BaseRuntimeApiCollection - + EthCompatRuntimeApiCollection - + frame_system_rpc_runtime_api::AccountNonceApi - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi, -{ + #[test] + #[ignore] + fn test_consensus() { + sp_tracing::try_init_simple(); + + sc_service_test::consensus( + crate::chain_spec::tests::integration_test_config_with_two_authorities(), + |config| { + let NewFullBase { + task_manager, + client, + network, + sync, + transaction_pool, + .. + } = new_full_base(config, false, |_, _| ())?; + Ok(sc_service_test::TestNetComponents::new( + task_manager, + client, + network, + sync, + transaction_pool, + )) + }, + vec!["//Alice".into(), "//Bob".into()], + ) + } } diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index f26b521..0fe5759 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -8,12 +8,8 @@ use scale_info::TypeInfo; #[cfg(feature = "std")] use serde::{Deserialize, Serialize}; -use sp_runtime::{ - FixedU128, - generic, - traits::{BlakeTwo256, IdentifyAccount, Verify}, - MultiSignature, RuntimeDebug -}; +use sp_runtime::traits::{BlakeTwo256, IdentifyAccount, Verify}; +use sp_runtime::{generic, FixedU128, MultiSignature, RuntimeDebug}; /// An index to a block. pub type BlockNumber = u32; @@ -66,13 +62,35 @@ pub type BlockId = generic::BlockId; pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; #[repr(u32)] -#[derive(Encode, Decode, Eq, FromPrimitive, PartialEq, Copy, Clone, RuntimeDebug, PartialOrd, Ord, enum_iterator::IntoEnumIterator, TypeInfo)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, strum_macros::EnumIter, strum_macros::Display, int_enum::IntEnum))] +#[derive( + Encode, + Decode, + Eq, + FromPrimitive, + PartialEq, + Copy, + Clone, + RuntimeDebug, + PartialOrd, + Ord, + enum_iterator::IntoEnumIterator, + TypeInfo, +)] +#[cfg_attr( + feature = "std", + derive( + Serialize, + Deserialize, + strum_macros::EnumIter, + strum_macros::Display, + int_enum::IntEnum + ) +)] pub enum CurrencyId { - CLV = 0, - CUSDT = 1, - DOT = 2, - CETH = 3, + CLV = 0, + CUSDT = 1, + DOT = 2, + CETH = 3, } /// dex related types @@ -83,9 +101,9 @@ pub type Price = FixedU128; pub type Share = u128; pub mod currency { - use super::*; - pub const DOLLARS: Balance = 1_000_000_000_000_000_000; - pub const CENTS: Balance = DOLLARS / 100; // 10_000_000_000_000_000 - pub const MILLICENTS: Balance = CENTS / 1000; // 10_000_000_000_000 - pub const MICROCENTS: Balance = MILLICENTS / 1000; // 10_000_000_000 + use super::*; + pub const DOLLARS: Balance = 1_000_000_000_000_000_000; + pub const CENTS: Balance = DOLLARS / 100; // 10_000_000_000_000_000 + pub const MILLICENTS: Balance = CENTS / 1000; // 10_000_000_000_000 + pub const MICROCENTS: Balance = MILLICENTS / 1000; // 10_000_000_000 } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 88b56c0..20f107f 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,6 @@ version = '0.9.0' targets = ['x86_64-unknown-linux-gnu'] [dependencies] -clover-crc20 = { path = "../modules/crc20", default-features = false } smallvec = { workspace = true } log = { workspace = true } @@ -42,6 +41,7 @@ pallet-balances = { workspace = true } pallet-bounties = { workspace = true } pallet-collective = { workspace = true } pallet-contracts = { workspace = true } +pallet-contracts-primitives = { workspace = true } pallet-grandpa = { workspace = true } pallet-im-online = { workspace = true } pallet-indices = { workspace = true } @@ -53,6 +53,7 @@ pallet-preimage = { workspace = true } pallet-staking = { workspace = true } pallet-session = { features = ["historical"], workspace = true } pallet-staking-reward-curve = { workspace = true } +pallet-statement = { workspace = true } pallet-sudo = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } @@ -63,13 +64,13 @@ sp-api = { workspace = true } sp-arithmetic = { workspace = true } sp-authority-discovery = { workspace = true } sp-block-builder = { workspace = true } -sp-genesis-builder = { workspace = true } sp-consensus-babe = { workspace = true } sp-core = { workspace = true } sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } +sp-statement-store = { workspace = true } sp-staking = { workspace = true } sp-std = { workspace = true } sp-io = { workspace = true } @@ -108,6 +109,7 @@ std = [ 'pallet-bags-list/std', 'pallet-balances/std', "pallet-collective/std", + "pallet-contracts-primitives/std", "pallet-contracts/std", "pallet-democracy/std", "pallet-elections-phragmen/std", @@ -126,6 +128,7 @@ std = [ "pallet-scheduler/std", 'pallet-session/std', 'pallet-staking/std', + 'pallet-statement/std', 'pallet-sudo/std', 'pallet-timestamp/std', 'pallet-tips/std', @@ -143,18 +146,25 @@ std = [ 'sp-block-builder/std', 'sp-consensus-babe/std', 'sp-core/std', - 'sp-genesis-builder/std', 'sp-inherents/std', 'sp-offchain/std', 'sp-runtime/std', 'sp-session/std', 'sp-staking/std', 'sp-std/std', + 'sp-statement-store/std', 'sp-transaction-pool/std', 'sp-version/std', ] clover-testnet = [] clover-mainnet = [] +runtime-benchmarks = [ + 'frame-benchmarking/runtime-benchmarks', + 'pallet-babe/runtime-benchmarks', + 'pallet-balances/runtime-benchmarks', + 'pallet-contracts/runtime-benchmarks', + 'frame-system/runtime-benchmarks', +] [build-dependencies] substrate-wasm-builder = { workspace = true } diff --git a/runtime/build.rs b/runtime/build.rs index f262c32..18a76f7 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,6 +1,9 @@ +use substrate_wasm_builder::WasmBuilder; + fn main() { - #[cfg(feature = "std")] - { - substrate_wasm_builder::WasmBuilder::build_using_defaults(); - } + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() } diff --git a/runtime/src/impls.rs b/runtime/src/impls.rs index a00bbc5..a9b823a 100644 --- a/runtime/src/impls.rs +++ b/runtime/src/impls.rs @@ -1,52 +1,59 @@ - -use sp_arithmetic::traits::{BaseArithmetic, Unsigned}; -use sp_runtime::traits::Convert; -use sp_runtime::{DispatchResult, FixedPointNumber, Perquintill, Perbill}; -use frame_support::{traits::ExistenceRequirement, transactional}; -use frame_support::traits::{Get, OnUnbalanced, Currency, ReservableCurrency}; +use crate::{AccountId, Authorship, Balances, NegativeImbalance}; +use clover_traits::account::MergeAccount; +use frame_support::traits::{ + Currency, ExistenceRequirement, Get, OnUnbalanced, ReservableCurrency, +}; +use frame_support::transactional; use frame_support::weights::{ WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, }; -use pallet_transaction_payment::{Multiplier, MultiplierUpdate, }; -use crate::{AccountId, Balances, Authorship, NegativeImbalance}; -use clover_traits::account::MergeAccount; +use pallet_transaction_payment::{Multiplier, MultiplierUpdate}; +use sp_arithmetic::traits::{BaseArithmetic, Unsigned}; +use sp_runtime::traits::Convert; +use sp_runtime::{DispatchResult, FixedPointNumber, Perbill, Perquintill}; pub struct Author; impl OnUnbalanced for Author { - fn on_nonzero_unbalanced(amount: NegativeImbalance) { - if let Some(author) = &Authorship::author() { - Balances::resolve_creating(author, amount); + fn on_nonzero_unbalanced(amount: NegativeImbalance) { + if let Some(author) = &Authorship::author() { + Balances::resolve_creating(author, amount); + } } - } } pub struct MergeAccountEvm; impl MergeAccount for MergeAccountEvm { -#[transactional] -fn merge_account(source: &AccountId, dest: &AccountId) -> DispatchResult { - // unreserve all reserved currency - >::unreserve(source, Balances::reserved_balance(source)); + #[transactional] + fn merge_account(source: &AccountId, dest: &AccountId) -> DispatchResult { + // unreserve all reserved currency + >::unreserve(source, Balances::reserved_balance(source)); - // transfer all free to dest - Balances::transfer(&source, &dest, Balances::free_balance(source), ExistenceRequirement::KeepAlive) - } + // transfer all free to dest + Balances::transfer( + &source, + &dest, + Balances::free_balance(source), + ExistenceRequirement::KeepAlive, + ) + } } pub struct WeightToFee(sp_std::marker::PhantomData); -impl WeightToFeePolynomial for WeightToFee where - T: BaseArithmetic + From + Copy + Unsigned +impl WeightToFeePolynomial for WeightToFee +where + T: BaseArithmetic + From + Copy + Unsigned, { - type Balance = T; + type Balance = T; - fn polynomial() -> WeightToFeeCoefficients { - smallvec::smallvec!(WeightToFeeCoefficient { - coeff_integer: 10_000u32.into(), - coeff_frac: Perbill::zero(), - negative: false, - degree: 1, - }) - } + fn polynomial() -> WeightToFeeCoefficients { + smallvec::smallvec!(WeightToFeeCoefficient { + coeff_integer: 10_000u32.into(), + coeff_frac: Perbill::zero(), + negative: false, + degree: 1, + }) + } } /// Reset the fee multiplier to the fixed value @@ -57,26 +64,36 @@ impl WeightToFeePolynomial for WeightToFee where pub struct StaticFeeMultiplierUpdate(sp_std::marker::PhantomData<(T, S, V, M, N)>); impl MultiplierUpdate for StaticFeeMultiplierUpdate - where T: frame_system::Config, S: Get, V: Get, M: Get, N: Get, +where + T: frame_system::Config, + S: Get, + V: Get, + M: Get, + N: Get, { - fn min() -> Multiplier { - M::get() - } - fn max() -> Multiplier { - N::get() - } - fn target() -> Perquintill { - S::get() - } - fn variability() -> Multiplier { - V::get() - } + fn min() -> Multiplier { + M::get() + } + fn max() -> Multiplier { + N::get() + } + fn target() -> Perquintill { + S::get() + } + fn variability() -> Multiplier { + V::get() + } } impl Convert for StaticFeeMultiplierUpdate - where T: frame_system::Config, S: Get, V: Get, M: Get, N: Get, +where + T: frame_system::Config, + S: Get, + V: Get, + M: Get, + N: Get, { - fn convert(_previous: Multiplier) -> Multiplier { - Multiplier::saturating_from_integer(1) - } + fn convert(_previous: Multiplier) -> Multiplier { + Multiplier::saturating_from_integer(1) + } } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index b5ef46b..2366c99 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -6,46 +6,39 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +use core::convert::{TryFrom, TryInto}; use frame_election_provider_support::NoElection; -use frame_support::genesis_builder_helper::{build_state, get_preset}; use frame_support::traits::fungible::HoldConsideration; -use frame_support::traits::fungibles::{Create, Mutate}; - -use core::convert::{TryFrom, TryInto}; -use frame_support::traits::tokens::pay::PayAssetFromAccount; -use frame_support::traits::tokens::{PayFromAccount, UnityAssetBalanceConversion}; use frame_support::traits::{ EitherOfDiverse, EqualPrivilegeOnly, Hooks, LinearStoragePrice, Nothing, WithdrawReasons, }; use frame_support::weights::ConstantMultiplier; -use frame_support::{derive_impl, PalletId}; +use frame_support::PalletId; use pallet_ethereum::{ PostLogContent, Transaction as EthereumTransaction, TransactionAction, TransactionData, }; -use pallet_identity::legacy::IdentityInfo; use parity_scale_codec::Decode; use precompiles::CloverPrecompiles; -use sp_core::crypto::{KeyTypeId, Public}; +use sp_core::crypto::KeyTypeId; use sp_core::{ConstBool, ConstU32, ConstU64, ConstU8, OpaqueMetadata, H160, H256, U256}; use sp_runtime::curve::PiecewiseLinear; use sp_runtime::traits::{ BlakeTwo256, Block as BlockT, Bounded, Convert, ConvertInto, NumberFor, OpaqueKeys, - SaturatedConversion, StaticLookup, UniqueSaturatedInto, Verify, + SaturatedConversion, StaticLookup, UniqueSaturatedInto, }; use sp_runtime::transaction_validity::{ TransactionPriority, TransactionSource, TransactionValidity, }; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, ApplyExtrinsicResult, ExtrinsicInclusionMode, - FixedPointNumber, OpaqueExtrinsic, Percent, Perquintill, RuntimeAppPublic, + create_runtime_str, generic, impl_opaque_keys, ApplyExtrinsicResult, FixedPointNumber, + OpaqueExtrinsic, Percent, Perquintill, RuntimeAppPublic, }; use sp_std::marker::PhantomData; use sp_std::prelude::*; use sp_api::impl_runtime_apis; -use frame_election_provider_support::bounds::{ElectionBounds, ElectionBoundsBuilder}; -use frame_election_provider_support::{onchain, BalancingConfig, SequentialPhragmen, VoteWeight}; +use frame_election_provider_support::VoteWeight; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; @@ -131,13 +124,6 @@ impl_opaque_keys! { } } -/// The BABE epoch configuration at genesis. -pub const BABE_GENESIS_EPOCH_CONFIG: sp_consensus_babe::BabeEpochConfiguration = - sp_consensus_babe::BabeEpochConfiguration { - c: PRIMARY_PROBABILITY, - allowed_slots: sp_consensus_babe::AllowedSlots::PrimaryAndSecondaryPlainSlots, - }; - /// Wasm binary unwrapped. If built with `SKIP_WASM_BUILD`, the function panics. #[cfg(feature = "std")] pub fn wasm_binary_unwrap() -> &'static [u8] { @@ -147,14 +133,13 @@ pub fn wasm_binary_unwrap() -> &'static [u8] { the flag disabled.", ) } -/// Native version. -#[cfg(any(feature = "std", test))] -pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } -} + +/// The BABE epoch configuration at genesis. +pub const BABE_GENESIS_EPOCH_CONFIG: sp_consensus_babe::BabeEpochConfiguration = + sp_consensus_babe::BabeEpochConfiguration { + c: PRIMARY_PROBABILITY, + allowed_slots: sp_consensus_babe::AllowedSlots::PrimaryAndSecondaryPlainSlots, + }; #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { @@ -177,6 +162,15 @@ pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { + runtime_version: VERSION, + can_author_with: Default::default(), + } +} + /// We allow for 2000ms of compute with a 6 second average block time. pub const WEIGHT_MILLISECS_PER_BLOCK: u64 = 2000; /// We allow for 2 seconds of compute with a 6 second average block time, with maximum proof size. @@ -215,7 +209,6 @@ parameter_types! { // Configure FRAME pallets to include in runtime. -#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig)] impl frame_system::Config for Runtime { /// The basic call filter to use in dispatchable. type BaseCallFilter = (); @@ -231,6 +224,8 @@ impl frame_system::Config for Runtime { type Hash = Hash; /// The hashing algorithm used. type Hashing = BlakeTwo256; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). @@ -251,8 +246,9 @@ impl frame_system::Config for Runtime { /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = frame_system::weights::SubstrateWeight; type SS58Prefix = SS58Prefix; - type MaxConsumers = ConstU32<16>; type Block = Block; + type MaxConsumers = ConstU32<16>; + type OnSetCode = (); } parameter_types! { @@ -303,7 +299,6 @@ impl pallet_grandpa::Config for Runtime { parameter_types! { pub const BasicDeposit: Balance = 10 * DOLLARS; // 258 bytes on-chain - pub const ByteDeposit: Balance = deposit(0, 1); pub const FieldDeposit: Balance = 250 * CENTS; // 66 bytes on-chain pub const SubAccountDeposit: Balance = 2 * DOLLARS; // 53 bytes on-chain pub const MaxSubAccounts: u32 = 100; @@ -320,20 +315,14 @@ impl pallet_identity::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type BasicDeposit = BasicDeposit; - type ByteDeposit = ByteDeposit; + type FieldDeposit = FieldDeposit; type SubAccountDeposit = SubAccountDeposit; type MaxSubAccounts = MaxSubAccounts; - type IdentityInformation = IdentityInfo; + type MaxAdditionalFields = MaxAdditionalFields; type MaxRegistrars = MaxRegistrars; type Slashed = Treasury; type ForceOrigin = EnsureRootOrHalfCouncil; type RegistrarOrigin = EnsureRootOrHalfCouncil; - type OffchainSignature = Signature; - type SigningPublicKey = ::Signer; - type UsernameAuthorityOrigin = EnsureRoot; - type PendingUsernameExpiration = ConstU32<{ 7 * DAYS }>; - type MaxSuffixLength = ConstU32<7>; - type MaxUsernameLength = ConstU32<32>; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -350,7 +339,6 @@ impl pallet_vesting::Config for Runtime { type MinVestedTransfer = MinVestedTransfer; type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; - type BlockNumberProvider = System; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. const MAX_VESTING_SCHEDULES: u32 = 28; @@ -514,26 +502,23 @@ impl pallet_ethereum::Config for Runtime { type PostLogContent = PostBlockAndTxnHashes; } -#[derive(Clone)] -pub struct TransactionConverter(PhantomData); +pub struct TransactionConverter; -impl Default for TransactionConverter { - fn default() -> Self { - Self(PhantomData) +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) } } -impl fp_rpc::ConvertTransaction<::Extrinsic> for TransactionConverter { - fn convert_transaction( - &self, - transaction: pallet_ethereum::Transaction, - ) -> ::Extrinsic { +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> OpaqueExtrinsic { let extrinsic = UncheckedExtrinsic::new_unsigned( pallet_ethereum::Call::::transact { transaction }.into(), ); let encoded = extrinsic.encode(); - ::Extrinsic::decode(&mut &encoded[..]) - .expect("Encoded extrinsic is always valid") + OpaqueExtrinsic::decode(&mut &encoded[..]).expect("Encoded extrinsic is always valid") } } @@ -594,9 +579,21 @@ parameter_types! { pub const OffendingValidatorsThreshold: Perbill = Perbill::from_percent(17); pub HistoryDepth: u32 = 84; pub MaxCollectivesProposalWeight: Weight = Perbill::from_percent(50) * BlockWeights::get().max_block; - pub const MaxControllersInDeprecationBatch: u32 = 5900; } +// pub struct OnChainSeqPhragmen; +// impl onchain::Config for OnChainSeqPhragmen { +// type System = Runtime; +// type Solver = SequentialPhragmen< +// AccountId, +// pallet_election_provider_multi_phase::SolutionAccuracyOf, +// >; +// type DataProvider = ::DataProvider; +// type WeightInfo = frame_election_provider_support::weights::SubstrateWeight; +// type MaxWinners = ::MaxWinners; +// type Bounds = ElectionBoundsOnChain; +// } + /// Upper limit on the number of NPOS nominations. const MAX_QUOTA_NOMINATIONS: u32 = 16; @@ -626,7 +623,8 @@ impl pallet_staking::Config for Runtime { type SessionInterface = Self; type EraPayout = pallet_staking::ConvertCurve; type NextNewSession = Session; - type MaxExposurePageSize = ConstU32<256>; + type MaxNominatorRewardedPerValidator = MaxNominatorRewardedPerValidator; + type OffendingValidatorsThreshold = OffendingValidatorsThreshold; /// Replace with multi-phase election provider type ElectionProvider = NoElection<(AccountId, BlockNumber, Staking, ConstU32<10>)>; /// We are way past genesis, no need to run election. @@ -636,12 +634,10 @@ impl pallet_staking::Config for Runtime { type WeightInfo = pallet_staking::weights::SubstrateWeight; type NominationsQuota = pallet_staking::FixedNominationsQuota; type MaxUnlockingChunks = ConstU32<32>; - type MaxControllersInDeprecationBatch = MaxControllersInDeprecationBatch; type TargetList = pallet_staking::UseValidatorsMap; type HistoryDepth = HistoryDepth; type EventListeners = (); type BenchmarkingConfig = StakingBenchmarkingConfig; - type DisablingStrategy = pallet_staking::UpToLimitDisablingStrategy; } parameter_types! { @@ -679,8 +675,8 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type MaxFreezes = (); - type RuntimeFreezeReason = RuntimeFreezeReason; type RuntimeHoldReason = RuntimeHoldReason; + type MaxHolds = ConstU32<2>; } parameter_types! { @@ -991,29 +987,27 @@ parameter_types! { pub const MaxApprovals: u32 = 100; pub const MaxBalance: Balance = Balance::max_value(); - pub TreasuryAccount: AccountId = Treasury::account_id(); - pub const SpendPayoutPeriod: BlockNumber = 10 * DAYS; } impl pallet_treasury::Config for Runtime { - type PalletId = TreasuryModuleId; type Currency = Balances; + type ApproveOrigin = + pallet_collective::EnsureProportionMoreThan; type RejectOrigin = pallet_collective::EnsureProportionMoreThan; type RuntimeEvent = RuntimeEvent; + type OnSlash = (); + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ProposalBondMinimum; type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); type SpendFunds = Bounties; type WeightInfo = pallet_treasury::weights::SubstrateWeight; + type PalletId = TreasuryModuleId; type MaxApprovals = MaxApprovals; type SpendOrigin = EnsureWithSuccess, AccountId, MaxBalance>; - type AssetKind = (); - type Beneficiary = AccountId; - type BeneficiaryLookup = Indices; - type Paymaster = PayFromAccount; - type BalanceConverter = UnityAssetBalanceConversion; - type PayoutPeriod = SpendPayoutPeriod; + type ProposalBondMaximum = (); } parameter_types! { @@ -1035,11 +1029,6 @@ impl pallet_bounties::Config for Runtime { type MaximumReasonLength = MaximumReasonLength; type WeightInfo = pallet_bounties::weights::SubstrateWeight; type ChildBountyManager = (); - type OnSlash = (); -} - -parameter_types! { - pub const MaxTipAmount: Balance = DOLLARS * 100; } impl pallet_tips::Config for Runtime { @@ -1051,8 +1040,6 @@ impl pallet_tips::Config for Runtime { type TipFindersFee = TipFindersFee; type TipReportDepositBase = TipReportDepositBase; type WeightInfo = pallet_tips::weights::SubstrateWeight; - type MaxTipAmount = MaxTipAmount; - type OnSlash = (); } type NegativeImbalance = >::NegativeImbalance; @@ -1223,11 +1210,6 @@ impl pallet_contracts::Config for Runtime { type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type Debug = (); type Environment = (); - type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; - type UploadOrigin = EnsureSigned; - type InstantiateOrigin = EnsureSigned; - type ApiVersion = (); - type Xcm = (); } parameter_types! { @@ -1253,145 +1235,25 @@ parameter_types! { impl pallet_insecure_randomness_collective_flip::Config for Runtime {} parameter_types! { - pub CRC20ModuleId: PalletId = PalletId(*b"crc20mod"); + pub StatementCost: Balance = 1 * DOLLARS; + pub StatementByteCost: Balance = 100 * MILLICENTS; + pub const MinAllowedStatements: u32 = 4; + pub const MaxAllowedStatements: u32 = 10; + pub const MinAllowedBytes: u32 = 1024; + pub const MaxAllowedBytes: u32 = 4096; } -impl clover_crc20::Config for Runtime { - type Currency = Balances; - type ModuleId = CRC20ModuleId; - type Prefix = Prefix; +impl pallet_statement::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type StatementCost = StatementCost; + type ByteCost = StatementByteCost; + type MinAllowedStatements = MinAllowedStatements; + type MaxAllowedStatements = MaxAllowedStatements; + type MinAllowedBytes = MinAllowedBytes; + type MaxAllowedBytes = MaxAllowedBytes; } -// // Create the runtime by composing the FRAME pallets that were previously configured. -// #[frame_support::runtime] -// mod runtime { -// #[runtime::runtime] -// #[runtime::derive( -// RuntimeCall, -// RuntimeEvent, -// RuntimeError, -// RuntimeOrigin, -// RuntimeFreezeReason, -// RuntimeHoldReason, -// RuntimeSlashReason, -// RuntimeLockId, -// RuntimeTask -// )] -// pub struct Runtime; - -// #[runtime::pallet_index(0)] -// pub type System = frame_system; - -// #[runtime::pallet_index(1)] -// pub type RandomnessCollectiveFlip = pallet_insecure_randomness_collective_flip; - -// #[runtime::pallet_index(2)] -// pub type Timestamp = pallet_timestamp; - -// #[runtime::pallet_index(3)] -// pub type Authorship = pallet_authorship; - -// #[runtime::pallet_index(4)] -// pub type Babe = pallet_babe; - -// #[runtime::pallet_index(5)] -// pub type Grandpa = pallet_grandpa; - -// #[runtime::pallet_index(6)] -// pub type Indices = pallet_indices; - -// #[runtime::pallet_index(7)] -// pub type Balances = pallet_balances; - -// #[runtime::pallet_index(8)] -// pub type TransactionPayment = pallet_transaction_payment; - -// #[runtime::pallet_index(9)] -// pub type Staking = pallet_staking; - -// #[runtime::pallet_index(10)] -// pub type Session = pallet_session; - -// #[runtime::pallet_index(11)] -// pub type Historical = pallet_session_historical; - -// #[runtime::pallet_index(12)] -// pub type Democracy = pallet_democracy; - -// #[runtime::pallet_index(13)] -// pub type Council = pallet_collective::; - -// #[runtime::pallet_index(14)] -// pub type TechnicalCommittee = pallet_collective::; - -// #[runtime::pallet_index(15)] -// pub type ElectionsPhragmen = pallet_elections_phragmen; - -// #[runtime::pallet_index(16)] -// pub type TechnicalMembership = pallet_membership::; - -// #[runtime::pallet_index(17)] -// pub type Treasury = pallet_treasury; - -// #[runtime::pallet_index(18)] -// pub type Contracts = pallet_contracts; - -// #[runtime::pallet_index(19)] -// pub type EVM = pallet_evm; - -// #[runtime::pallet_index(20)] -// pub type Ethereum = pallet_ethereum; - -// #[runtime::pallet_index(21)] -// pub type Sudo = pallet_sudo; - -// #[runtime::pallet_index(22)] -// pub type ImOnline = pallet_im_online; - -// #[runtime::pallet_index(23)] -// pub type AuthorityDiscovery = pallet_authority_discovery; - -// #[runtime::pallet_index(24)] -// pub type Offences = pallet_offences; - -// #[runtime::pallet_index(25)] -// pub type Scheduler = pallet_scheduler; - -// #[runtime::pallet_index(26)] -// pub type Utility = pallet_utility; - -// #[runtime::pallet_index(27)] -// pub type Identity = pallet_identity; - -// #[runtime::pallet_index(28)] -// pub type Vesting = pallet_vesting; - -// #[runtime::pallet_index(29)] -// pub type Multisig = pallet_multisig; - -// #[runtime::pallet_index(30)] -// pub type Bounties = pallet_bounties; - -// #[runtime::pallet_index(31)] -// pub type Tips = pallet_tips; - -// #[runtime::pallet_index(32)] -// pub type EvmAccounts = evm_accounts; - -// #[runtime::pallet_index(33)] -// pub type CloverClaims = clover_claims; - -// #[runtime::pallet_index(34)] -// pub type CloverEvminterop = clover_evm_interop; - -// #[runtime::pallet_index(35)] -// pub type VoterList = pallet_bags_list::; - -// #[runtime::pallet_index(36)] -// pub type Preimage = pallet_preimage; -// } - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub struct Runtime { @@ -1449,7 +1311,7 @@ construct_runtime!( VoterList: pallet_bags_list::, Preimage: pallet_preimage, - CloverCRC20: clover_crc20, + Statement: pallet_statement, } ); @@ -1498,7 +1360,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { + fn initialize_block(header: &::Header) { Executive::initialize_block(header) } } @@ -1566,6 +1428,15 @@ impl_runtime_apis! { } } + impl sp_statement_store::runtime_api::ValidateStatement for Runtime { + fn validate_statement( + source: sp_statement_store::runtime_api::StatementSource, + statement: sp_statement_store::Statement, + ) -> Result { + Statement::validate_statement(source, statement) + } + } + impl sp_consensus_babe::BabeApi for Runtime { fn configuration() -> sp_consensus_babe::BabeConfiguration { sp_consensus_babe::BabeConfiguration { @@ -1683,19 +1554,6 @@ impl_runtime_apis! { // } // } - impl sp_genesis_builder::GenesisBuilder for Runtime { - fn build_state(config: Vec) -> sp_genesis_builder::Result { - build_state::(config) - } - - fn get_preset(id: &Option) -> Option> { - get_preset::(id, |_| None) - } - - fn preset_names() -> Vec { - vec![] - } - } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi< Block, Balance, @@ -1900,10 +1758,6 @@ impl_runtime_apis! { pallet_ethereum::CurrentTransactionStatuses::::get() ) } - - fn initialize_pending_block(header: &::Header) { - Executive::initialize_block(header); - } } impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { diff --git a/runtime/src/mock.rs b/runtime/src/mock.rs index 8398b73..13342ed 100644 --- a/runtime/src/mock.rs +++ b/runtime/src/mock.rs @@ -6,30 +6,30 @@ use super::*; pub struct TestRuntime; impl frame_system::Config for TestRuntime { - type BaseCallFilter = (); - type AccountId = AccountId; - type RuntimeCall = RuntimeCall; - type Lookup = Indices; - type Nonce = Index; - type Hash = Hash; - type Hashing = BlakeTwo256; - type Header = generic::Header; - type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; - type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; - type DbWeight = RocksDbWeight; - type BlockExecutionWeight = BlockExecutionWeight; - type ExtrinsicBaseWeight = ExtrinsicBaseWeight; - type MaximumExtrinsicWeight = MaximumExtrinsicWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; - type Version = Version; - type PalletInfo = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type AccountData = pallet_balances::AccountData; - type SystemWeightInfo = (); + type BaseCallFilter = (); + type AccountId = AccountId; + type RuntimeCall = RuntimeCall; + type Lookup = Indices; + type Nonce = Index; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Header = generic::Header; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type BlockHashCount = BlockHashCount; + type MaximumBlockWeight = MaximumBlockWeight; + type DbWeight = RocksDbWeight; + type BlockExecutionWeight = BlockExecutionWeight; + type ExtrinsicBaseWeight = ExtrinsicBaseWeight; + type MaximumExtrinsicWeight = MaximumExtrinsicWeight; + type MaximumBlockLength = MaximumBlockLength; + type AvailableBlockRatio = AvailableBlockRatio; + type Version = Version; + type PalletInfo = (); + type OnNewAccount = (); + type OnKilledAccount = (); + type AccountData = pallet_balances::AccountData; + type SystemWeightInfo = (); } pub const ALICE: [u8; 32] = [0u8; 32]; @@ -38,62 +38,62 @@ pub const DAVE: [u8; 32] = [2u8; 32]; pub const CLV: CurrencyId = CurrencyId::CLV; pub struct ExtBuilder { - endowed_accounts: Vec<(AccountId, CurrencyId, Balance)>, + endowed_accounts: Vec<(AccountId, CurrencyId, Balance)>, } impl Default for ExtBuilder { - fn default() -> Self { - Self { - endowed_accounts: vec![], + fn default() -> Self { + Self { + endowed_accounts: vec![], + } } - } } impl ExtBuilder { - pub fn balances(mut self, endowed_accounts: Vec<(AccountId, CurrencyId, Balance)>) -> Self { - self.endowed_accounts = endowed_accounts; - self - } + pub fn balances(mut self, endowed_accounts: Vec<(AccountId, CurrencyId, Balance)>) -> Self { + self.endowed_accounts = endowed_accounts; + self + } - pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default() - .build_storage::() - .unwrap(); + pub fn build(self) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::default() + .build_storage::() + .unwrap(); - pallet_balances::GenesisConfig:: { - balances: self - .endowed_accounts - .clone() - .into_iter() - .filter(|(_, currency_id, _)| *currency_id == CLV) - // the balance of any account should always be more than existential deposit. - .map(|(account_id, _, _initial_balance)| (account_id, 500)) - .collect::>(), - } - .assimilate_storage(&mut t) - .unwrap(); + pallet_balances::GenesisConfig:: { + balances: self + .endowed_accounts + .clone() + .into_iter() + .filter(|(_, currency_id, _)| *currency_id == CLV) + // the balance of any account should always be more than existential deposit. + .map(|(account_id, _, _initial_balance)| (account_id, 500)) + .collect::>(), + } + .assimilate_storage(&mut t) + .unwrap(); - orml_tokens::GenesisConfig:: { - endowed_accounts: self - .endowed_accounts - .into_iter() - .filter(|(_, currency_id, _)| *currency_id != CLV) - .collect::>(), - } - .assimilate_storage(&mut t) - .unwrap(); + orml_tokens::GenesisConfig:: { + endowed_accounts: self + .endowed_accounts + .into_iter() + .filter(|(_, currency_id, _)| *currency_id != CLV) + .collect::>(), + } + .assimilate_storage(&mut t) + .unwrap(); - pallet_membership::GenesisConfig:: { - members: vec![ - AccountId::from(ALICE), - AccountId::from(BOB), - AccountId::from(DAVE), - ], - phantom: Default::default(), - } - .assimilate_storage(&mut t) - .unwrap(); + pallet_membership::GenesisConfig:: { + members: vec![ + AccountId::from(ALICE), + AccountId::from(BOB), + AccountId::from(DAVE), + ], + phantom: Default::default(), + } + .assimilate_storage(&mut t) + .unwrap(); - t.into() - } + t.into() + } } diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs index 249fd2e..0897550 100644 --- a/runtime/src/precompiles.rs +++ b/runtime/src/precompiles.rs @@ -3,33 +3,27 @@ use sp_core::H160; use sp_std::marker::PhantomData; use pallet_evm::{ - IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, + IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, }; - /// Precompiles for the Clover network. pub struct CloverPrecompiles(PhantomData); impl CloverPrecompiles where - R: pallet_evm::Config, + R: pallet_evm::Config, { - pub fn new() -> Self { - Self(Default::default()) - } - pub fn used_addresses() -> [H160; 4] { - [ - hash(1), - hash(2), - hash(3), - hash(4), - ] - } + pub fn new() -> Self { + Self(Default::default()) + } + pub fn used_addresses() -> [H160; 4] { + [hash(1), hash(2), hash(3), hash(4)] + } } impl PrecompileSet for CloverPrecompiles where - R: pallet_evm::Config, + R: pallet_evm::Config, { fn execute(&self, handle: &mut impl PrecompileHandle) -> Option { let (code_addr, context_addr) = (handle.code_address(), handle.context().address); @@ -39,8 +33,10 @@ where && code_addr > hash(9) && code_addr != context_addr { - return Some(Err(fp_evm::PrecompileFailure::Error{ - exit_status: fp_evm::ExitError::Other(sp_std::borrow::Cow::Borrowed("cannot be called with DELEGATECALL or CALLCODE")), + return Some(Err(fp_evm::PrecompileFailure::Error { + exit_status: fp_evm::ExitError::Other(sp_std::borrow::Cow::Borrowed( + "cannot be called with DELEGATECALL or CALLCODE", + )), })); }; diff --git a/runtime/src/tests.rs b/runtime/src/tests.rs index bde5ab8..ac52944 100644 --- a/runtime/src/tests.rs +++ b/runtime/src/tests.rs @@ -8,17 +8,30 @@ pub const CUSDT: CurrencyId = CurrencyId::CUSDT; #[test] fn test_balance() { - ExtBuilder::default() - .balances(vec![ - (AccountId::from(ALICE), CLV, 1000), - (AccountId::from(BOB), CUSDT, 1000), - ]) - .build() - .execute_with(|| { - assert_eq!(>::free_balance(CLV, &AccountId::from(ALICE)), 500); - assert_eq!(>::free_balance(CUSDT, &AccountId::from(BOB)), 1000); + ExtBuilder::default() + .balances(vec![ + (AccountId::from(ALICE), CLV, 1000), + (AccountId::from(BOB), CUSDT, 1000), + ]) + .build() + .execute_with(|| { + assert_eq!( + >::free_balance(CLV, &AccountId::from(ALICE)), + 500 + ); + assert_eq!( + >::free_balance(CUSDT, &AccountId::from(BOB)), + 1000 + ); - let _ = >::update_balance(CLV, &AccountId::from(ALICE), 1000); - assert_eq!(>::free_balance(CLV, &AccountId::from(ALICE)), 1500); - }); + let _ = >::update_balance( + CLV, + &AccountId::from(ALICE), + 1000, + ); + assert_eq!( + >::free_balance(CLV, &AccountId::from(ALICE)), + 1500 + ); + }); } diff --git a/runtime/src/voter_bags.rs b/runtime/src/voter_bags.rs index 40a7c60..5787f5c 100644 --- a/runtime/src/voter_bags.rs +++ b/runtime/src/voter_bags.rs @@ -35,204 +35,204 @@ pub const CONSTANT_RATIO: f64 = 1.0628253590743408; /// Upper thresholds delimiting the bag list. pub const THRESHOLDS: [u64; 200] = [ - 100_000_000_000_000, - 106_282_535_907_434, - 112_959_774_389_150, - 120_056_512_776_105, - 127_599_106_300_477, - 135_615_565_971_369, - 144_135_662_599_590, - 153_191_037_357_827, - 162_815_319_286_803, - 173_044_250_183_800, - 183_915_817_337_347, - 195_470_394_601_017, - 207_750_892_330_229, - 220_802_916_738_890, - 234_674_939_267_673, - 249_418_476_592_914, - 265_088_281_944_639, - 281_742_548_444_211, - 299_443_125_216_738, - 318_255_747_080_822, - 338_250_278_668_647, - 359_500_973_883_001, - 382_086_751_654_776, - 406_091_489_025_036, - 431_604_332_640_068, - 458_720_029_816_222, - 487_539_280_404_019, - 518_169_110_758_247, - 550_723_271_202_866, - 585_322_658_466_782, - 622_095_764_659_305, - 661_179_154_452_653, - 702_717_972_243_610, - 746_866_481_177_808, - 793_788_636_038_393, - 843_658_692_126_636, - 896_661_852_395_681, - 952_994_955_240_703, - 1_012_867_205_499_736, - 1_076_500_951_379_881, - 1_144_132_510_194_192, - 1_216_013_045_975_769, - 1_292_409_502_228_280, - 1_373_605_593_276_862, - 1_459_902_857_901_004, - 1_551_621_779_162_291, - 1_649_102_974_585_730, - 1_752_708_461_114_642, - 1_862_822_999_536_805, - 1_979_855_523_374_646, - 2_104_240_657_545_975, - 2_236_440_332_435_128, - 2_376_945_499_368_703, - 2_526_277_953_866_680, - 2_684_992_273_439_945, - 2_853_677_877_130_641, - 3_032_961_214_443_876, - 3_223_508_091_799_862, - 3_426_026_145_146_232, - 3_641_267_467_913_124, - 3_870_031_404_070_482, - 4_113_167_516_660_186, - 4_371_578_742_827_277, - 4_646_224_747_067_156, - 4_938_125_485_141_739, - 5_248_364_991_899_922, - 5_578_095_407_069_235, - 5_928_541_253_969_291, - 6_301_003_987_036_955, - 6_696_866_825_051_405, - 7_117_599_888_008_300, - 7_564_765_656_719_910, - 8_040_024_775_416_580, - 8_545_142_218_898_723, - 9_081_993_847_142_344, - 9_652_573_371_700_016, - 10_258_999_759_768_490, - 10_903_525_103_419_522, - 11_588_542_983_217_942, - 12_316_597_357_287_042, - 13_090_392_008_832_678, - 13_912_800_587_211_472, - 14_786_877_279_832_732, - 15_715_868_154_526_436, - 16_703_223_214_499_558, - 17_752_609_210_649_358, - 18_867_923_258_814_856, - 20_053_307_312_537_008, - 21_313_163_545_075_252, - 22_652_170_697_804_756, - 24_075_301_455_707_600, - 25_587_840_914_485_432, - 27_195_406_207_875_088, - 28_903_967_368_057_400, - 30_719_869_496_628_636, - 32_649_856_328_471_220, - 34_701_095_276_033_064, - 36_881_204_047_022_752, - 39_198_278_934_370_992, - 41_660_924_883_519_016, - 44_278_287_448_695_240, - 47_060_086_756_856_400, - 50_016_653_605_425_536, - 53_158_967_827_883_320, - 56_498_699_069_691_424, - 60_048_250_125_977_912, - 63_820_803_001_928_304, - 67_830_367_866_937_216, - 72_091_835_084_322_176, - 76_621_030_509_822_880, - 81_434_774_264_248_528, - 86_550_943_198_537_824, - 91_988_537_283_208_848, - 97_767_750_168_749_840, - 103_910_044_178_992_000, - 110_438_230_015_967_792, - 117_376_551_472_255_616, - 124_750_775_465_407_920, - 132_588_287_728_824_640, - 140_918_194_514_440_064, - 149_771_430_684_917_568, - 159_180_874_596_775_264, - 169_181_470_201_085_280, - 179_810_356_815_193_344, - 191_107_007_047_393_216, - 203_113_373_386_768_288, - 215_874_044_002_592_672, - 229_436_408_331_885_600, - 243_850_833_070_063_392, - 259_170_849_218_267_264, - 275_453_350_882_006_752, - 292_758_806_559_399_232, - 311_151_483_703_668_992, - 330_699_687_393_865_920, - 351_476_014_000_157_824, - 373_557_620_785_735_808, - 397_026_512_446_556_096, - 421_969_845_653_044_224, - 448_480_252_724_740_928, - 476_656_185_639_923_904, - 506_602_281_657_757_760, - 538_429_751_910_786_752, - 572_256_794_410_890_176, - 608_209_033_002_485_632, - 646_419_983_893_124_352, - 687_031_551_494_039_552, - 730_194_555_412_054_016, - 776_069_290_549_944_960, - 824_826_122_395_314_176, - 876_646_119_708_695_936, - 931_721_726_960_522_368, - 990_257_479_014_182_144, - 1_052_470_760_709_299_712, - 1_118_592_614_166_106_112, - 1_188_868_596_808_997_376, - 1_263_559_693_295_730_432, - 1_342_943_284_738_898_688, - 1_427_314_178_819_094_784, - 1_516_985_704_615_302_400, - 1_612_290_876_218_400_768, - 1_713_583_629_449_105_408, - 1_821_240_136_273_157_632, - 1_935_660_201_795_120_128, - 2_057_268_749_018_809_600, - 2_186_517_396_888_336_384, - 2_323_886_137_470_138_880, - 2_469_885_118_504_583_168, - 2_625_056_537_947_004_416, - 2_789_976_657_533_970_944, - 2_965_257_942_852_572_160, - 3_151_551_337_860_326_400, - 3_349_548_682_302_620_672, - 3_559_985_281_005_267_968, - 3_783_642_634_583_792_128, - 4_021_351_341_710_503_936, - 4_273_994_183_717_548_544, - 4_542_509_402_991_247_872, - 4_827_894_187_332_742_144, - 5_131_208_373_224_844_288, - 5_453_578_381_757_959_168, - 5_796_201_401_831_965_696, - 6_160_349_836_169_256_960, - 6_547_376_026_650_146_816, - 6_958_717_276_519_173_120, - 7_395_901_188_113_309_696, - 7_860_551_335_934_872_576, - 8_354_393_296_137_270_272, - 8_879_261_054_815_360_000, - 9_437_103_818_898_946_048, - 10_029_993_254_943_105_024, - 10_660_131_182_698_121_216, - 11_329_857_752_030_707_712, - 12_041_660_133_563_240_448, - 12_798_181_755_305_525_248, - 13_602_232_119_581_272_064, - 14_456_797_236_706_498_560, - 15_365_050_714_167_523_328, - 16_330_365_542_480_556_032, - 17_356_326_621_502_140_416, - 18_446_744_073_709_551_615, -]; \ No newline at end of file + 100_000_000_000_000, + 106_282_535_907_434, + 112_959_774_389_150, + 120_056_512_776_105, + 127_599_106_300_477, + 135_615_565_971_369, + 144_135_662_599_590, + 153_191_037_357_827, + 162_815_319_286_803, + 173_044_250_183_800, + 183_915_817_337_347, + 195_470_394_601_017, + 207_750_892_330_229, + 220_802_916_738_890, + 234_674_939_267_673, + 249_418_476_592_914, + 265_088_281_944_639, + 281_742_548_444_211, + 299_443_125_216_738, + 318_255_747_080_822, + 338_250_278_668_647, + 359_500_973_883_001, + 382_086_751_654_776, + 406_091_489_025_036, + 431_604_332_640_068, + 458_720_029_816_222, + 487_539_280_404_019, + 518_169_110_758_247, + 550_723_271_202_866, + 585_322_658_466_782, + 622_095_764_659_305, + 661_179_154_452_653, + 702_717_972_243_610, + 746_866_481_177_808, + 793_788_636_038_393, + 843_658_692_126_636, + 896_661_852_395_681, + 952_994_955_240_703, + 1_012_867_205_499_736, + 1_076_500_951_379_881, + 1_144_132_510_194_192, + 1_216_013_045_975_769, + 1_292_409_502_228_280, + 1_373_605_593_276_862, + 1_459_902_857_901_004, + 1_551_621_779_162_291, + 1_649_102_974_585_730, + 1_752_708_461_114_642, + 1_862_822_999_536_805, + 1_979_855_523_374_646, + 2_104_240_657_545_975, + 2_236_440_332_435_128, + 2_376_945_499_368_703, + 2_526_277_953_866_680, + 2_684_992_273_439_945, + 2_853_677_877_130_641, + 3_032_961_214_443_876, + 3_223_508_091_799_862, + 3_426_026_145_146_232, + 3_641_267_467_913_124, + 3_870_031_404_070_482, + 4_113_167_516_660_186, + 4_371_578_742_827_277, + 4_646_224_747_067_156, + 4_938_125_485_141_739, + 5_248_364_991_899_922, + 5_578_095_407_069_235, + 5_928_541_253_969_291, + 6_301_003_987_036_955, + 6_696_866_825_051_405, + 7_117_599_888_008_300, + 7_564_765_656_719_910, + 8_040_024_775_416_580, + 8_545_142_218_898_723, + 9_081_993_847_142_344, + 9_652_573_371_700_016, + 10_258_999_759_768_490, + 10_903_525_103_419_522, + 11_588_542_983_217_942, + 12_316_597_357_287_042, + 13_090_392_008_832_678, + 13_912_800_587_211_472, + 14_786_877_279_832_732, + 15_715_868_154_526_436, + 16_703_223_214_499_558, + 17_752_609_210_649_358, + 18_867_923_258_814_856, + 20_053_307_312_537_008, + 21_313_163_545_075_252, + 22_652_170_697_804_756, + 24_075_301_455_707_600, + 25_587_840_914_485_432, + 27_195_406_207_875_088, + 28_903_967_368_057_400, + 30_719_869_496_628_636, + 32_649_856_328_471_220, + 34_701_095_276_033_064, + 36_881_204_047_022_752, + 39_198_278_934_370_992, + 41_660_924_883_519_016, + 44_278_287_448_695_240, + 47_060_086_756_856_400, + 50_016_653_605_425_536, + 53_158_967_827_883_320, + 56_498_699_069_691_424, + 60_048_250_125_977_912, + 63_820_803_001_928_304, + 67_830_367_866_937_216, + 72_091_835_084_322_176, + 76_621_030_509_822_880, + 81_434_774_264_248_528, + 86_550_943_198_537_824, + 91_988_537_283_208_848, + 97_767_750_168_749_840, + 103_910_044_178_992_000, + 110_438_230_015_967_792, + 117_376_551_472_255_616, + 124_750_775_465_407_920, + 132_588_287_728_824_640, + 140_918_194_514_440_064, + 149_771_430_684_917_568, + 159_180_874_596_775_264, + 169_181_470_201_085_280, + 179_810_356_815_193_344, + 191_107_007_047_393_216, + 203_113_373_386_768_288, + 215_874_044_002_592_672, + 229_436_408_331_885_600, + 243_850_833_070_063_392, + 259_170_849_218_267_264, + 275_453_350_882_006_752, + 292_758_806_559_399_232, + 311_151_483_703_668_992, + 330_699_687_393_865_920, + 351_476_014_000_157_824, + 373_557_620_785_735_808, + 397_026_512_446_556_096, + 421_969_845_653_044_224, + 448_480_252_724_740_928, + 476_656_185_639_923_904, + 506_602_281_657_757_760, + 538_429_751_910_786_752, + 572_256_794_410_890_176, + 608_209_033_002_485_632, + 646_419_983_893_124_352, + 687_031_551_494_039_552, + 730_194_555_412_054_016, + 776_069_290_549_944_960, + 824_826_122_395_314_176, + 876_646_119_708_695_936, + 931_721_726_960_522_368, + 990_257_479_014_182_144, + 1_052_470_760_709_299_712, + 1_118_592_614_166_106_112, + 1_188_868_596_808_997_376, + 1_263_559_693_295_730_432, + 1_342_943_284_738_898_688, + 1_427_314_178_819_094_784, + 1_516_985_704_615_302_400, + 1_612_290_876_218_400_768, + 1_713_583_629_449_105_408, + 1_821_240_136_273_157_632, + 1_935_660_201_795_120_128, + 2_057_268_749_018_809_600, + 2_186_517_396_888_336_384, + 2_323_886_137_470_138_880, + 2_469_885_118_504_583_168, + 2_625_056_537_947_004_416, + 2_789_976_657_533_970_944, + 2_965_257_942_852_572_160, + 3_151_551_337_860_326_400, + 3_349_548_682_302_620_672, + 3_559_985_281_005_267_968, + 3_783_642_634_583_792_128, + 4_021_351_341_710_503_936, + 4_273_994_183_717_548_544, + 4_542_509_402_991_247_872, + 4_827_894_187_332_742_144, + 5_131_208_373_224_844_288, + 5_453_578_381_757_959_168, + 5_796_201_401_831_965_696, + 6_160_349_836_169_256_960, + 6_547_376_026_650_146_816, + 6_958_717_276_519_173_120, + 7_395_901_188_113_309_696, + 7_860_551_335_934_872_576, + 8_354_393_296_137_270_272, + 8_879_261_054_815_360_000, + 9_437_103_818_898_946_048, + 10_029_993_254_943_105_024, + 10_660_131_182_698_121_216, + 11_329_857_752_030_707_712, + 12_041_660_133_563_240_448, + 12_798_181_755_305_525_248, + 13_602_232_119_581_272_064, + 14_456_797_236_706_498_560, + 15_365_050_714_167_523_328, + 16_330_365_542_480_556_032, + 17_356_326_621_502_140_416, + 18_446_744_073_709_551_615, +]; From 446255a232b2b3bc1d1534767719b6af3509c98d Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Thu, 21 Nov 2024 18:27:32 +0600 Subject: [PATCH 2/6] Downgrade toolchain as well --- runtime/build.rs | 16 ++++++++++------ rust-toolchain | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/runtime/build.rs b/runtime/build.rs index 18a76f7..80b137c 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,13 @@ -use substrate_wasm_builder::WasmBuilder; +// use substrate_wasm_builder::WasmBuilder; fn main() { - WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() + // WasmBuilder::new() + // .with_current_project() + // .export_heap_base() + // .import_memory() + // .build() + #[cfg(feature = "std")] + { + substrate_wasm_builder::WasmBuilder::build_using_defaults(); + } } diff --git a/rust-toolchain b/rust-toolchain index 36fcc2a..e9a8cc5 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2024-08-25" +channel = "nightly-2024-04-25" components = [ "rustfmt", "clippy" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" From 63733d24df2bab0c0efcfb7ad13a38b6fcda8971 Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Thu, 21 Nov 2024 18:44:22 +0600 Subject: [PATCH 3/6] Make `clover` default run --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 87f1946..441efd5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ panic = 'unwind' [workspace.package] description = "Clover Network" +default-run = "clover" [workspace] members = [ From c21449da1f288f687b52c3def44a577a017dc53c Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Sat, 23 Nov 2024 14:04:05 +0600 Subject: [PATCH 4/6] Remove frontier stuff --- Cargo.lock | 548 ++----------------------------------- node/Cargo.toml | 15 - node/src/chain_spec.rs | 64 +---- node/src/cli.rs | 6 - node/src/command.rs | 13 +- node/src/eth.rs | 397 --------------------------- node/src/lib.rs | 3 - node/src/main.rs | 1 - node/src/rpc.rs | 50 +--- node/src/service.rs | 173 +----------- runtime/Cargo.toml | 12 - runtime/src/lib.rs | 359 +----------------------- runtime/src/precompiles.rs | 63 ----- 13 files changed, 60 insertions(+), 1644 deletions(-) delete mode 100644 node/src/eth.rs delete mode 100644 runtime/src/precompiles.rs diff --git a/Cargo.lock b/Cargo.lock index 1fdf554..7d4c02b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,12 +104,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" - [[package]] name = "android-tzdata" version = "0.1.1" @@ -517,15 +511,6 @@ dependencies = [ "pin-project-lite 0.2.15", ] -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - [[package]] name = "atty" version = "0.2.14" @@ -1094,20 +1079,9 @@ version = "0.9.0" dependencies = [ "array-bytes", "clap 4.5.21", - "clover-babe-consensus-provider", "clover-primitives", "clover-rpc", "clover-runtime", - "fc-api", - "fc-consensus", - "fc-db", - "fc-mapping-sync", - "fc-rpc", - "fc-rpc-core", - "fc-storage", - "fp-consensus", - "fp-evm", - "fp-rpc", "frame-benchmarking", "frame-benchmarking-cli", "frame-system", @@ -1117,8 +1091,6 @@ dependencies = [ "jsonrpsee", "log", "pallet-contracts", - "pallet-ethereum", - "pallet-evm", "pallet-im-online", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", @@ -1279,10 +1251,7 @@ dependencies = [ "clover-rpc-runtime-api", "clover-traits", "enum-iterator", - "evm 0.39.1", "evm-accounts", - "fp-evm", - "fp-rpc", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -1301,9 +1270,6 @@ dependencies = [ "pallet-contracts-primitives", "pallet-democracy", "pallet-elections-phragmen", - "pallet-ethereum", - "pallet-evm", - "pallet-evm-precompile-simple", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -1601,21 +1567,6 @@ dependencies = [ "wasmtime-types", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" version = "1.4.2" @@ -1644,15 +1595,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -2069,12 +2011,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - [[package]] name = "downcast" version = "0.11.0" @@ -2178,9 +2114,6 @@ name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -dependencies = [ - "serde", -] [[package]] name = "elliptic-curve" @@ -2303,24 +2236,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "ethereum" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" -dependencies = [ - "bytes", - "ethereum-types", - "hash-db 0.15.2", - "hash256-std-hasher", - "parity-scale-codec", - "rlp", - "scale-info", - "serde", - "sha3 0.10.8", - "triehash", -] - [[package]] name = "ethereum" version = "0.15.0" @@ -2329,7 +2244,7 @@ checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" dependencies = [ "bytes", "ethereum-types", - "hash-db 0.16.0", + "hash-db", "hash256-std-hasher", "parity-scale-codec", "rlp", @@ -2382,26 +2297,6 @@ dependencies = [ "pin-project-lite 0.2.15", ] -[[package]] -name = "evm" -version = "0.39.1" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" -dependencies = [ - "auto_impl", - "environmental", - "ethereum 0.14.0", - "evm-core 0.39.0", - "evm-gasometer 0.39.0", - "evm-runtime 0.39.0", - "log", - "parity-scale-codec", - "primitive-types", - "rlp", - "scale-info", - "serde", - "sha3 0.10.8", -] - [[package]] name = "evm" version = "0.41.1" @@ -2410,10 +2305,10 @@ checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" dependencies = [ "auto_impl", "environmental", - "ethereum 0.15.0", - "evm-core 0.41.0", - "evm-gasometer 0.41.0", - "evm-runtime 0.41.0", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", "log", "parity-scale-codec", "primitive-types", @@ -2444,17 +2339,6 @@ dependencies = [ "type-utils", ] -[[package]] -name = "evm-core" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" -dependencies = [ - "parity-scale-codec", - "primitive-types", - "scale-info", - "serde", -] - [[package]] name = "evm-core" version = "0.41.0" @@ -2467,17 +2351,6 @@ dependencies = [ "serde", ] -[[package]] -name = "evm-gasometer" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" -dependencies = [ - "environmental", - "evm-core 0.39.0", - "evm-runtime 0.39.0", - "primitive-types", -] - [[package]] name = "evm-gasometer" version = "0.41.0" @@ -2485,23 +2358,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" dependencies = [ "environmental", - "evm-core 0.41.0", - "evm-runtime 0.41.0", + "evm-core", + "evm-runtime", "primitive-types", ] -[[package]] -name = "evm-runtime" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" -dependencies = [ - "auto_impl", - "environmental", - "evm-core 0.39.0", - "primitive-types", - "sha3 0.10.8", -] - [[package]] name = "evm-runtime" version = "0.41.0" @@ -2510,7 +2371,7 @@ checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" dependencies = [ "auto_impl", "environmental", - "evm-core 0.41.0", + "evm-core", "primitive-types", "sha3 0.10.8", ] @@ -2591,49 +2452,23 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "fc-consensus" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "async-trait", - "fp-consensus", - "fp-rpc", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-consensus", - "sp-runtime", - "thiserror", -] - [[package]] name = "fc-db" version = "2.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ "async-trait", - "ethereum 0.15.0", "fc-api", - "fc-storage", - "fp-consensus", - "fp-rpc", "fp-storage", - "futures 0.3.31", "log", "parity-db", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", "sc-client-db", - "sp-api", "sp-blockchain", "sp-core", "sp-database", "sp-runtime", - "sp-storage", - "sqlx", - "tokio", ] [[package]] @@ -2654,9 +2489,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core", "sp-runtime", - "tokio", ] [[package]] @@ -2664,9 +2497,9 @@ name = "fc-rpc" version = "2.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum 0.15.0", + "ethereum", "ethereum-types", - "evm 0.41.1", + "evm", "fc-api", "fc-mapping-sync", "fc-rpc-core", @@ -2718,7 +2551,7 @@ name = "fc-rpc-core" version = "1.1.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum 0.15.0", + "ethereum", "ethereum-types", "jsonrpsee", "rustc-hex", @@ -2731,7 +2564,7 @@ name = "fc-storage" version = "1.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum 0.15.0", + "ethereum", "ethereum-types", "fp-rpc", "fp-storage", @@ -2868,38 +2701,12 @@ dependencies = [ "num-traits", ] -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", -] - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "fork-tree" version = "3.0.0" @@ -2941,32 +2748,19 @@ name = "fp-consensus" version = "2.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum 0.15.0", + "ethereum", "parity-scale-codec", "sp-core", "sp-runtime", "sp-std", ] -[[package]] -name = "fp-ethereum" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum 0.15.0", - "ethereum-types", - "fp-evm", - "frame-support", - "parity-scale-codec", - "sp-std", -] - [[package]] name = "fp-evm" version = "3.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "evm 0.41.1", + "evm", "frame-support", "num_enum", "parity-scale-codec", @@ -2982,7 +2776,7 @@ name = "fp-rpc" version = "3.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ - "ethereum 0.15.0", + "ethereum", "ethereum-types", "fp-evm", "parity-scale-codec", @@ -3344,17 +3138,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api 0.4.12", - "parking_lot 0.12.3", -] - [[package]] name = "futures-io" version = "0.3.31" @@ -3592,12 +3375,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - [[package]] name = "hash-db" version = "0.16.0" @@ -3631,31 +3408,12 @@ dependencies = [ "ahash 0.8.11", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "allocator-api2", -] - [[package]] name = "hashbrown" version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - [[package]] name = "heck" version = "0.3.3" @@ -3670,9 +3428,6 @@ name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] [[package]] name = "heck" @@ -5078,17 +4833,6 @@ dependencies = [ "libsecp256k1-core", ] -[[package]] -name = "libsqlite3-sys" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - [[package]] name = "libz-sys" version = "1.1.20" @@ -5340,7 +5084,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "hash-db 0.16.0", + "hash-db", ] [[package]] @@ -5532,23 +5276,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "netlink-packet-core" version = "0.7.0" @@ -5801,50 +5528,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags 2.6.0", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2 1.0.91", - "quote 1.0.37", - "syn 2.0.89", -] - [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -6066,42 +5755,19 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-ethereum" -version = "4.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum 0.15.0", - "ethereum-types", - "evm 0.41.1", - "fp-consensus", - "fp-ethereum", - "fp-evm", - "fp-rpc", - "fp-storage", - "frame-support", - "frame-system", - "pallet-evm", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-evm" version = "6.0.0-dev" source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" dependencies = [ "environmental", - "evm 0.41.1", + "evm", "fp-account", "fp-evm", "frame-benchmarking", "frame-support", "frame-system", - "hash-db 0.16.0", + "hash-db", "hex", "hex-literal 0.4.1", "impl-trait-for-tuples 0.2.3", @@ -6115,16 +5781,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-evm-precompile-simple" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "fp-evm", - "ripemd", - "sp-io", -] - [[package]] name = "pallet-grandpa" version = "4.0.0-dev" @@ -7508,15 +7164,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "rlp" version = "0.5.2" @@ -7943,7 +7590,7 @@ name = "sc-client-db" version = "0.10.0-dev" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "hash-db 0.16.0", + "hash-db", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -9342,7 +8989,7 @@ name = "sp-api" version = "4.0.0-dev" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", "parity-scale-codec", "scale-info", @@ -9536,7 +9183,7 @@ dependencies = [ "dyn-clonable", "ed25519-zebra", "futures 0.3.31", - "hash-db 0.16.0", + "hash-db", "hash256-std-hasher", "impl-serde", "lazy_static", @@ -9843,7 +9490,7 @@ name = "sp-state-machine" version = "0.28.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -9956,7 +9603,7 @@ version = "22.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#a682d265f5556d1c974fa53d69764ceabfd1f7dd" dependencies = [ "ahash 0.8.11", - "hash-db 0.16.0", + "hash-db", "hashbrown 0.13.2", "lazy_static", "memory-db", @@ -10040,9 +9687,6 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api 0.4.12", -] [[package]] name = "spki" @@ -10054,126 +9698,6 @@ dependencies = [ "der", ] -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" -dependencies = [ - "ahash 0.8.11", - "atoi", - "byteorder", - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener 2.5.3", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashlink", - "hex", - "indexmap 2.6.0", - "log", - "memchr", - "native-tls", - "once_cell", - "paste", - "percent-encoding 2.3.1", - "serde", - "sha2 0.10.8", - "smallvec", - "sqlformat", - "thiserror", - "tokio", - "tokio-stream", - "tracing", - "url 2.5.3", -] - -[[package]] -name = "sqlx-macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" -dependencies = [ - "proc-macro2 1.0.91", - "quote 1.0.37", - "sqlx-core", - "sqlx-macros-core", - "syn 1.0.109", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "hex", - "once_cell", - "proc-macro2 1.0.91", - "quote 1.0.37", - "serde", - "serde_json", - "sha2 0.10.8", - "sqlx-core", - "sqlx-sqlite", - "syn 1.0.109", - "tempfile", - "tokio", - "url 2.5.3", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding 2.3.1", - "serde", - "sqlx-core", - "tracing", - "url 2.5.3", - "urlencoding", -] - [[package]] name = "ss58-registry" version = "1.51.0" @@ -10984,7 +10508,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ - "hash-db 0.16.0", + "hash-db", "hashbrown 0.13.2", "log", "rustc-hex", @@ -10997,17 +10521,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db 0.16.0", -] - -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db 0.15.2", - "rlp", + "hash-db", ] [[package]] @@ -11163,12 +10677,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "universal-hash" version = "0.5.1" @@ -11225,12 +10733,6 @@ dependencies = [ "percent-encoding 2.3.1", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf16_iter" version = "1.0.5" diff --git a/node/Cargo.toml b/node/Cargo.toml index c868a28..909d467 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -30,7 +30,6 @@ serde_json = { workspace = true } parity-scale-codec = { workspace = true } rand = { workspace = true } -clover-babe-consensus-provider = { workspace = true } frame-benchmarking = { workspace = true } frame-benchmarking-cli = { workspace = true } frame-system = { workspace = true } @@ -92,20 +91,7 @@ sp-transaction-storage-proof = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } hex-literal = { workspace = true } sc-telemetry = { workspace = true } -pallet-evm = { workspace = true } pallet-im-online = { workspace = true } -pallet-ethereum = { workspace = true } -fc-rpc = { workspace = true, features = ["rpc-binary-search-estimate"] } -fp-rpc = { workspace = true } -fc-api = { workspace = true } - -fc-consensus = { workspace = true } -fp-consensus = { workspace = true } -fp-evm = { workspace = true } -fc-db = { workspace = true } -fc-rpc-core = { workspace = true } -fc-storage = { workspace = true } -fc-mapping-sync = { workspace = true, features = ["sql"] } primitive-types = { workspace = true, features = ["rlp", "byteorder"] } [build-dependencies] @@ -118,4 +104,3 @@ cli = [ "sc-cli", "structopt" ] runtime-benchmarks = [ "frame-benchmarking-cli/runtime-benchmarks" ] # TODO: enable crates with `try-runtime` feature try-runtime = [] -txpool = ["fc-rpc/txpool"] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index d2aab4c..5f2a2ba 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,19 +1,15 @@ -use std::collections::BTreeMap; -use std::str::FromStr; - use clover_primitives::currency::*; pub use clover_primitives::{AccountId, Balance, Signature}; pub use clover_runtime::RuntimeGenesisConfig; use clover_runtime::{ wasm_binary_unwrap, BabeConfig, BalancesConfig, Block, CouncilConfig, DemocracyConfig, - EVMConfig, EthereumConfig, ImOnlineConfig, IndicesConfig, SessionConfig, SessionKeys, - StakerStatus, StakingConfig, SudoConfig, SystemConfig, TechnicalCommitteeConfig, + ImOnlineConfig, IndicesConfig, SessionConfig, SessionKeys, StakerStatus, StakingConfig, + SudoConfig, SystemConfig, TechnicalCommitteeConfig, }; -use fp_evm::GenesisAccount; use hex_literal::hex; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; use sc_chain_spec::ChainSpecExtension; -use sc_service::{ChainType, Properties}; +use sc_service::ChainType; use sc_telemetry::TelemetryEndpoints; use serde::{Deserialize, Serialize}; use serde_json::json; @@ -21,7 +17,7 @@ use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_babe::AuthorityId as BabeId; use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::crypto::UncheckedInto; -use sp_core::{sr25519, Pair, Public, H160, U256}; +use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; use sp_runtime::Perbill; type AccountPublic = ::Signer; @@ -168,7 +164,6 @@ fn staging_testnet_config_genesis() -> RuntimeGenesisConfig { vec![], root_key, Some(endowed_accounts), - dev_endowed_evm_accounts(), ) } @@ -228,46 +223,6 @@ pub fn authority_keys_from_seed( ) } -/// Get hard coded endowed account for EVM. -fn endowed_evm_account() -> BTreeMap { - let endowed_account = vec![ - // clover fauct - H160::from_str("9157f0316f375e4ccf67f8d21ae0881d0abcbb21").unwrap(), - ]; - get_endowed_evm_accounts(endowed_account) -} - -/// Get hard coded endowed accounts for EVM. -fn dev_endowed_evm_accounts() -> BTreeMap { - let endowed_account = vec![ - H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b").unwrap(), - H160::from_str("e6206C7f064c7d77C6d8e3eD8601c9AA435419cE").unwrap(), - // the dev account key - // seed: bottom drive obey lake curtain smoke basket hold race lonely fit walk - // private key: 0x03183f27e9d78698a05c24eb6732630eb17725fcf2b53ee3a6a635d6ff139680 - H160::from_str("aed40f2261ba43b4dffe484265ce82d8ffe2b4db").unwrap(), - ]; - - get_endowed_evm_accounts(endowed_account) -} - -/// Helper function to convert endowed accounts to EVM genesis accounts. -fn get_endowed_evm_accounts(endowed_accounts: Vec) -> BTreeMap { - let mut evm_accounts = BTreeMap::new(); - for account in endowed_accounts { - evm_accounts.insert( - account, - GenesisAccount { - nonce: U256::from(0), - balance: U256::from(1_000 * DOLLARS), - storage: Default::default(), - code: vec![], - }, - ); - } - evm_accounts -} - /// Development testnet genesis fn development_config_genesis() -> RuntimeGenesisConfig { testnet_genesis( @@ -275,7 +230,6 @@ fn development_config_genesis() -> RuntimeGenesisConfig { vec![], get_account_id_from_seed::("Alice"), None, - dev_endowed_evm_accounts(), ) } @@ -327,7 +281,6 @@ fn local_testnet_genesis() -> RuntimeGenesisConfig { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ]), - endowed_evm_account(), ) } @@ -414,7 +367,6 @@ fn local_rose_testnet_genesis() -> RuntimeGenesisConfig { // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), ]), - endowed_evm_account(), ) } @@ -518,7 +470,6 @@ fn iris_testnet_genesis() -> RuntimeGenesisConfig { // 5CPQQYs3wf32fr5PhmmfFQEeVzD1Zy9Hdo8LFzQYuhP8XHW6 hex!["0e42eb6f65a8ef5e3f3c3cdb5b2c3be646e791abd76e2224d5847cde786b2e01"].into(), ]), - endowed_evm_account(), ) } @@ -567,7 +518,6 @@ pub fn testnet_genesis( initial_nominators: Vec, root_key: AccountId, endowed_accounts: Option>, - endowed_eth_accounts: BTreeMap, ) -> RuntimeGenesisConfig { let mut endowed_accounts: Vec = endowed_accounts.unwrap_or_else(|| { vec![ @@ -638,11 +588,6 @@ pub fn testnet_genesis( .map(|x| (x, ENDOWMENT)) .collect(), }, - evm: EVMConfig { - accounts: endowed_eth_accounts, - ..Default::default() - }, - ethereum: EthereumConfig::default(), im_online: ImOnlineConfig { keys: vec![] }, indices: IndicesConfig { indices: vec![] }, session: SessionConfig { @@ -704,7 +649,6 @@ pub(crate) mod tests { vec![], get_account_id_from_seed::("Alice"), None, - dev_endowed_evm_accounts(), ) } diff --git a/node/src/cli.rs b/node/src/cli.rs index 053c003..184971b 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -16,8 +16,6 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::eth::EthConfiguration; - /// An overarching CLI command definition. #[derive(Debug, clap::Parser)] pub struct Cli { @@ -43,10 +41,6 @@ pub struct Cli { #[allow(missing_docs)] #[clap(flatten)] pub storage_monitor: sc_storage_monitor::StorageMonitorParams, - - /// Configuration for the Ethereum compatibility layer. - #[command(flatten)] - pub eth: EthConfiguration, } /// Possible subcommands of the main binary. diff --git a/node/src/command.rs b/node/src/command.rs index 89f93d6..b5b4632 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -21,7 +21,6 @@ use crate::cli::{Cli, Subcommand}; use crate::service::{new_partial, FullClient}; use crate::{chain_spec, service}; use clover_primitives::Block; -// use clover_runtime::{ExistentialDeposit, RuntimeApi}; use frame_benchmarking_cli::*; use sc_cli::{Result, SubstrateCli}; use sc_consensus_grandpa as grandpa; @@ -112,7 +111,7 @@ pub fn run() -> Result<()> { } BenchmarkCmd::Block(cmd) => { // ensure that we keep the task manager alive - let partial = new_partial(&config, &cli.eth)?; + let partial = new_partial(&config)?; cmd.run(partial.client) } #[cfg(not(feature = "runtime-benchmarks"))] @@ -186,7 +185,7 @@ pub fn run() -> Result<()> { task_manager, import_queue, .. - } = new_partial(&config, &cli.eth)?; + } = new_partial(&config)?; Ok((cmd.run(client, import_queue), task_manager)) }) } @@ -197,7 +196,7 @@ pub fn run() -> Result<()> { client, task_manager, .. - } = new_partial(&config, &cli.eth)?; + } = new_partial(&config)?; Ok((cmd.run(client, config.database), task_manager)) }) } @@ -208,7 +207,7 @@ pub fn run() -> Result<()> { client, task_manager, .. - } = new_partial(&config, &cli.eth)?; + } = new_partial(&config)?; Ok((cmd.run(client, config.chain_spec), task_manager)) }) } @@ -220,7 +219,7 @@ pub fn run() -> Result<()> { task_manager, import_queue, .. - } = new_partial(&config, &cli.eth)?; + } = new_partial(&config)?; Ok((cmd.run(client, import_queue), task_manager)) }) } @@ -236,7 +235,7 @@ pub fn run() -> Result<()> { task_manager, backend, .. - } = new_partial(&config, &cli.eth)?; + } = new_partial(&config)?; let aux_revert = Box::new(|client: Arc, backend, blocks| { sc_consensus_babe::revert(client.clone(), backend, blocks)?; grandpa::revert(client, blocks)?; diff --git a/node/src/eth.rs b/node/src/eth.rs deleted file mode 100644 index 5d48371..0000000 --- a/node/src/eth.rs +++ /dev/null @@ -1,397 +0,0 @@ -use clover_runtime::opaque::Block; -use fc_rpc::EthTask; -pub use fc_rpc::{EthBlockDataCacheTask, EthConfig, OverrideHandle, StorageOverride}; -pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; -use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; -use futures::future; -use futures::prelude::*; -use jsonrpsee::RpcModule; -use sc_client_api::backend::{Backend, StorageProvider}; -use sc_client_api::client::BlockchainEvents; -use sc_client_api::{AuxStore, UsageProvider}; -use sc_consensus_babe::Epoch; -use sc_consensus_epochs::SharedEpochChanges; -use sc_network::NetworkService; -use sc_network_sync::SyncingService; -use sc_rpc::SubscriptionTaskExecutor; -use sc_service::error::Error as ServiceError; -use sc_service::{Configuration, TaskManager}; -use sc_transaction_pool::{ChainApi, Pool}; -use sc_transaction_pool_api::TransactionPool; -use sp_api::{CallApiAt, ProvideRuntimeApi}; -use sp_block_builder::BlockBuilder as BlockBuilderApi; -use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sp_consensus_babe::{AuthorityId as BabeId, BabeApi, BabeAuthorityWeight}; -use sp_core::H256; -use sp_inherents::CreateInherentDataProviders; -use sp_keystore::KeystorePtr; -use sp_runtime::traits::Block as BlockT; -use std::collections::BTreeMap; -use std::path::PathBuf; -use std::sync::{Arc, Mutex}; -use std::time::Duration; - -use crate::service::{FullBackend, FullClient}; - -/// Frontier DB backend type. -pub type FrontierBackend = fc_db::Backend; - -pub fn db_config_dir(config: &Configuration) -> PathBuf { - config.base_path.config_dir(config.chain_spec.id()) -} - -/// Avalailable frontier backend types. -#[derive(Debug, Copy, Clone, Default, clap::ValueEnum)] -pub enum BackendType { - /// Either RocksDb or ParityDb as per inherited from the global backend settings. - #[default] - KeyValue, - /// Sql database with custom log indexing. - Sql, -} - -/// The ethereum-compatibility configuration used to run a node. -#[derive(Clone, Debug, clap::Parser)] -pub struct EthConfiguration { - /// Maximum number of logs in a query. - #[arg(long, default_value = "10000")] - pub max_past_logs: u32, - - /// Maximum fee history cache size. - #[arg(long, default_value = "2048")] - pub fee_history_limit: u64, - - #[arg(long)] - pub enable_dev_signer: bool, - - /// The dynamic-fee pallet target gas price set by block author - #[arg(long, default_value = "1")] - pub target_gas_price: u64, - - /// Maximum allowed gas limit will be `block.gas_limit * execute_gas_limit_multiplier` - /// when using eth_call/eth_estimateGas. - #[arg(long, default_value = "10")] - pub execute_gas_limit_multiplier: u64, - - /// Size in bytes of the LRU cache for block data. - #[arg(long, default_value = "50")] - pub eth_log_block_cache: usize, - - /// Size in bytes of the LRU cache for transactions statuses data. - #[arg(long, default_value = "50")] - pub eth_statuses_cache: usize, - - /// Sets the frontier backend type (KeyValue or Sql) - #[arg(long, value_enum, ignore_case = true, default_value_t = BackendType::default())] - pub frontier_backend_type: BackendType, - - // Sets the SQL backend's pool size. - #[arg(long, default_value = "100")] - pub frontier_sql_backend_pool_size: u32, - - /// Sets the SQL backend's query timeout in number of VM ops. - #[arg(long, default_value = "10000000")] - pub frontier_sql_backend_num_ops_timeout: u32, - - /// Sets the SQL backend's auxiliary thread limit. - #[arg(long, default_value = "4")] - pub frontier_sql_backend_thread_count: u32, - - /// Sets the SQL backend's query timeout in number of VM ops. - /// Default value is 200MB. - #[arg(long, default_value = "209715200")] - pub frontier_sql_backend_cache_size: u64, -} - -pub struct FrontierPartialComponents { - pub filter_pool: Option, - pub fee_history_cache: FeeHistoryCache, - pub fee_history_cache_limit: FeeHistoryCacheLimit, -} - -pub fn new_frontier_partial( - config: &EthConfiguration, -) -> Result { - Ok(FrontierPartialComponents { - filter_pool: Some(Arc::new(Mutex::new(BTreeMap::new()))), - fee_history_cache: Arc::new(Mutex::new(BTreeMap::new())), - fee_history_cache_limit: config.fee_history_limit, - }) -} - -/// Spawn tasks for the Ethereum compatibility layer. -pub async fn spawn_frontier_tasks( - task_manager: &TaskManager, - client: Arc, - backend: Arc, - frontier_backend: FrontierBackend, - filter_pool: Option, - overrides: Arc>, - fee_history_cache: FeeHistoryCache, - fee_history_cache_limit: FeeHistoryCacheLimit, - sync: Arc>, - pubsub_notification_sinks: Arc< - fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - >, - >, -) { - // Spawn main mapping sync worker background task. - match frontier_backend { - fc_db::Backend::KeyValue(b) => { - task_manager.spawn_essential_handle().spawn( - "frontier-mapping-sync-worker", - Some("frontier"), - fc_mapping_sync::kv::MappingSyncWorker::new( - client.import_notification_stream(), - Duration::new(6, 0), - client.clone(), - backend, - overrides.clone(), - Arc::new(b), - 3, - 0, - fc_mapping_sync::SyncStrategy::Normal, - sync, - pubsub_notification_sinks, - ) - .for_each(|()| future::ready(())), - ); - } - fc_db::Backend::Sql(b) => { - task_manager.spawn_essential_handle().spawn_blocking( - "frontier-mapping-sync-worker", - Some("frontier"), - fc_mapping_sync::sql::SyncWorker::run( - client.clone(), - backend, - Arc::new(b), - client.import_notification_stream(), - fc_mapping_sync::sql::SyncWorkerConfig { - read_notification_timeout: Duration::from_secs(10), - check_indexed_blocks_interval: Duration::from_secs(60), - }, - fc_mapping_sync::SyncStrategy::Parachain, - sync, - pubsub_notification_sinks, - ), - ); - } - } - - // Spawn Frontier EthFilterApi maintenance task. - if let Some(filter_pool) = filter_pool { - // Each filter is allowed to stay in the pool for 100 blocks. - const FILTER_RETAIN_THRESHOLD: u64 = 100; - task_manager.spawn_essential_handle().spawn( - "frontier-filter-pool", - Some("frontier"), - EthTask::filter_pool_task(client.clone(), filter_pool, FILTER_RETAIN_THRESHOLD), - ); - } - - // Spawn Frontier FeeHistory cache maintenance task. - task_manager.spawn_essential_handle().spawn( - "frontier-fee-history", - Some("frontier"), - EthTask::fee_history_task( - client, - overrides, - fee_history_cache, - fee_history_cache_limit, - ), - ); -} - -/// Extra dependencies for Ethereum compatibility. -pub struct EthDeps { - /// The client instance to use. - pub client: Arc, - /// Transaction pool instance. - pub pool: Arc

, - /// Graph pool instance. - pub graph: Arc>, - /// Ethereum transaction converter. - pub converter: Option, - /// The Node authority flag - pub is_authority: bool, - /// Whether to enable dev signer - pub enable_dev_signer: bool, - /// Network service - pub network: Arc>, - /// Chain syncing service - pub sync: Arc>, - /// Frontier Backend. - pub frontier_backend: Arc>, - /// Ethereum data access overrides. - pub overrides: Arc>, - /// Cache for Ethereum block data. - pub block_data_cache: Arc>, - /// EthFilterApi pool. - pub filter_pool: Option, - /// Maximum number of logs in a query. - pub max_past_logs: u32, - /// Fee history cache. - pub fee_history_cache: FeeHistoryCache, - /// Maximum fee history cache size. - pub fee_history_cache_limit: FeeHistoryCacheLimit, - /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when - /// using eth_call/eth_estimateGas. - pub execute_gas_limit_multiplier: u64, - /// Mandated parent hashes for a given block hash. - pub forced_parent_hashes: Option>, - /// Something that can create the inherent data providers for pending state - pub pending_create_inherent_data_providers: CIDP, - /// Keystore - pub keystore: KeystorePtr, - pub epoch_changes: SharedEpochChanges, - pub babe_authorities: Vec<(BabeId, BabeAuthorityWeight)>, -} - -/// Instantiate Ethereum-compatible RPC extensions. -pub fn create_eth( - mut io: RpcModule<()>, - deps: EthDeps, - subscription_task_executor: SubscriptionTaskExecutor, - pubsub_notification_sinks: Arc< - fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - >, - >, -) -> Result, Box> -where - B: BlockT, - C: CallApiAt + ProvideRuntimeApi, - C::Api: BabeApi - + BlockBuilderApi - + ConvertTransactionRuntimeApi - + EthereumRuntimeRPCApi, - C: HeaderBackend + HeaderMetadata, - C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, - BE: Backend + 'static, - P: TransactionPool + 'static, - A: ChainApi + 'static, - CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, - CIDP: CreateInherentDataProviders + Send + 'static, - EC: EthConfig, -{ - use fc_rpc::{ - Debug, DebugApiServer, Eth, EthApiServer, EthDevSigner, EthFilter, EthFilterApiServer, - EthPubSub, EthPubSubApiServer, EthSigner, Net, NetApiServer, Web3, Web3ApiServer, - }; - #[cfg(feature = "txpool")] - use fc_rpc::{TxPool, TxPoolApiServer}; - - let EthDeps { - client, - pool, - graph, - converter, - is_authority, - enable_dev_signer, - network, - sync, - frontier_backend, - overrides, - block_data_cache, - filter_pool, - max_past_logs, - fee_history_cache, - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes, - pending_create_inherent_data_providers, - keystore, - epoch_changes: _, - babe_authorities: _, - } = deps; - - let mut signers = Vec::new(); - if enable_dev_signer { - signers.push(Box::new(EthDevSigner::new()) as Box); - } - - io.merge( - Eth::::new( - client.clone(), - pool.clone(), - graph.clone(), - converter, - sync.clone(), - signers, - overrides.clone(), - frontier_backend.clone(), - is_authority, - block_data_cache.clone(), - fee_history_cache, - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes, - pending_create_inherent_data_providers, - Some(Box::new( - clover_babe_consensus_provider::BabeConsensusDataProvider::new( - client.clone(), - keystore.clone(), - // epoch_changes.clone(), - // babe_authorities, - ), - )), - ) - .replace_config::() - .into_rpc(), - )?; - - if let Some(filter_pool) = filter_pool { - io.merge( - EthFilter::new( - client.clone(), - frontier_backend.clone(), - graph.clone(), - filter_pool, - 500_usize, // max stored filters - max_past_logs, - block_data_cache.clone(), - ) - .into_rpc(), - )?; - } - - io.merge( - EthPubSub::new( - pool, - client.clone(), - sync, - subscription_task_executor, - overrides.clone(), - pubsub_notification_sinks, - ) - .into_rpc(), - )?; - - io.merge( - Net::new( - client.clone(), - network, - // Whether to format the `peer_count` response as Hex (default) or not. - true, - ) - .into_rpc(), - )?; - - io.merge(Web3::new(client.clone()).into_rpc())?; - - io.merge( - Debug::new( - client.clone(), - frontier_backend, - overrides, - block_data_cache, - ) - .into_rpc(), - )?; - - #[cfg(feature = "txpool")] - io.merge(TxPool::new(client, graph).into_rpc())?; - - Ok(io) -} diff --git a/node/src/lib.rs b/node/src/lib.rs index 8a9d39d..f06cea4 100644 --- a/node/src/lib.rs +++ b/node/src/lib.rs @@ -47,6 +47,3 @@ pub mod rpc; pub use cli::*; #[cfg(feature = "cli")] pub use command::*; - -#[cfg(feature = "cli")] -mod eth; diff --git a/node/src/main.rs b/node/src/main.rs index aa8b772..a4182cd 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -6,7 +6,6 @@ mod chain_spec; mod service; mod cli; mod command; -mod eth; mod rpc; fn main() -> sc_cli::Result<()> { diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 9968195..dd70c04 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -15,41 +15,22 @@ use std::sync::Arc; use clover_primitives::{AccountId, Balance, Block, BlockNumber, Hash, Index}; -use futures::channel::mpsc; use jsonrpsee::RpcModule; use sc_client_api::{AuxStore, BlockchainEvents, StorageProvider, UsageProvider}; use sc_consensus_babe::BabeWorkerHandle; use sc_consensus_grandpa::{ FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, }; -use sc_consensus_manual_seal::EngineCommand; use sc_rpc::SubscriptionTaskExecutor; pub use sc_rpc_api::DenyUnsafe; -use sc_transaction_pool::ChainApi; use sc_transaction_pool_api::TransactionPool; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_consensus::SelectChain; use sp_consensus_babe::BabeApi; -use sp_inherents::CreateInherentDataProviders; use sp_keystore::KeystorePtr; -use sp_runtime::traits::Block as BlockT; -use crate::eth::EthDeps; - -/// Default Eth configuration. -pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); - -impl fc_rpc::EthConfig for DefaultEthConfig -where - C: StorageProvider + Sync + Send + 'static, - BE: sc_client_api::Backend + 'static, -{ - type EstimateGasAdapter = (); - type RuntimeStorageOverride = - fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; -} /// Extra dependencies for BABE. pub struct BabeDeps { /// A handle to the BABE worker for issuing requests. @@ -73,7 +54,7 @@ pub struct GrandpaDeps { } /// Full client dependencies. -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. @@ -92,14 +73,10 @@ pub struct FullDeps { pub statement_store: Arc, /// The backend used by the node. pub backend: Arc, - /// Manual seal command sink - pub command_sink: Option>>, - /// Ethereum-compatibility specific dependencies. - pub eth: EthDeps, } /// Instantiate all Full RPC extensions. -pub fn create_full( +pub fn create_full( FullDeps { client, pool, @@ -110,15 +87,7 @@ pub fn create_full( grandpa, statement_store, backend, - command_sink, - eth, - }: FullDeps, - subscription_task_executor: SubscriptionTaskExecutor, - pubsub_notification_sinks: Arc< - fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - >, - >, + }: FullDeps, ) -> Result, Box> where C: ProvideRuntimeApi @@ -138,15 +107,10 @@ where C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: BabeApi, C::Api: BlockBuilder, - C::Api: fp_rpc::ConvertTransactionRuntimeApi, - C::Api: fp_rpc::EthereumRuntimeRPCApi, P: TransactionPool + 'static, SC: SelectChain + 'static, B: sc_client_api::Backend + Send + Sync + 'static, B::State: sc_client_api::backend::StateBackend>, - A: ChainApi + 'static, - CIDP: CreateInherentDataProviders + Send + 'static, - CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, { // use mmr_rpc::{Mmr, MmrApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; @@ -233,13 +197,5 @@ where sc_rpc::statement::StatementStore::new(statement_store, deny_unsafe).into_rpc(); io.merge(statement_store)?; - // Ethereum compatibility RPCs - let io = crate::eth::create_eth::>( - io, - eth, - subscription_task_executor, - pubsub_notification_sinks, - )?; - Ok(io) } diff --git a/node/src/service.rs b/node/src/service.rs index 3c5c02d..a897d31 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -21,20 +21,14 @@ //! Service implementation. Specialized wrapper over substrate service. use crate::cli::Cli; -use crate::eth::{ - db_config_dir, new_frontier_partial, spawn_frontier_tasks, BackendType, EthConfiguration, - EthDeps, FrontierBackend, FrontierPartialComponents, -}; use clover_primitives::Block; -use clover_runtime::{RuntimeApi, TransactionConverter}; -use fc_rpc::OverrideHandle; -use fc_storage::overrides_handle; +use clover_runtime::RuntimeApi; use frame_benchmarking_cli::*; use futures::prelude::*; use sc_client_api::{Backend, BlockBackend}; use sc_consensus_babe::{self, BabeWorkerHandle, SlotProportion}; use sc_consensus_grandpa as grandpa; -use sc_executor::{NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; +use sc_executor::{WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; use sc_network::event::Event; use sc_network::{NetworkEventStream, NetworkService}; use sc_network_sync::warp::WarpSyncParams; @@ -47,7 +41,6 @@ use sc_statement_store::Store as StatementStore; use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_runtime::traits::Block as BlockT; -use std::path::Path; use std::sync::Arc; /// Only enable the benchmarking host functions when we actually want to benchmark. @@ -70,22 +63,6 @@ type FullGrandpaBlockImport = /// The transaction pool type definition. pub type TransactionPool = sc_transaction_pool::FullPool; -/// Declare an instance of the native executor named `ExecutorDispatch`. Include the wasm binary as -/// the equivalent wasm code. -pub struct ExecutorDispatch; - -impl sc_executor::NativeExecutionDispatch for ExecutorDispatch { - type ExtendHostFunctions = (sp_statement_store::runtime_api::HostFunctions,); - - fn dispatch(method: &str, data: &[u8]) -> Option> { - clover_runtime::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - clover_runtime::native_version() - } -} - /// The minimum period of blocks on which justifications will be /// imported and generated. const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; @@ -93,7 +70,6 @@ const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; /// Creates a new partial node. pub fn new_partial( config: &Configuration, - eth_config: &EthConfiguration, ) -> Result< sc_service::PartialComponents< FullClient, @@ -110,8 +86,6 @@ pub fn new_partial( ), Option, Arc, - FrontierBackend, - Arc>, ), >, ServiceError, @@ -222,37 +196,6 @@ pub fn new_partial( ) .map_err(|e| ServiceError::Other(format!("Statement store error: {:?}", e)))?; - let overrides = overrides_handle(client.clone()); - - let frontier_backend = match eth_config.frontier_backend_type { - BackendType::KeyValue => FrontierBackend::KeyValue(fc_db::kv::Backend::open( - Arc::clone(&client), - &config.database, - &db_config_dir(config), - )?), - BackendType::Sql => { - let db_path = db_config_dir(config).join("sql"); - std::fs::create_dir_all(&db_path).expect("failed creating sql db directory"); - let backend = futures::executor::block_on(fc_db::sql::Backend::new( - fc_db::sql::BackendConfig::Sqlite(fc_db::sql::SqliteBackendConfig { - path: Path::new("sqlite:///") - .join(db_path) - .join("frontier.db3") - .to_str() - .unwrap(), - create_if_missing: true, - thread_count: eth_config.frontier_sql_backend_thread_count, - cache_size: eth_config.frontier_sql_backend_cache_size, - }), - eth_config.frontier_sql_backend_pool_size, - std::num::NonZeroU32::new(eth_config.frontier_sql_backend_num_ops_timeout), - overrides.clone(), - )) - .unwrap_or_else(|err| panic!("failed creating sql backend: {:?}", err)); - FrontierBackend::Sql(backend) - } - }; - Ok(sc_service::PartialComponents { client, backend, @@ -261,13 +204,7 @@ pub fn new_partial( select_chain, import_queue, transaction_pool, - other: ( - import_setup, - telemetry, - statement_store, - frontier_backend, - overrides, - ), + other: (import_setup, telemetry, statement_store), }) } @@ -290,7 +227,6 @@ pub struct NewFullBase { /// Creates a full service from the configuration. pub async fn new_full_base( config: Configuration, - eth_config: EthConfiguration, disable_hardware_benchmarks: bool, with_startup_data: impl FnOnce( &sc_consensus_babe::BabeBlockImport, @@ -312,8 +248,8 @@ pub async fn new_full_base( keystore_container, select_chain, transaction_pool, - other: (import_setup, mut telemetry, statement_store, frontier_backend, overrides), - } = new_partial(&config, ð_config)?; + other: (import_setup, mut telemetry, statement_store), + } = new_partial(&config)?; let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); @@ -368,30 +304,13 @@ pub async fn new_full_base( let prometheus_registry = config.prometheus_registry().cloned(); let enable_offchain_worker = config.offchain_worker.enabled; - // Sinks for pubsub notifications. - // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. - // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. - // This way we avoid race conditions when using native substrate block import notification stream. - let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< - fc_mapping_sync::EthereumBlockNotification, - > = Default::default(); - let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); - - let FrontierPartialComponents { - filter_pool, - fee_history_cache, - fee_history_cache_limit, - } = new_frontier_partial(ð_config)?; - let (block_import, grandpa_link, babe_link, babe_worker_handle) = import_setup; let (rpc_builder, shared_voter_state) = { - let babe_link = babe_link.clone(); let justification_stream = grandpa_link.justification_stream(); let shared_authority_set = grandpa_link.shared_authority_set().clone(); let shared_voter_state = grandpa::SharedVoterState::empty(); let shared_voter_state2 = shared_voter_state.clone(); - let is_authority = role.is_authority(); let finality_proof_provider = grandpa::FinalityProofProvider::new_for_service( backend.clone(), @@ -403,69 +322,12 @@ pub async fn new_full_base( let select_chain = select_chain.clone(); let keystore = keystore_container.keystore(); let chain_spec = config.chain_spec.cloned_box(); - let network = network.clone(); - let sync_service = sync_service.clone(); let rpc_backend = backend.clone(); let rpc_statement_store = statement_store.clone(); - // frontier stuff - let max_past_logs = eth_config.max_past_logs; - let execute_gas_limit_multiplier = eth_config.execute_gas_limit_multiplier; - let filter_pool = filter_pool.clone(); - let frontier_backend = frontier_backend.clone(); - let pubsub_notification_sinks = pubsub_notification_sinks.clone(); - let overrides = overrides.clone(); - let fee_history_cache = fee_history_cache.clone(); - let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( - task_manager.spawn_handle(), - overrides.clone(), - eth_config.eth_log_block_cache, - eth_config.eth_statuses_cache, - config.prometheus_registry().cloned(), - )); - - let slot_duration = babe_link.config().slot_duration(); - let pending_create_inherent_data_providers = move |_, ()| async move { - let current = sp_timestamp::InherentDataProvider::from_system_time(); - let next_slot = current.timestamp().as_millis() + slot_duration.as_millis(); - let timestamp = sp_timestamp::InherentDataProvider::new(next_slot.into()); - let slot = sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - // let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); - Ok((slot, timestamp)) - }; - let rpc_extensions_builder = move |deny_unsafe, subscription_executor: SubscriptionTaskExecutor| { - let eth_deps = EthDeps { - client: client.clone(), - pool: pool.clone(), - graph: pool.pool().clone(), - converter: Some(TransactionConverter), - is_authority, - enable_dev_signer: eth_config.enable_dev_signer, - network: network.clone(), - sync: sync_service.clone(), - frontier_backend: match frontier_backend.clone() { - fc_db::Backend::KeyValue(b) => Arc::new(b), - fc_db::Backend::Sql(b) => Arc::new(b), - }, - overrides: overrides.clone(), - block_data_cache: block_data_cache.clone(), - filter_pool: filter_pool.clone(), - max_past_logs, - fee_history_cache: fee_history_cache.clone(), - fee_history_cache_limit, - execute_gas_limit_multiplier, - forced_parent_hashes: None, - pending_create_inherent_data_providers, - keystore: keystore.clone(), - epoch_changes: babe_link.epoch_changes().clone(), - babe_authorities: babe_link.config().authorities.clone(), - }; let deps = crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), @@ -485,16 +347,9 @@ pub async fn new_full_base( }, statement_store: rpc_statement_store.clone(), backend: rpc_backend.clone(), - command_sink: None, - eth: eth_deps, }; - crate::rpc::create_full( - deps, - subscription_executor.clone(), - pubsub_notification_sinks.clone(), - ) - .map_err(Into::into) + crate::rpc::create_full(deps).map_err(Into::into) }; (rpc_extensions_builder, shared_voter_state2) @@ -515,20 +370,6 @@ pub async fn new_full_base( telemetry: telemetry.as_mut(), })?; - spawn_frontier_tasks( - &task_manager, - client.clone(), - backend.clone(), - frontier_backend, - filter_pool, - overrides, - fee_history_cache, - fee_history_cache_limit, - sync_service.clone(), - pubsub_notification_sinks, - ) - .await; - if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && role.is_authority() { @@ -742,7 +583,7 @@ pub async fn new_full_base( /// Builds a new service for a full client. pub async fn new_full(config: Configuration, cli: Cli) -> Result { let database_source = config.database.clone(); - let task_manager = new_full_base(config, cli.eth, cli.no_hardware_benchmarks, |_, _| ()) + let task_manager = new_full_base(config, cli.no_hardware_benchmarks, |_, _| ()) .await .map(|NewFullBase { task_manager, .. }| task_manager)?; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 20f107f..477ef46 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -16,12 +16,6 @@ log = { workspace = true } clover-traits = { workspace = true } clover-rpc-runtime-api = { workspace = true } -evm = { workspace = true } -pallet-evm = { workspace = true } -pallet-evm-precompile-simple = { workspace = true } -pallet-ethereum = { workspace = true } -fp-rpc = { workspace = true } -fp-evm = { workspace = true } evm-accounts = { workspace = true } clover-claims = { workspace = true } clover-primitives = { workspace = true } @@ -93,9 +87,6 @@ std = [ 'clover-primitives/std', 'clover-rpc-runtime-api/std', "evm-accounts/std", - 'evm/std', - "fp-rpc/std", - "fp-evm/std", "frame-benchmarking/std", "frame-election-provider-support/std", 'frame-executive/std', @@ -113,9 +104,6 @@ std = [ "pallet-contracts/std", "pallet-democracy/std", "pallet-elections-phragmen/std", - "pallet-ethereum/std", - "pallet-evm-precompile-simple/std", - "pallet-evm/std", 'pallet-grandpa/std', 'pallet-identity/std', 'pallet-im-online/std', diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 2366c99..9134da4 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -7,47 +7,38 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); use core::convert::{TryFrom, TryInto}; -use frame_election_provider_support::NoElection; +use frame_election_provider_support::{NoElection, VoteWeight}; use frame_support::traits::fungible::HoldConsideration; use frame_support::traits::{ - EitherOfDiverse, EqualPrivilegeOnly, Hooks, LinearStoragePrice, Nothing, WithdrawReasons, + EitherOfDiverse, EqualPrivilegeOnly, LinearStoragePrice, Nothing, WithdrawReasons, }; use frame_support::weights::ConstantMultiplier; use frame_support::PalletId; -use pallet_ethereum::{ - PostLogContent, Transaction as EthereumTransaction, TransactionAction, TransactionData, +use pallet_grandpa::{ + fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, +}; +pub use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +use pallet_session::historical as pallet_session_historical; +pub use pallet_transaction_payment::{ + FeeDetails, Multiplier, RuntimeDispatchInfo, TargetedFeeAdjustment, }; -use parity_scale_codec::Decode; -use precompiles::CloverPrecompiles; +use sp_api::impl_runtime_apis; +use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_core::crypto::KeyTypeId; -use sp_core::{ConstBool, ConstU32, ConstU64, ConstU8, OpaqueMetadata, H160, H256, U256}; +use sp_core::{ConstBool, ConstU32, ConstU64, ConstU8, OpaqueMetadata}; use sp_runtime::curve::PiecewiseLinear; use sp_runtime::traits::{ BlakeTwo256, Block as BlockT, Bounded, Convert, ConvertInto, NumberFor, OpaqueKeys, - SaturatedConversion, StaticLookup, UniqueSaturatedInto, + SaturatedConversion, StaticLookup, }; use sp_runtime::transaction_validity::{ TransactionPriority, TransactionSource, TransactionValidity, }; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, ApplyExtrinsicResult, FixedPointNumber, - OpaqueExtrinsic, Percent, Perquintill, RuntimeAppPublic, + create_runtime_str, generic, impl_opaque_keys, ApplyExtrinsicResult, FixedPointNumber, Percent, + Perquintill, }; -use sp_std::marker::PhantomData; use sp_std::prelude::*; - -use sp_api::impl_runtime_apis; - -use frame_election_provider_support::VoteWeight; -use pallet_grandpa::{ - fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, -}; -pub use pallet_im_online::sr25519::AuthorityId as ImOnlineId; -use pallet_session::historical as pallet_session_historical; -pub use pallet_transaction_payment::{ - FeeDetails, Multiplier, RuntimeDispatchInfo, TargetedFeeAdjustment, -}; -use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -59,8 +50,6 @@ pub use sp_runtime::BuildStorage; pub use pallet_staking::StakerStatus; use evm_accounts::EvmAddressMapping; -use fp_evm::weight_per_gas; -use fp_rpc::TransactionStatus; pub use frame_support::dispatch::DispatchClass; pub use frame_support::traits::{ Currency, FindAuthor, Imbalance, KeyOwnerProofSystem, LockIdentifier, OnUnbalanced, Randomness, @@ -75,7 +64,6 @@ pub use frame_support::{ }; use frame_system::{limits, EnsureRoot, EnsureSigned, EnsureWithSuccess}; pub use pallet_balances::Call as BalancesCall; -use pallet_evm::{Account as EVMAccount, EnsureAddressTruncated, FeeCalculator, Runner}; pub use pallet_timestamp::Call as TimestampCall; use parity_scale_codec::Encode; pub use sp_runtime::{Perbill, Permill}; @@ -89,11 +77,9 @@ pub use clover_primitives::{ pub use constants::time::*; use impls::{Author, MergeAccountEvm, WeightToFee}; -mod clover_evm_config; mod constants; mod impls; mod mock; -mod precompiles; mod tests; mod voter_bags; mod weights; @@ -396,15 +382,6 @@ impl evm_accounts::Config for Runtime { type WeightInfo = weights::evm_accounts::WeightInfo; } -/// clover evm -pub struct FixedGasPrice; - -impl FeeCalculator for FixedGasPrice { - fn min_gas_price() -> (U256, Weight) { - (50_000_000_000u64.into(), Weight::zero()) - } -} - #[cfg(feature = "clover-mainnet")] const CHAIN_ID: u64 = 1024; #[cfg(feature = "clover-testnet")] @@ -414,114 +391,6 @@ parameter_types! { pub const ChainId: u64 = CHAIN_ID; } -static CLOVER_EVM_CONFIG: pallet_evm::EvmConfig = clover_evm_config::CloverEvmConfig::config(); -const BLOCK_GAS_LIMIT: u64 = 75_000_000; -const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; - -parameter_types! { - pub BlockGasLimit: U256 = U256::from(30_000_000); // double the ethereum block limit - pub const GasLimitPovSizeRatio: u64 = BLOCK_GAS_LIMIT.saturating_div(MAX_POV_SIZE); - pub PrecompilesValue: CloverPrecompiles = CloverPrecompiles::<_>::new(); - pub WeightPerGas: Weight = Weight::from_parts(weight_per_gas(BLOCK_GAS_LIMIT, NORMAL_DISPATCH_RATIO, WEIGHT_MILLISECS_PER_BLOCK), 0); - pub SuicideQuickClearLimit: u32 = 0; -} - -// /// Wraps the author-scraping logic for consensus engines that can recover -// /// the canonical index of an author. This then transforms it into the -// /// registering account-ID of that session key index. -// pub struct FindEvmAccountFromAuthorIndex(sp_std::marker::PhantomData<(T, Inner)>); - -// impl> FindAuthor -// for FindEvmAccountFromAuthorIndex -// where -// T: pallet_session::Config + evm_accounts::Config, -// T::ValidatorId: Into<::AccountId>, -// { -// fn find_author<'a, I>(digests: I) -> Option -// where -// I: 'a + IntoIterator, -// { -// let i = Inner::find_author(digests)?; - -// let validators = >::validators(); -// let validator = validators.get(i as usize).cloned(); - -// validator.map(|x| evm_accounts::EvmAddresses::::get(x).unwrap_or_default().into()) -// } -// } - -impl pallet_evm::Config for Runtime { - type FeeCalculator = FixedGasPrice; - type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; - type GasWeightMapping = pallet_evm::FixedGasWeightMapping; - type CallOrigin = EnsureAddressTruncated; - type WithdrawOrigin = EnsureAddressTruncated; - type AddressMapping = EvmAddressMapping; - type Currency = Balances; - type RuntimeEvent = RuntimeEvent; - type Runner = pallet_evm::runner::stack::Runner; - type PrecompilesType = CloverPrecompiles; - type PrecompilesValue = PrecompilesValue; - type ChainId = ChainId; - type BlockGasLimit = BlockGasLimit; - type WeightPerGas = WeightPerGas; - type OnChargeTransaction = (); - type FindAuthor = EthereumFindAuthor; - type GasLimitPovSizeRatio = GasLimitPovSizeRatio; - type SuicideQuickClearLimit = SuicideQuickClearLimit; - type OnCreate = (); - type Timestamp = Timestamp; - type WeightInfo = pallet_evm::weights::SubstrateWeight; - fn config() -> &'static pallet_evm::EvmConfig { - &CLOVER_EVM_CONFIG - } -} - -pub struct EthereumFindAuthor(PhantomData); -impl> FindAuthor for EthereumFindAuthor { - fn find_author<'a, I>(digests: I) -> Option - where - I: 'a + IntoIterator, - { - if let Some(author_index) = F::find_author(digests) { - let authority_id = Babe::authorities()[author_index as usize].clone(); - return Some(H160::from_slice(&authority_id.0.to_raw_vec()[4..24])); - } - None - } -} - -parameter_types! { - pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; -} - -impl pallet_ethereum::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot; - type ExtraDataLength = ConstU32<30>; - type PostLogContent = PostBlockAndTxnHashes; -} - -pub struct TransactionConverter; - -impl fp_rpc::ConvertTransaction for TransactionConverter { - fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { - UncheckedExtrinsic::new_unsigned( - pallet_ethereum::Call::::transact { transaction }.into(), - ) - } -} - -impl fp_rpc::ConvertTransaction for TransactionConverter { - fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> OpaqueExtrinsic { - let extrinsic = UncheckedExtrinsic::new_unsigned( - pallet_ethereum::Call::::transact { transaction }.into(), - ); - let encoded = extrinsic.encode(); - OpaqueExtrinsic::decode(&mut &encoded[..]).expect("Encoded extrinsic is always valid") - } -} - /// Struct that handles the conversion of Balance -> `u64`. This is used for /// staking's election calculation. pub struct CurrencyToVoteHandler; @@ -1283,8 +1152,6 @@ construct_runtime!( // Smart contracts modules Contracts: pallet_contracts, - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event}, - Ethereum: pallet_ethereum, Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, @@ -1571,200 +1438,4 @@ impl_runtime_apis! { TransactionPayment::length_to_fee(length) } } - - impl fp_rpc::EthereumRuntimeRPCApi for Runtime { - fn chain_id() -> u64 { - ::ChainId::get() - } - - fn account_basic(address: H160) -> EVMAccount { - let (account, _) = pallet_evm::Pallet::::account_basic(&address); - account - } - - fn gas_price() -> U256 { - let (gas_price, _) = ::FeeCalculator::min_gas_price(); - gas_price - } - - fn account_code_at(address: H160) -> Vec { - pallet_evm::AccountCodes::::get(address) - } - - fn author() -> H160 { - >::find_author() - } - - fn storage_at(address: H160, index: U256) -> H256 { - let mut tmp = [0u8; 32]; - index.to_big_endian(&mut tmp); - pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) - } - - fn call( - from: H160, - to: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - ) -> Result { - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - let gas_limit = gas_limit.min(u64::MAX.into()); - let transaction_data = TransactionData::new( - TransactionAction::Call(to), - data.clone(), - nonce.unwrap_or_default(), - gas_limit, - None, - max_fee_per_gas, - max_priority_fee_per_gas, - value, - Some(::ChainId::get()), - access_list.clone().unwrap_or_default(), - ); - let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); - - ::Runner::call( - from, - to, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - false, - true, - weight_limit, - proof_size_base_cost, - config.as_ref().unwrap_or(::config()), - ).map_err(|err| err.error.into()) - } - - fn create( - from: H160, - data: Vec, - value: U256, - gas_limit: U256, - max_fee_per_gas: Option, - max_priority_fee_per_gas: Option, - nonce: Option, - estimate: bool, - access_list: Option)>>, - ) -> Result { - let config = if estimate { - let mut config = ::config().clone(); - config.estimate = true; - Some(config) - } else { - None - }; - - let transaction_data = TransactionData::new( - TransactionAction::Create, - data.clone(), - nonce.unwrap_or_default(), - gas_limit, - None, - max_fee_per_gas, - max_priority_fee_per_gas, - value, - Some(::ChainId::get()), - access_list.clone().unwrap_or_default(), - ); - let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); - - ::Runner::create( - from, - data, - value, - gas_limit.unique_saturated_into(), - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - access_list.unwrap_or_default(), - false, - true, - weight_limit, - proof_size_base_cost, - config.as_ref().unwrap_or(::config()), - ).map_err(|err| err.error.into()) - } - - fn current_transaction_statuses() -> Option> { - pallet_ethereum::CurrentTransactionStatuses::::get() - } - - fn current_block() -> Option { - pallet_ethereum::CurrentBlock::::get() - } - - fn current_receipts() -> Option> { - pallet_ethereum::CurrentReceipts::::get() - } - - fn current_all() -> ( - Option, - Option>, - Option> - ) { - ( - pallet_ethereum::CurrentBlock::::get(), - pallet_ethereum::CurrentReceipts::::get(), - pallet_ethereum::CurrentTransactionStatuses::::get() - ) - } - - fn extrinsic_filter( - xts: Vec<::Extrinsic>, - ) -> Vec { - xts.into_iter().filter_map(|xt| match xt.function { - RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => Some(transaction), - _ => None - }).collect::>() - } - - fn elasticity() -> Option { - // TODO: check this - None - } - - fn gas_limit_multiplier_support() {} - - fn pending_block( - xts: Vec<::Extrinsic>, - ) -> (Option, Option>) { - for ext in xts.into_iter() { - let _ = Executive::apply_extrinsic(ext); - } - - >::on_finalize(System::block_number() + 1); - - ( - pallet_ethereum::CurrentBlock::::get(), - pallet_ethereum::CurrentTransactionStatuses::::get() - ) - } - } - - impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { - fn convert_transaction(transaction: EthereumTransaction) -> ::Extrinsic { - UncheckedExtrinsic::new_unsigned( - pallet_ethereum::Call::::transact { transaction }.into(), - ) - } - } } diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs deleted file mode 100644 index 0897550..0000000 --- a/runtime/src/precompiles.rs +++ /dev/null @@ -1,63 +0,0 @@ -use pallet_evm_precompile_simple::{ECRecover, Identity, Ripemd160, Sha256}; -use sp_core::H160; -use sp_std::marker::PhantomData; - -use pallet_evm::{ - IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, -}; - -/// Precompiles for the Clover network. -pub struct CloverPrecompiles(PhantomData); - -impl CloverPrecompiles -where - R: pallet_evm::Config, -{ - pub fn new() -> Self { - Self(Default::default()) - } - pub fn used_addresses() -> [H160; 4] { - [hash(1), hash(2), hash(3), hash(4)] - } -} - -impl PrecompileSet for CloverPrecompiles -where - R: pallet_evm::Config, -{ - fn execute(&self, handle: &mut impl PrecompileHandle) -> Option { - let (code_addr, context_addr) = (handle.code_address(), handle.context().address); - // For chains that possess their own stateful precompiles, it is advisable to activate this verification measure. - // This measure prohibits the use of DELEGATECALL or CALLCODE for any precompiles other than the official Ethereum precompiles, which are inherently stateless. - if Self::used_addresses().contains(&code_addr) - && code_addr > hash(9) - && code_addr != context_addr - { - return Some(Err(fp_evm::PrecompileFailure::Error { - exit_status: fp_evm::ExitError::Other(sp_std::borrow::Cow::Borrowed( - "cannot be called with DELEGATECALL or CALLCODE", - )), - })); - }; - - match handle.code_address() { - // Ethereum precompiles : - a if a == hash(1) => Some(ECRecover::execute(handle)), - a if a == hash(2) => Some(Sha256::execute(handle)), - a if a == hash(3) => Some(Ripemd160::execute(handle)), - a if a == hash(4) => Some(Identity::execute(handle)), - _ => None, - } - } - - fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { - is_precompile: Self::used_addresses().contains(&address), - extra_cost: 0, - } - } -} - -fn hash(a: u64) -> H160 { - H160::from_low_u64_be(a) -} From 5aacb7165bda9747e9cb7fc536d298e110839d19 Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Sat, 23 Nov 2024 14:10:12 +0600 Subject: [PATCH 5/6] Remove babe consensus provider --- Cargo.lock | 194 ---------------- Cargo.toml | 2 - .../babe-consensus-data-provider/Cargo.toml | 20 -- .../babe-consensus-data-provider/src/lib.rs | 207 ------------------ 4 files changed, 423 deletions(-) delete mode 100644 crates/babe-consensus-data-provider/Cargo.toml delete mode 100644 crates/babe-consensus-data-provider/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 7d4c02b..d3f98f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1155,25 +1155,6 @@ dependencies = [ "substrate-state-trie-migration-rpc", ] -[[package]] -name = "clover-babe-consensus-provider" -version = "0.1.0" -dependencies = [ - "fc-rpc", - "sc-client-api", - "sc-consensus-babe", - "sc-service", - "scale-info", - "schnorrkel 0.9.1", - "sp-api", - "sp-application-crypto", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", -] - [[package]] name = "clover-claims" version = "0.9.0" @@ -2440,143 +2421,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" -[[package]] -name = "fc-api" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "async-trait", - "fp-storage", - "parity-scale-codec", - "sp-core", - "sp-runtime", -] - -[[package]] -name = "fc-db" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "async-trait", - "fc-api", - "fp-storage", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-db", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", -] - -[[package]] -name = "fc-mapping-sync" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "fc-db", - "fc-storage", - "fp-consensus", - "fp-rpc", - "futures 0.3.31", - "futures-timer", - "log", - "parking_lot 0.12.3", - "sc-client-api", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-runtime", -] - -[[package]] -name = "fc-rpc" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum", - "ethereum-types", - "evm", - "fc-api", - "fc-mapping-sync", - "fc-rpc-core", - "fc-storage", - "fp-evm", - "fp-rpc", - "fp-storage", - "futures 0.3.31", - "hex", - "jsonrpsee", - "libsecp256k1 0.7.1", - "log", - "pallet-evm", - "parity-scale-codec", - "prometheus", - "rand 0.8.5", - "rlp", - "sc-client-api", - "sc-consensus-aura", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-rpc", - "sc-service", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", - "serde", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-timestamp", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", -] - -[[package]] -name = "fc-rpc-core" -version = "1.1.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum", - "ethereum-types", - "jsonrpsee", - "rustc-hex", - "serde", - "serde_json", -] - -[[package]] -name = "fc-storage" -version = "1.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum", - "ethereum-types", - "fp-rpc", - "fp-storage", - "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-io", - "sp-runtime", - "sp-storage", -] - [[package]] name = "fdlimit" version = "0.2.1" @@ -2743,18 +2587,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "fp-consensus" -version = "2.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum", - "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", -] - [[package]] name = "fp-evm" version = "3.0.0-dev" @@ -2771,32 +2603,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "fp-rpc" -version = "3.0.0-dev" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "ethereum", - "ethereum-types", - "fp-evm", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", -] - -[[package]] -name = "fp-storage" -version = "2.0.0" -source = "git+https://github.com/polkadot-evm/frontier.git?branch=polkadot-v1.2.0#16404e1ce1371964259e569d8bbe85dae734b88b" -dependencies = [ - "parity-scale-codec", - "serde", -] - [[package]] name = "fragile" version = "2.0.0" diff --git a/Cargo.toml b/Cargo.toml index 441efd5..853c647 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,6 @@ members = [ 'modules/claims', 'modules/type-utils', "bin/keytool", - "crates/*", ] [workspace.dependencies] @@ -59,7 +58,6 @@ evm-accounts = { path = "./modules/evm-accounts", default-features = false } clover-claims = { path = "./modules/claims", default-features = false } clover-primitives = { default-features = false, path = './primitives', version = '0.9.0'} clover-runtime = {path = './runtime', version = '0.9.0' } -clover-babe-consensus-provider = { path = './crates/babe-consensus-data-provider', version = '0.1.0' } clover-rpc = { default-features = false, version = '0.9.0', path = './rpc' } futures = { version = "0.3.9", features = ["compat"] } schnorrkel = { version = "^0.9", default-features = false, features = [ diff --git a/crates/babe-consensus-data-provider/Cargo.toml b/crates/babe-consensus-data-provider/Cargo.toml deleted file mode 100644 index 177fa33..0000000 --- a/crates/babe-consensus-data-provider/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ - -[package] -name = "clover-babe-consensus-provider" -version = "0.1.0" -edition = '2021' - -[dependencies] -fc-rpc = { workspace = true } -sc-client-api = { workspace = true } -sc-consensus-babe = { workspace = true } -sc-service = { workspace = true } -scale-info = { workspace = true } -schnorrkel = { workspace = true } -sp-api = { workspace = true } -sp-application-crypto = { workspace = true } -sp-consensus-babe = { workspace = true } -sp-core = { workspace = true, features = ["std"] } -sp-inherents = { workspace = true, features = [ "default" ] } -sp-keystore = { workspace = true } -sp-runtime = { workspace = true } diff --git a/crates/babe-consensus-data-provider/src/lib.rs b/crates/babe-consensus-data-provider/src/lib.rs deleted file mode 100644 index 5434916..0000000 --- a/crates/babe-consensus-data-provider/src/lib.rs +++ /dev/null @@ -1,207 +0,0 @@ -//! Frontier is currently not compatible with the BABE consensus provider. So we need to manually -//! implement the BABE consensus provider for Frontier. This is a temporary solution until Frontier -//! is compatible with the BABE consensus provider. - -#![allow(unused_imports)] -#![allow(missing_docs)] -#![allow(clippy::clone_on_copy)] -use fc_rpc::pending::ConsensusDataProvider; -use sc_client_api::backend::{AuxStore, Backend, StorageProvider}; -use sc_client_api::UsageProvider; -use sc_service::error::Error as ServiceError; -use sc_service::{ - ChainSpec, Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager, -}; -use schnorrkel::PublicKey; -use sp_api::{ApiExt, ApiRef, Core, ProvideRuntimeApi}; -use sp_application_crypto::{AppCrypto, ByteArray}; -use sp_consensus_babe::digests::PreDigest; -use sp_consensus_babe::inherents::BabeInherentData; -use sp_consensus_babe::{ - make_vrf_transcript, AllowedSlots, AuthorityId, AuthorityPair, BabeApi, BabeConfiguration, - Epoch, Randomness, Slot, VrfSignature, -}; -use sp_core::{Encode, H256}; -use sp_inherents::{CreateInherentDataProviders, InherentData, InherentDataProvider}; -use sp_keystore::{Keystore, KeystorePtr}; -use sp_runtime::generic::{Digest, DigestItem}; -use sp_runtime::traits::{Block as BlockT, Header as HeaderT, One}; -use sp_runtime::TransactionOutcome; -use std::marker::PhantomData; -use std::sync::Arc; - -pub struct BabeConsensusDataProvider { - client: Arc, - keystore: Arc, - _phantom: PhantomData, -} -use sp_consensus_babe::SlotDuration; - -impl BabeConsensusDataProvider -where - B: sp_runtime::traits::Block, - C: AuxStore + ProvideRuntimeApi + UsageProvider, - C::Api: BabeApi, -{ - pub fn new(client: Arc, keystore: Arc) -> Self { - Self { - client, - keystore, - _phantom: Default::default(), - } - } -} - -pub fn make_primary_pre_digest( - authority_index: sp_consensus_babe::AuthorityIndex, - slot: sp_consensus_babe::Slot, - vrf_signature: VrfSignature, -) -> Digest { - let digest_data = sp_consensus_babe::digests::PreDigest::Primary( - sp_consensus_babe::digests::PrimaryPreDigest { - authority_index, - slot, - vrf_signature, - }, - ); - let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); - Digest { logs: vec![log] } -} - -pub fn make_secondary_plain_pre_digest( - authority_index: sp_consensus_babe::AuthorityIndex, - slot: sp_consensus_babe::Slot, -) -> Digest { - let digest_data = sp_consensus_babe::digests::PreDigest::SecondaryPlain( - sp_consensus_babe::digests::SecondaryPlainPreDigest { - authority_index, - slot, - }, - ); - let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); - Digest { logs: vec![log] } -} - -pub fn make_secondary_vrf_pre_digest( - authority_index: sp_consensus_babe::AuthorityIndex, - slot: sp_consensus_babe::Slot, - vrf_signature: VrfSignature, -) -> Digest { - let digest_data = sp_consensus_babe::digests::PreDigest::SecondaryVRF( - sp_consensus_babe::digests::SecondaryVRFPreDigest { - authority_index, - slot, - vrf_signature, - }, - ); - let log = DigestItem::PreRuntime(sp_consensus_babe::BABE_ENGINE_ID, digest_data.encode()); - Digest { logs: vec![log] } -} - -fn make_vrf_signature( - randomness: &Randomness, - slot: Slot, - epoch: u64, - key: sp_consensus_babe::AuthorityId, - keystore: &KeystorePtr, -) -> Option { - let transcript = make_vrf_transcript(randomness, slot, epoch); - let try_sign = Keystore::sr25519_vrf_sign( - &**keystore, - sp_consensus_babe::KEY_TYPE, - key.as_ref(), - &transcript.clone().into_sign_data(), - ); - if let Ok(Some(signature)) = try_sign { - let public = PublicKey::from_bytes(&key.to_raw_vec()).ok()?; - if signature - .output - .0 - .attach_input_hash(&public, transcript.0.clone()) - .is_err() - { - // VRF signature cannot be validated using key and transcript - return None; - } - return Some(signature); - } else { - // VRF key not found in keystore or VRF signing failed - None - } -} - -impl, C: Send + Sync + ProvideRuntimeApi> - ConsensusDataProvider for BabeConsensusDataProvider -where - B: sp_runtime::traits::Block, - C: sp_api::ProvideRuntimeApi, - C::Api: BabeApi, -{ - fn create_digest( - &self, - parent: &B::Header, - data: &InherentData, - ) -> Result { - let best_block_hash: sp_core::H256 = parent.hash(); - let slot = data - .babe_inherent_data() - .expect("Timestamp is always present; qed"); - let runtime_api = self.client.runtime_api(); - let current_epoch: Epoch = runtime_api.current_epoch(best_block_hash).unwrap(); - let allowed_slots = current_epoch.config.allowed_slots.clone(); - let authorities: Vec<_> = current_epoch.authorities.clone(); - let randomness: Randomness = current_epoch.randomness.clone(); - let epoch_index: u64 = current_epoch.epoch_index.clone(); - let public_keys = self - .keystore - .sr25519_public_keys(sp_consensus_babe::KEY_TYPE); - if public_keys.len() > 0 && slot.is_some() { - let validator_public_key: sp_consensus_babe::AuthorityId = public_keys[0].into(); - let maybe_pos = authorities - .iter() - .position(|a| &validator_public_key == &a.0); - if let Some(authority_index) = maybe_pos { - match allowed_slots { - AllowedSlots::PrimaryAndSecondaryPlainSlots => { - return Ok(make_secondary_plain_pre_digest( - authority_index as u32, - slot.unwrap(), - )); - } - AllowedSlots::PrimaryAndSecondaryVRFSlots => { - if let Some(vrf_signature) = make_vrf_signature( - &randomness, - slot.unwrap(), - epoch_index, - validator_public_key, - &self.keystore, - ) { - return Ok(make_secondary_vrf_pre_digest( - authority_index as u32, - slot.unwrap(), - vrf_signature, - )); - } - } - _ => { - if let Some(vrf_signature) = make_vrf_signature( - &randomness, - slot.unwrap(), - epoch_index, - validator_public_key, - &self.keystore, - ) { - return Ok(make_primary_pre_digest( - authority_index as u32, - slot.unwrap(), - vrf_signature, - )); - } - } - } - } - } - - Ok(Default::default()) - } -} From 1c8065e0b4483a71dbcf9eb2bd3c777bc9dba933 Mon Sep 17 00:00:00 2001 From: Dastanbek Samatov Date: Fri, 27 Dec 2024 22:05:17 +0600 Subject: [PATCH 6/6] Update gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9e26d3f..3afbbc4 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,6 @@ ev/ docker/clover node_modules -runtime.log \ No newline at end of file +runtime.log + +old-chain