From b846ec2ed985801e6ff4d07aec3a178df3559789 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 23 May 2025 19:01:19 +0500 Subject: [PATCH 01/98] (WIP) removed obsolete features and try-runtime-cli package --- Cargo.lock | 10759 +++++++++++------ Cargo.toml | 310 +- client/rpc-core/txpool/Cargo.toml | 2 +- client/rpc/debug/Cargo.toml | 2 +- client/rpc/trace/Cargo.toml | 2 +- node/Cargo.toml | 10 - pallets/parachain-staking/Cargo.toml | 6 +- pallets/parachain-staking/src/mock.rs | 1 - precompiles/parachain-staking/Cargo.toml | 5 +- precompiles/parachain-staking/src/mock.rs | 1 - primitives/rpc/debug/Cargo.toml | 2 +- primitives/rpc/evm-tracing-events/Cargo.toml | 2 +- primitives/rpc/txpool/Cargo.toml | 2 +- runtime/krest/Cargo.toml | 12 +- runtime/krest/src/lib.rs | 7 - runtime/peaq-dev/Cargo.toml | 12 +- runtime/peaq-dev/src/lib.rs | 7 - runtime/peaq/Cargo.toml | 13 +- runtime/peaq/src/lib.rs | 7 - rust-toolchain | 2 +- 20 files changed, 7090 insertions(+), 4074 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5821e4086..ff721ec1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,10 +46,10 @@ dependencies = [ "peaq-primitives-xcm", "precompile-utils", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -90,7 +90,7 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -106,12 +106,12 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.11", + "getrandom 0.3.3", "once_cell", "version_check", "zerocopy", @@ -237,7 +237,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -246,9 +246,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", ] [[package]] @@ -258,9 +258,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" dependencies = [ "ark-bls12-377", - "ark-ec", + "ark-ec 0.4.2", "ark-models-ext", - "ark-std", + "ark-std 0.4.0", ] [[package]] @@ -269,10 +269,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -281,12 +293,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", "ark-models-ext", - "ark-serialize", - "ark-std", + "ark-serialize 0.4.2", + "ark-std 0.4.0", ] [[package]] @@ -296,9 +308,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" dependencies = [ "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", ] [[package]] @@ -308,10 +320,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" dependencies = [ "ark-bw6-761", - "ark-ec", - "ark-ff", + "ark-ec 0.4.2", + "ark-ff 0.4.2", "ark-models-ext", - "ark-std", + "ark-std 0.4.0", ] [[package]] @@ -320,10 +332,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", @@ -332,6 +344,27 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.3", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ed-on-bls12-377" version = "0.4.0" @@ -339,9 +372,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" dependencies = [ "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", ] [[package]] @@ -350,11 +383,11 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ed-on-bls12-377", - "ark-ff", + "ark-ff 0.4.2", "ark-models-ext", - "ark-std", + "ark-std 0.4.0", ] [[package]] @@ -363,10 +396,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1786b2e3832f6f0f7c8d62d5d5a282f6952a1ab99981c54cd52b6ac1d8f02df5" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -375,11 +420,11 @@ 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", + "ark-ec 0.4.2", + "ark-ed-on-bls12-381-bandersnatch 0.4.0", + "ark-ff 0.4.2", "ark-models-ext", - "ark-std", + "ark-std 0.4.0", ] [[package]] @@ -388,10 +433,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "digest 0.10.7", "itertools 0.10.5", @@ -402,6 +447,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.4", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -412,6 +477,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.101", +] + [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -425,16 +500,29 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[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", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", ] @@ -444,23 +532,38 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.3", +] + [[package]] name = "ark-scale" version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "parity-scale-codec", "scale-info", ] @@ -470,10 +573,10 @@ name = "ark-secret-scalar" version = "0.0.2" source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", "digest 0.10.7", "getrandom_or_panic", @@ -486,8 +589,21 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", - "ark-std", + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.4", "digest 0.10.7", "num-bigint", ] @@ -503,6 +619,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "ark-std" version = "0.4.0" @@ -510,19 +637,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "rayon", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "ark-transcript" version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "digest 0.10.7", "rand_core 0.6.4", "sha3", @@ -533,19 +670,46 @@ name = "ark-transcript" version = "0.0.2" source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "digest 0.10.7", "rand_core 0.6.4", "sha3", ] [[package]] -name = "array-bytes" -version = "4.2.0" +name = "ark-transcript" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c1c928edb9d8ff24cb5dcb7651d3a98494fff3099eee95c2404cd813a9139f" +dependencies = [ + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "ark-vrf" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" +checksum = "9501da18569b2afe0eb934fb7afd5a247d238b94116155af4dd068f319adfe6d" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ed-on-bls12-381-bandersnatch 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "digest 0.10.7", + "rand_chacha 0.3.1", + "sha2 0.10.8", + "w3f-ring-proof", + "zeroize", +] [[package]] name = "array-bytes" @@ -582,41 +746,69 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asn1-rs" -version = "0.5.2" +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", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "asn1-rs" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" dependencies = [ - "asn1-rs-derive", + "asn1-rs-derive 0.6.0", "asn1-rs-impl", "displaydoc", "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 2.0.12", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "synstructure 0.12.6", + "syn 2.0.101", + "synstructure 0.13.1", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", + "synstructure 0.13.1", ] [[package]] name = "asn1-rs-impl" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -638,15 +830,14 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.1.0", - "event-listener-strategy 0.5.0", + "event-listener-strategy 0.5.4", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -659,7 +850,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 2.1.0", + "futures-lite 2.6.0", "slab", ] @@ -675,6 +866,17 @@ dependencies = [ "futures-lite 1.13.0", ] +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock 3.2.0", + "blocking", + "futures-lite 2.6.0", +] + [[package]] name = "async-io" version = "1.13.0" @@ -705,7 +907,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.1.0", + "futures-lite 2.6.0", "parking", "polling 3.3.1", "rustix 0.38.26", @@ -731,7 +933,7 @@ checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ "event-listener 4.0.0", "event-listener-strategy 0.4.0", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -745,6 +947,17 @@ dependencies = [ "futures-lite 1.13.0", ] +[[package]] +name = "async-net" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" +dependencies = [ + "async-io 2.2.1", + "blocking", + "futures-lite 2.6.0", +] + [[package]] name = "async-process" version = "1.8.1" @@ -762,6 +975,25 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "async-process" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +dependencies = [ + "async-channel 2.3.1", + "async-io 2.2.1", + "async-lock 3.2.0", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener 5.4.0", + "futures-lite 2.6.0", + "rustix 0.38.26", + "tracing", +] + [[package]] name = "async-signal" version = "0.2.5" @@ -788,13 +1020,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -807,7 +1039,20 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", +] + +[[package]] +name = "asynchronous-codec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite", ] [[package]] @@ -822,6 +1067,17 @@ 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.11", + "log", + "url", +] + [[package]] name = "atty" version = "0.2.14" @@ -853,9 +1109,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line 0.21.0", "cc", @@ -871,12 +1127,12 @@ name = "bandersnatch_vrfs" version = "0.0.4" source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ed-on-bls12-381-bandersnatch 0.4.0", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "dleq_vrf", "fflonk", "merlin 3.0.0", @@ -901,6 +1157,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base58" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" + [[package]] name = "base64" version = "0.13.1" @@ -913,6 +1175,12 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +[[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" @@ -939,11 +1207,23 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "181f5380e435b8ba6d901f8b16fc8908c6f0f8bea8973113d1c8718d89bb1809" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", +] + +[[package]] +name = "binary-merkle-tree" +version = "16.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "hash-db", "log", + "parity-scale-codec", ] [[package]] @@ -971,29 +1251,72 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "bip32" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" +dependencies = [ + "bs58", + "hmac 0.12.1", + "k256", + "rand_core 0.6.4", + "ripemd", + "secp256k1 0.27.0", + "sha2 0.10.8", + "subtle 2.6.1", + "zeroize", ] [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ - "bitcoin_hashes", - "rand", + "bitcoin_hashes 0.13.0", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[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 0.1.2", +] + [[package]] name = "bitcoin_hashes" -version = "0.11.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative 0.2.1", +] [[package]] name = "bitflags" @@ -1003,9 +1326,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitvec" @@ -1131,21 +1454,21 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.2.0", + "async-channel 2.3.1", "async-lock 3.2.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite 2.1.0", + "futures-lite 2.6.0", "piper", "tracing", ] [[package]] name = "bounded-collections" -version = "0.2.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" dependencies = [ "log", "parity-scale-codec", @@ -1159,32 +1482,28 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.6.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.17.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "staging-xcm", ] [[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.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ + "sha2 0.10.8", "tinyvec", ] @@ -1216,9 +1535,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "byte-tools" @@ -1240,9 +1559,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bzip2-sys" @@ -1294,7 +1613,7 @@ dependencies = [ "semver 1.0.20", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1305,14 +1624,21 @@ checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" 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" @@ -1343,6 +1669,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha" version = "0.3.0" @@ -1401,7 +1733,19 @@ dependencies = [ "multibase", "multihash 0.17.0", "serde", - "unsigned-varint", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "cid" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" +dependencies = [ + "core2", + "multibase", + "multihash 0.19.1", + "unsigned-varint 0.8.0", ] [[package]] @@ -1424,15 +1768,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ckb-merkle-mountain-range" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" -dependencies = [ - "cfg-if", -] - [[package]] name = "clang-sys" version = "1.6.1" @@ -1455,15 +1790,15 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap", - "unicode-width", + "unicode-width 0.1.11", "vec_map", ] [[package]] name = "clap" -version = "4.5.9" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -1471,9 +1806,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -1484,14 +1819,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -1519,7 +1854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ "termcolor", - "unicode-width", + "unicode-width 0.1.11", ] [[package]] @@ -1528,15 +1863,24 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" -version = "7.1.0" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ - "strum 0.25.0", - "strum_macros 0.25.3", - "unicode-width", + "unicode-segmentation", + "unicode-width 0.2.0", ] [[package]] @@ -1544,11 +1888,11 @@ name = "common" version = "0.1.0" source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "fflonk", "getrandom_or_panic", "rand_core 0.6.4", @@ -1562,9 +1906,9 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1578,10 +1922,23 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.11", "windows-sys 0.52.0", ] +[[package]] +name = "const-hex" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + [[package]] name = "const-oid" version = "0.9.5" @@ -1608,6 +1965,26 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -1642,11 +2019,21 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -1709,7 +2096,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -1818,22 +2205,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" @@ -1849,7 +2232,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -1881,17 +2264,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] name = "crypto-mac" -version = "0.11.1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.6.1", +] + +[[package]] +name = "crypto_secretbox" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" dependencies = [ + "aead", + "cipher 0.4.4", "generic-array 0.14.7", - "subtle 2.4.1", + "poly1305", + "salsa20", + "subtle 2.6.1", + "zeroize", ] [[package]] @@ -1905,48 +2303,48 @@ dependencies = [ [[package]] name = "cumulus-client-cli" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.9", + "clap 4.5.13", "parity-scale-codec", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-service", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "url", ] [[package]] name = "cumulus-client-collator" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.30", + "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.1", + "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", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1956,10 +2354,12 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.30", + "futures 0.3.31", "parity-scale-codec", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", "sc-client-api", @@ -1968,34 +2368,37 @@ dependencies = [ "sc-consensus-babe", "sc-consensus-slots", "sc-telemetry", + "sc-utils", "schnellru", - "sp-api", - "sp-application-crypto", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-state-machine", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", + "tokio", "tracing", ] [[package]] name = "cumulus-client-consensus-common" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-interface", "dyn-clone", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", "polkadot-primitives", @@ -2003,82 +2406,86 @@ dependencies = [ "sc-consensus", "sc-consensus-babe", "schnellru", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-slots", - "sp-core", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", - "sp-trie", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-consensus-proposer" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.19.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", - "sp-consensus", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "thiserror", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "cumulus-client-consensus-relay-chain" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.30", - "parking_lot 0.12.1", + "futures 0.3.31", + "parking_lot 0.12.3", "sc-consensus", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-network" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-relay-chain-interface", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-parachain-primitives", "polkadot-primitives", "sc-client-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.16.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2087,46 +2494,44 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "parity-scale-codec", "sc-client-api", - "scale-info", - "sp-api", - "sp-crypto-hashing", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand", + "rand 0.8.5", "sc-client-api", "sc-consensus", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", ] [[package]] name = "cumulus-client-service" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.23.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2138,7 +2543,7 @@ dependencies = [ "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", - "futures 0.3.30", + "futures 0.3.31", "polkadot-primitives", "sc-client-api", "sc-consensus", @@ -2151,18 +2556,19 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2171,16 +2577,15 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2198,50 +2603,50 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-parachains", "scale-info", - "sp-core", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", - "sp-version", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", - "trie-db", + "staging-xcm-builder", + "trie-db 0.30.0", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.19.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2255,99 +2660,102 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", + "staging-xcm-builder", "staging-xcm-executor", ] [[package]] name = "cumulus-primitives-aura" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.17.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-primitives", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "cumulus-primitives-core" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.18.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "scale-info", - "sp-api", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.18.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" -version = "0.2.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.12.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "cumulus-primitives-timestamp" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "cumulus-primitives-storage-weight-reclaim" +version = "11.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", - "futures 0.3.30", + "cumulus-primitives-proof-size-hostfunction", + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", "parity-scale-codec", - "sp-inherents", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "scale-info", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.19.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "cumulus-primitives-core", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", ] [[package]] name = "cumulus-primitives-utility" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", "frame-support", "log", "pallet-asset-conversion", - "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-runtime-common", - "polkadot-runtime-parachains", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2355,13 +2763,13 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.23.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "polkadot-cli", "polkadot-service", @@ -2370,55 +2778,50 @@ dependencies = [ "sc-sysinfo", "sc-telemetry", "sc-tracing", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "cumulus-relay-chain-interface" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", - "futures 0.3.30", - "jsonrpsee-core", + "futures 0.3.31", + "jsonrpsee-core 0.24.9", "parity-scale-codec", "polkadot-overseer", "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-state-machine", - "thiserror", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.23.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", - "futures 0.3.30", - "parking_lot 0.12.1", - "polkadot-availability-recovery", - "polkadot-collator-protocol", + "futures 0.3.31", "polkadot-core-primitives", "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-chain-api", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "polkadot-service", "sc-authority-discovery", "sc-client-api", "sc-network", @@ -2426,49 +2829,49 @@ dependencies = [ "sc-service", "sc-tracing", "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "tokio", "tracing", ] [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.22.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "either", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "jsonrpsee", + "jsonrpsee 0.24.9", "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand", + "prometheus", + "rand 0.8.5", "sc-client-api", "sc-rpc-api", "sc-service", "schnellru", "serde", "serde_json", - "smoldot", - "smoldot-light", - "sp-api", + "smoldot 0.11.0", + "smoldot-light 0.9.0", "sp-authority-discovery", "sp-consensus-babe", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "substrate-prometheus-endpoint", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -2477,16 +2880,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.19.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -2498,7 +2900,7 @@ dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -2511,24 +2913,23 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", "rustc_version 0.4.0", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -2540,7 +2941,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -2580,7 +2981,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -2597,52 +2998,114 @@ checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] -name = "data-encoding" -version = "2.5.0" +name = "darling" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] [[package]] -name = "data-encoding-macro" -version = "0.1.14" +name = "darling_core" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ - "data-encoding", - "data-encoding-macro-internal", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.101", ] [[package]] -name = "data-encoding-macro-internal" -version = "0.1.12" +name = "darling_macro" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "data-encoding", - "syn 1.0.109", + "darling_core", + "quote", + "syn 2.0.101", ] [[package]] -name = "der" -version = "0.7.8" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "const-oid", - "zeroize", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.9", ] [[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "data-encoding-macro" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +dependencies = [ + "asn1-rs 0.6.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs", + "asn1-rs 0.7.1", "displaydoc", "nom", "num-bigint", @@ -2652,9 +3115,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", ] @@ -2672,24 +3135,24 @@ dependencies = [ [[package]] name = "derive-syn-parse" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] -name = "derive-syn-parse" -version = "0.2.0" +name = "derive-where" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +checksum = "e73f2692d4bd3cac41dca28934a39894200c9fabf49586d77d0e5954af1d7902" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -2722,7 +3185,8 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", + "unicode-xid", ] [[package]] @@ -2731,12 +3195,6 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - [[package]] name = "digest" version = "0.8.1" @@ -2764,7 +3222,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -2786,6 +3244,15 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-sys" version = "0.4.1" @@ -2817,7 +3284,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -2825,12 +3292,12 @@ name = "dleq_vrf" version = "0.0.2" source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ - "ark-ec", - "ark-ff", + "ark-ec 0.4.2", + "ark-ff 0.4.2", "ark-scale", "ark-secret-scalar", - "ark-serialize", - "ark-std", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", "arrayvec 0.7.4", "zeroize", @@ -2838,28 +3305,28 @@ dependencies = [ [[package]] name = "docify" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +checksum = "a772b62b1837c8f060432ddcc10b17aae1453ef17617a99bc07789252d2a5896" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7" dependencies = [ "common-path", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.82", + "syn 2.0.101", "termcolor", - "toml 0.8.8", + "toml 0.8.12", "walkdir", ] @@ -2918,6 +3385,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -2934,16 +3402,16 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.8", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -2967,20 +3435,32 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "ed25519", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "rand_core 0.6.4", "sha2 0.10.8", "zeroize", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "either" -version = "1.9.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -2997,7 +3477,8 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle 2.4.1", + "serdect", + "subtle 2.6.1", "zeroize", ] @@ -3009,45 +3490,65 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "enum-as-inner" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "enumn" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -3100,15 +3601,15 @@ dependencies = [ [[package]] name = "ethbloom" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" dependencies = [ "crunchy", "fixed-hash", - "impl-codec 0.6.0", + "impl-codec 0.7.0", "impl-rlp", - "impl-serde 0.4.0", + "impl-serde 0.5.0", "scale-info", "tiny-keccak", ] @@ -3116,8 +3617,7 @@ dependencies = [ [[package]] name = "ethereum" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" +source = "git+https://github.com/rust-ethereum/ethereum?rev=bbb544622208ef6e9890a2dbc224248f6dd13318#bbb544622208ef6e9890a2dbc224248f6dd13318" dependencies = [ "bytes", "ethereum-types", @@ -3133,18 +3633,18 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" dependencies = [ "ethbloom", "fixed-hash", - "impl-codec 0.6.0", + "impl-codec 0.7.0", "impl-rlp", - "impl-serde 0.4.0", - "primitive-types 0.12.2", + "impl-serde 0.5.0", + "primitive-types 0.13.1", "scale-info", - "uint 0.9.5", + "uint 0.10.0", ] [[package]] @@ -3161,7 +3661,7 @@ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -3172,18 +3672,18 @@ checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "event-listener" -version = "5.1.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] @@ -3193,23 +3693,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ "event-listener 4.0.0", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.1.0", - "pin-project-lite 0.2.13", + "event-listener 5.4.0", + "pin-project-lite", ] [[package]] name = "evm" -version = "0.41.1" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-v1.7.2#3a831d85bbc20cb93097348dbed97ffeccf0911b" +version = "0.42.0" +source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "auto_impl", "environmental", @@ -3219,7 +3719,7 @@ dependencies = [ "evm-runtime", "log", "parity-scale-codec", - "primitive-types 0.12.2", + "primitive-types 0.13.1", "rlp", "scale-info", "serde", @@ -3228,35 +3728,35 @@ dependencies = [ [[package]] name = "evm-core" -version = "0.41.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-v1.7.2#3a831d85bbc20cb93097348dbed97ffeccf0911b" +version = "0.42.0" +source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "parity-scale-codec", - "primitive-types 0.12.2", + "primitive-types 0.13.1", "scale-info", "serde", ] [[package]] name = "evm-gasometer" -version = "0.41.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-v1.7.2#3a831d85bbc20cb93097348dbed97ffeccf0911b" +version = "0.42.0" +source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "environmental", "evm-core", "evm-runtime", - "primitive-types 0.12.2", + "primitive-types 0.13.1", ] [[package]] name = "evm-runtime" -version = "0.41.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-v1.7.2#3a831d85bbc20cb93097348dbed97ffeccf0911b" +version = "0.42.0" +source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "auto_impl", "environmental", "evm-core", - "primitive-types 0.12.2", + "primitive-types 0.13.1", "sha3", ] @@ -3271,7 +3771,7 @@ dependencies = [ "evm-gasometer", "evm-runtime", "parity-scale-codec", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -3280,32 +3780,22 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.30", -] - -[[package]] -name = "expander" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" -dependencies = [ - "blake3", - "fs-err", - "proc-macro2", - "quote", + "futures 0.3.31", ] [[package]] name = "expander" -version = "2.0.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ "blake2 0.10.6", + "file-guard", "fs-err", + "prettyplease 0.2.15", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -3320,6 +3810,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + [[package]] name = "fastrand" version = "1.9.0" @@ -3337,61 +3833,60 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fatality" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad875162843b0d046276327afe0136e9ed3a23d5a754210fb6f1f33610d39ab" +checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ "fatality-proc-macro", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "fatality-proc-macro" -version = "0.0.6" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" +checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ - "expander 0.0.4", - "indexmap 1.9.3", - "proc-macro-crate 1.3.1", + "expander", + "indexmap 2.9.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", - "thiserror", + "syn 2.0.101", ] [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "async-trait", "fp-storage", "parity-scale-codec", - "sp-core", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "async-trait", "fp-consensus", "fp-rpc", "sc-consensus", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-consensus", - "sp-runtime", - "thiserror", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 2.0.12", ] [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "async-trait", "fc-api", @@ -3400,40 +3895,40 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-db", "smallvec", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fc-db", "fc-storage", "fp-consensus", "fp-rpc", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "ethereum-types", @@ -3445,65 +3940,63 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-storage", - "futures 0.3.30", + "futures 0.3.31", "hex", - "jsonrpsee", + "jsonrpsee 0.24.9", "libsecp256k1", "log", "pallet-evm", "parity-scale-codec", "prometheus", - "rand", + "rand 0.9.1", "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-core", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 2.0.12", "tokio", ] [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "ethereum-types", - "jsonrpsee", + "jsonrpsee 0.24.9", "rlp", "rustc-hex", "serde", "serde_json", - "sp-core-hashing", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "ethereum-types", @@ -3511,11 +4004,10 @@ dependencies = [ "fp-storage", "parity-scale-codec", "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-io", - "sp-runtime", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -3525,7 +4017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3535,7 +4027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -3543,11 +4035,11 @@ name = "fflonk" version = "0.1.0" source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "merlin 3.0.0", ] @@ -3557,6 +4049,16 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +[[package]] +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "file-per-thread-logger" version = "0.1.6" @@ -3581,17 +4083,17 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +checksum = "b4f8f43dc520133541781ec03a8cab158ae8b7f7169cdf22e9050aa6cf0fbdfc" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "scale-info", ] @@ -3602,7 +4104,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -3613,26 +4115,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "libz-sys", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - [[package]] name = "flume" version = "0.10.14" @@ -3652,10 +4134,16 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "fork-tree" -version = "12.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "13.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", ] @@ -3669,109 +4157,116 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror 1.0.69", +] + [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "hex", - "impl-serde 0.4.0", + "impl-serde 0.5.0", "libsecp256k1", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "staging-xcm", ] [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fp-dynamic-fee" version = "1.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "async-trait", - "sp-core", - "sp-inherents", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "frame-support", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ + "environmental", "evm", "frame-support", - "num_enum 0.7.2", + "num_enum 0.7.3", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "ethereum", "ethereum-types", "fp-evm", "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "parity-scale-codec", "serde", @@ -3785,8 +4280,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-support-procedural", @@ -3797,109 +4292,133 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "32.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "47.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes", "chrono", - "clap 4.5.9", + "clap 4.5.13", "comfy-table", + "cumulus-client-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", "frame-benchmarking", "frame-support", "frame-system", "gethostname", "handlebars", - "itertools 0.10.5", - "lazy_static", + "itertools 0.11.0", "linked-hash-map", "log", "parity-scale-codec", - "rand", + "polkadot-parachain-primitives", + "polkadot-primitives", + "rand 0.8.5", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", - "sc-executor", + "sc-executor 0.42.0", + "sc-runtime-utilities", "sc-service", "sc-sysinfo", "serde", "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-block-builder", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-genesis-builder", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "subxt", + "subxt-signer", + "thiserror 1.0.69", "thousands", ] +[[package]] +name = "frame-decode" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6027a409bac4fe95b4d107f965fcdbc252fc89d884a360d076b3070b6128c094" +dependencies = [ + "frame-metadata 17.0.0", + "parity-scale-codec", + "scale-decode 0.14.0", + "scale-info", + "scale-type-resolver", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "16.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "frame-election-provider-support" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-election-provider-solution-type", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-npos-elections", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "frame-executive" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "aquamarine", "frame-support", "frame-system", "frame-try-runtime", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -3915,53 +4434,57 @@ dependencies = [ ] [[package]] -name = "frame-metadata-hash-extension" -version = "0.1.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "array-bytes 6.2.3", - "docify", - "frame-support", - "frame-system", - "log", +name = "frame-metadata" +version = "17.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "701bac17e9b55e0f95067c428ebcb46496587f08e8cf4ccc0fe5903bea10dbb8" +dependencies = [ + "cfg-if", "parity-scale-codec", "scale-info", - "sp-runtime", + "serde", ] [[package]] -name = "frame-remote-externalities" -version = "0.35.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "frame-metadata" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26de808fa6461f2485dc51811aefed108850064994fb4a62b3ac21ffa62ac8df" dependencies = [ - "futures 0.3.30", - "indicatif", - "jsonrpsee", - "log", + "cfg-if", "parity-scale-codec", + "scale-info", "serde", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-runtime", - "sp-state-machine", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", +] + +[[package]] +name = "frame-metadata-hash-extension" +version = "0.8.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "array-bytes", + "const-hex", + "docify", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "frame-support" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "aquamarine", - "array-bytes 6.2.3", + "array-bytes", + "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "bitflags 1.3.2", "docify", "environmental", - "frame-metadata", + "frame-metadata 20.0.0", "frame-support-procedural", "impl-trait-for-tuples", "k256", @@ -3972,71 +4495,71 @@ dependencies = [ "scale-info", "serde", "serde_json", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing-proc-macro", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-metadata-ir", - "sp-runtime", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-metadata-ir 0.10.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", - "static_assertions", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "23.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "33.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.1.5", - "expander 2.0.0", + "derive-syn-parse", + "docify", + "expander", "frame-support-procedural-tools", - "itertools 0.10.5", + "itertools 0.11.0", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing", - "syn 2.0.82", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools" -version = "10.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "13.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "12.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "frame-system" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cfg-if", "docify", @@ -4045,48 +4568,46 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "frame-system-benchmarking" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "parity-scale-codec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "frame-try-runtime" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.46.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -4132,9 +4653,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -4145,11 +4666,21 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-bounded" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f328e7fb845fc832912fb6a34f40cf6d1888c92f974d1893a54e97b5ff542e" +dependencies = [ + "futures-timer", + "futures-util", +] + [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -4157,15 +4688,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -4175,9 +4706,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -4190,68 +4721,68 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", "waker-fn", ] [[package]] name = "futures-lite" -version = "2.1.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand 2.0.1", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite", ] [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "futures-rustls" -version = "0.22.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" +checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.20.9", - "webpki", + "rustls", + "rustls-pki-types", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures 0.1.31", "futures-channel", @@ -4261,7 +4792,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite", "pin-utils", "slab", ] @@ -4307,25 +4838,28 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.11" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", "wasm-bindgen", ] @@ -4335,7 +4869,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", + "rand 0.8.5", "rand_core 0.6.4", ] @@ -4355,7 +4889,7 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "fallible-iterator", + "fallible-iterator 0.2.0", "indexmap 1.9.3", "stable_deref_trait", ] @@ -4366,12 +4900,42 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures 0.3.31", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + [[package]] name = "group" version = "0.13.0" @@ -4380,7 +4944,7 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -4394,8 +4958,27 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", - "indexmap 2.1.0", + "http 0.2.11", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -4404,16 +4987,16 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", "pest_derive", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4446,27 +5029,38 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.12", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.12", "allocator-api2", "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "hashlink" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -4514,6 +5108,21 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec 0.7.4", +] + [[package]] name = "hex-literal" version = "0.3.4" @@ -4526,11 +5135,57 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hickory-proto" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.8.5", + "socket2 0.5.9", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac 0.12.1", ] @@ -4551,7 +5206,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", "digest 0.9.0", ] @@ -4575,15 +5230,6 @@ dependencies = [ "hmac 0.8.1", ] -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys 0.48.0", -] - [[package]] name = "hostname" version = "0.3.1" @@ -4606,6 +5252,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -4613,21 +5270,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", - "pin-project-lite 0.2.13", + "http 0.2.11", + "pin-project-lite", ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.3.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "pin-project-lite", +] [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -4651,13 +5325,13 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.11", + "http-body 0.4.5", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", + "pin-project-lite", "socket2 0.4.10", "tokio", "tower-service", @@ -4666,19 +5340,62 @@ dependencies = [ ] [[package]] -name = "hyper-rustls" -version = "0.24.2" +name = "hyper" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ + "bytes", + "futures-channel", "futures-util", - "http", - "hyper", + "h2 0.4.10", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" +dependencies = [ + "http 1.3.1", + "hyper 1.6.0", + "hyper-util", "log", - "rustls 0.21.9", + "rustls", "rustls-native-certs", + "rustls-pki-types", "tokio", "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9f1e950e0d9d1d3c47184416723cf29c0d1f93bd8cccf37e4beb6b44f31710" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", + "libc", + "pin-project-lite", + "socket2 0.5.9", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -4705,46 +5422,138 @@ dependencies = [ ] [[package]] -name = "idna" -version = "0.2.3" +name = "icu_collections" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "idna" -version = "0.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "if-addrs" -version = "0.10.2" +name = "icu_normalizer" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ - "libc", - "windows-sys 0.48.0", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", ] [[package]] -name = "if-watch" -version = "3.2.0" +name = "icu_normalizer_data" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" -dependencies = [ - "async-io 2.2.1", - "core-foundation", +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "if-addrs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "if-watch" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +dependencies = [ + "async-io 2.2.1", + "core-foundation 0.9.4", "fnv", - "futures 0.3.30", + "futures 0.3.31", "if-addrs", "ipnet", "log", @@ -4754,6 +5563,25 @@ dependencies = [ "windows", ] +[[package]] +name = "igd-next" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" +dependencies = [ + "async-trait", + "attohttpc", + "bytes", + "futures 0.3.31", + "http 0.2.11", + "hyper 0.14.27", + "log", + "rand 0.8.5", + "tokio", + "url", + "xmltree", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -4785,9 +5613,9 @@ dependencies = [ [[package]] name = "impl-rlp" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" dependencies = [ "rlp", ] @@ -4812,13 +5640,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -4853,12 +5681,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.3", ] [[package]] @@ -4867,19 +5695,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" -[[package]] -name = "indicatif" -version = "0.17.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - [[package]] name = "inflation-manager" version = "0.3.0" @@ -4894,10 +5709,10 @@ dependencies = [ "peaq-primitives-xcm", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -4918,12 +5733,6 @@ dependencies = [ "cfg-if", ] -[[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" @@ -4956,7 +5765,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.9", "widestring", "windows-sys 0.48.0", "winreg", @@ -5012,27 +5821,60 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -5042,11 +5884,39 @@ version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" dependencies = [ - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", + "jsonrpsee-core 0.20.3", + "jsonrpsee-proc-macros 0.20.3", + "jsonrpsee-server 0.20.3", + "jsonrpsee-types 0.20.3", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" +dependencies = [ + "jsonrpsee-core 0.23.2", + "jsonrpsee-proc-macros 0.23.2", + "jsonrpsee-server 0.23.2", + "jsonrpsee-types 0.23.2", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core 0.24.9", + "jsonrpsee-proc-macros 0.24.9", + "jsonrpsee-server 0.24.9", + "jsonrpsee-types 0.24.9", "jsonrpsee-ws-client", "tokio", "tracing", @@ -5054,17 +5924,20 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.20.3" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" dependencies = [ + "base64 0.22.1", "futures-util", - "http", - "jsonrpsee-core", + "http 1.3.1", + "jsonrpsee-core 0.24.9", "pin-project", - "rustls-native-certs", - "soketto", - "thiserror", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "soketto 0.8.1", + "thiserror 1.0.69", "tokio", "tokio-rustls", "tokio-util", @@ -5079,42 +5952,71 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" dependencies = [ "anyhow", - "async-lock 2.8.0", "async-trait", "beef", - "futures-timer", "futures-util", - "hyper", - "jsonrpsee-types", - "parking_lot 0.12.1", - "rand", - "rustc-hash", + "hyper 0.14.27", + "jsonrpsee-types 0.20.3", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash 1.1.0", "serde", "serde_json", - "soketto", - "thiserror", + "soketto 0.7.1", + "thiserror 1.0.69", "tokio", "tracing", ] [[package]] -name = "jsonrpsee-http-client" -version = "0.20.3" +name = "jsonrpsee-core" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" dependencies = [ + "anyhow", "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", + "beef", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types 0.23.2", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustc-hash 1.1.0", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", - "tower", "tracing", - "url", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" +dependencies = [ + "async-trait", + "bytes", + "futures-timer", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types 0.24.9", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rustc-hash 2.1.1", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", ] [[package]] @@ -5130,6 +6032,32 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" +dependencies = [ + "heck 0.5.0", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" +dependencies = [ + "heck 0.5.0", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "jsonrpsee-server" version = "0.20.3" @@ -5137,15 +6065,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" dependencies = [ "futures-util", - "http", - "hyper", - "jsonrpsee-core", - "jsonrpsee-types", + "http 0.2.11", + "hyper 0.14.27", + "jsonrpsee-core 0.20.3", + "jsonrpsee-types 0.20.3", + "route-recognizer", + "serde", + "serde_json", + "soketto 0.7.1", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51" +dependencies = [ + "anyhow", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "jsonrpsee-core 0.23.2", + "jsonrpsee-types 0.23.2", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto 0.8.1", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" +dependencies = [ + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "jsonrpsee-core 0.24.9", + "jsonrpsee-types 0.24.9", + "pin-project", "route-recognizer", "serde", "serde_json", - "soketto", - "thiserror", + "soketto 0.8.1", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -5163,33 +6146,59 @@ dependencies = [ "beef", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tracing", ] +[[package]] +name = "jsonrpsee-types" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" +dependencies = [ + "beef", + "http 1.3.1", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" +dependencies = [ + "http 1.3.1", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "jsonrpsee-ws-client" -version = "0.20.3" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ - "http", + "http 1.3.1", "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.24.9", + "jsonrpsee-types 0.24.9", "url", ] [[package]] name = "k256" -version = "0.13.2" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", ] @@ -5202,6 +6211,16 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-hash" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" +dependencies = [ + "primitive-types 0.13.1", + "tiny-keccak", +] + [[package]] name = "keystream" version = "1.0.0" @@ -5224,7 +6243,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -5235,7 +6254,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -5249,7 +6268,7 @@ checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5269,9 +6288,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" @@ -5291,15 +6310,15 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libp2p" -version = "0.51.4" +version = "0.54.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" +checksum = "bbbe80f9c7e00526cd6b838075b9c171919404a4732cb2fa8ece0a093223bfc4" dependencies = [ "bytes", - "futures 0.3.30", + "either", + "futures 0.3.31", "futures-timer", "getrandom 0.2.11", - "instant", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -5315,18 +6334,20 @@ dependencies = [ "libp2p-request-response", "libp2p-swarm", "libp2p-tcp", - "libp2p-wasm-ext", + "libp2p-upnp", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.18.2", "pin-project", + "rw-stream-sink", + "thiserror 1.0.69", ] [[package]] name = "libp2p-allow-block-list" -version = "0.1.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +checksum = "d1027ccf8d70320ed77e984f273bc8ce952f623762cb9bf2d126df73caef8041" dependencies = [ "libp2p-core", "libp2p-identity", @@ -5336,9 +6357,9 @@ dependencies = [ [[package]] name = "libp2p-connection-limits" -version = "0.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +checksum = "8d003540ee8baef0d254f7b6bfd79bac3ddf774662ca0abf69186d517ef82ad8" dependencies = [ "libp2p-core", "libp2p-identity", @@ -5348,338 +6369,367 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.39.2" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +checksum = "a61f26c83ed111104cd820fe9bc3aaabbac5f1652a1d213ed6e900b7918a1298" dependencies = [ "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "instant", "libp2p-identity", - "log", - "multiaddr", - "multihash 0.17.0", + "multiaddr 0.18.2", + "multihash 0.19.1", "multistream-select", "once_cell", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", "smallvec", - "thiserror", - "unsigned-varint", + "thiserror 1.0.69", + "tracing", + "unsigned-varint 0.8.0", "void", + "web-time", ] [[package]] name = "libp2p-dns" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" +checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ - "futures 0.3.30", + "async-trait", + "futures 0.3.31", + "hickory-resolver", "libp2p-core", - "log", - "parking_lot 0.12.1", + "libp2p-identity", + "parking_lot 0.12.3", "smallvec", - "trust-dns-resolver", + "tracing", ] [[package]] name = "libp2p-identify" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" +checksum = "1711b004a273be4f30202778856368683bd9a83c4c7dcc8f848847606831a4e3" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.7.0", "either", - "futures 0.3.30", + "futures 0.3.31", + "futures-bounded", "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", - "lru 0.10.1", + "lru 0.12.5", "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror", + "thiserror 1.0.69", + "tracing", "void", ] [[package]] name = "libp2p-identity" -version = "0.1.3" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" +checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" dependencies = [ - "bs58 0.4.0", + "bs58", "ed25519-dalek", - "log", - "multiaddr", - "multihash 0.17.0", + "hkdf", + "multihash 0.19.1", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", + "tracing", "zeroize", ] [[package]] name = "libp2p-kad" -version = "0.43.3" +version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" +checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" dependencies = [ "arrayvec 0.7.4", - "asynchronous-codec", + "asynchronous-codec 0.7.0", "bytes", "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", + "futures-bounded", "futures-timer", - "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", "quick-protobuf", - "rand", + "quick-protobuf-codec", + "rand 0.8.5", "sha2 0.10.8", "smallvec", - "thiserror", + "thiserror 1.0.69", + "tracing", "uint 0.9.5", - "unsigned-varint", "void", + "web-time", ] [[package]] name = "libp2p-mdns" -version = "0.43.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" +checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", - "futures 0.3.30", + "futures 0.3.31", + "hickory-proto", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", - "rand", + "rand 0.8.5", "smallvec", - "socket2 0.4.10", + "socket2 0.5.9", "tokio", - "trust-dns-proto", + "tracing", "void", ] [[package]] name = "libp2p-metrics" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" +checksum = "77ebafa94a717c8442d8db8d3ae5d1c6a15e30f2d347e0cd31d057ca72e42566" dependencies = [ + "futures 0.3.31", "libp2p-core", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-ping", "libp2p-swarm", + "pin-project", "prometheus-client", + "web-time", ] [[package]] name = "libp2p-noise" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" +checksum = "36b137cb1ae86ee39f8e5d6245a296518912014eaa87427d24e6ff58cfc1b28c" dependencies = [ + "asynchronous-codec 0.7.0", "bytes", - "curve25519-dalek 3.2.0", - "futures 0.3.30", + "curve25519-dalek 4.1.3", + "futures 0.3.31", "libp2p-core", "libp2p-identity", - "log", + "multiaddr 0.18.2", + "multihash 0.19.1", "once_cell", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "snow", "static_assertions", - "thiserror", - "x25519-dalek 1.1.1", + "thiserror 1.0.69", + "tracing", + "x25519-dalek", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" +checksum = "005a34420359223b974ee344457095f027e51346e992d1e0dcd35173f4cdd422" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "instant", "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", - "rand", + "rand 0.8.5", + "tracing", "void", + "web-time", ] [[package]] name = "libp2p-quic" -version = "0.7.0-alpha.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" +checksum = "46352ac5cd040c70e88e7ff8257a2ae2f891a4076abad2c439584a31c15fd24e" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-tls", - "log", - "parking_lot 0.12.1", - "quinn-proto", - "rand", - "rustls 0.20.9", - "thiserror", + "parking_lot 0.12.3", + "quinn", + "rand 0.8.5", + "ring 0.17.14", + "rustls", + "socket2 0.5.9", + "thiserror 1.0.69", "tokio", + "tracing", ] [[package]] name = "libp2p-request-response" -version = "0.24.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" dependencies = [ "async-trait", - "futures 0.3.30", - "instant", + "futures 0.3.31", + "futures-bounded", + "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "smallvec", + "tracing", + "void", + "web-time", ] [[package]] name = "libp2p-swarm" -version = "0.42.2" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" +checksum = "d7dd6741793d2c1fb2088f67f82cf07261f25272ebe3c0b0c311e0c6b50e851a" dependencies = [ "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm-derive", - "log", - "rand", + "lru 0.12.5", + "multistream-select", + "once_cell", + "rand 0.8.5", "smallvec", "tokio", + "tracing", "void", + "web-time", ] [[package]] name = "libp2p-swarm-derive" -version = "0.32.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", + "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "libp2p-tcp" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" +checksum = "ad964f312c59dcfcac840acd8c555de8403e295d39edf96f5240048b5fcaa314" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "if-watch", "libc", "libp2p-core", - "log", - "socket2 0.4.10", + "libp2p-identity", + "socket2 0.5.9", "tokio", + "tracing", ] [[package]] name = "libp2p-tls" -version = "0.1.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +checksum = "47b23dddc2b9c355f73c1e36eb0c3ae86f7dc964a3715f0731cfad352db4d847" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-rustls", "libp2p-core", "libp2p-identity", "rcgen", - "ring 0.16.20", - "rustls 0.20.9", - "thiserror", - "webpki", - "x509-parser", + "ring 0.17.14", + "rustls", + "rustls-webpki 0.101.7", + "thiserror 1.0.69", + "x509-parser 0.16.0", "yasna", ] [[package]] -name = "libp2p-wasm-ext" -version = "0.39.0" +name = "libp2p-upnp" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +checksum = "01bf2d1b772bd3abca049214a3304615e6a36fa6ffc742bdd1ba774486200b8f" dependencies = [ - "futures 0.3.30", - "js-sys", + "futures 0.3.31", + "futures-timer", + "igd-next", "libp2p-core", - "parity-send-wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", + "libp2p-swarm", + "tokio", + "tracing", + "void", ] [[package]] name = "libp2p-websocket" -version = "0.41.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +checksum = "888b2ff2e5d8dcef97283daab35ad1043d18952b65e05279eecbe02af4c6e347" dependencies = [ "either", - "futures 0.3.30", + "futures 0.3.31", "futures-rustls", "libp2p-core", - "log", - "parking_lot 0.12.1", - "quicksink", + "libp2p-identity", + "parking_lot 0.12.3", + "pin-project-lite", "rw-stream-sink", - "soketto", + "soketto 0.8.1", + "thiserror 1.0.69", + "tracing", "url", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.43.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" +checksum = "788b61c80789dba9760d8c669a5bedb642c8267555c803fabd8396e4ca5c5882" dependencies = [ - "futures 0.3.30", + "either", + "futures 0.3.31", "libp2p-core", - "log", - "thiserror", - "yamux", + "thiserror 1.0.69", + "tracing", + "yamux 0.12.1", + "yamux 0.13.5", ] [[package]] @@ -5688,7 +6738,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.9.1", "libc", "redox_syscall 0.4.1", ] @@ -5710,18 +6760,18 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64 0.22.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -5735,7 +6785,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -5830,6 +6880,59 @@ dependencies = [ "keystream", ] +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "litep2p" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71056c23c896bb0e18113b2d2f1989be95135e6bdeedb0b757422ee21a073eb" +dependencies = [ + "async-trait", + "bs58", + "bytes", + "cid 0.11.1", + "ed25519-dalek", + "futures 0.3.31", + "futures-timer", + "hickory-resolver", + "indexmap 2.9.0", + "libc", + "mockall", + "multiaddr 0.17.1", + "multihash 0.17.0", + "network-interface", + "parking_lot 0.12.3", + "pin-project", + "prost 0.13.5", + "prost-build", + "rand 0.8.5", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.9", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "uint 0.10.0", + "unsigned-varint 0.8.0", + "url", + "x25519-dalek", + "x509-parser 0.17.0", + "yamux 0.13.5", + "yasna", + "zeroize", +] + [[package]] name = "lock_api" version = "0.4.11" @@ -5842,24 +6945,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" -version = "0.10.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" -dependencies = [ - "hashbrown 0.13.2", -] +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" [[package]] name = "lru" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.3", +] [[package]] name = "lru-cache" @@ -5870,6 +6973,12 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4" version = "1.24.0" @@ -5908,7 +7017,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -5918,11 +7027,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -5933,7 +7042,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -5944,7 +7053,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -5962,12 +7071,6 @@ dependencies = [ "toml 0.5.11", ] -[[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" @@ -5992,12 +7095,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[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.8" @@ -6074,11 +7171,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "blake3", - "frame-metadata", + "frame-metadata 16.0.0", "parity-scale-codec", - "scale-decode", + "scale-decode 0.13.1", "scale-info", ] @@ -6106,17 +7203,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "mick-jaeger" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" -dependencies = [ - "futures 0.3.30", - "rand", - "thrift", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -6134,13 +7220,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6154,64 +7240,63 @@ dependencies = [ "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "either", "hashlink", "lioness", "log", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", - "subtle 2.4.1", - "thiserror", + "subtle 2.6.1", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "mmr-gadget" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "44.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", "sc-client-api", "sc-offchain", - "sp-api", - "sp-blockchain", - "sp-consensus", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-beefy", - "sp-core", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-mmr-primitives", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "mmr-rpc" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.24.9", "parity-scale-codec", "serde", - "sp-api", - "sp-blockchain", - "sp-core", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-mmr-primitives", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "mockall" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", "fragile", - "lazy_static", "mockall_derive", "predicates", "predicates-tree", @@ -6219,16 +7304,22 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] +[[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" @@ -6244,7 +7335,26 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.7.2", + "url", +] + +[[package]] +name = "multiaddr" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "libp2p-identity", + "multibase", + "multihash 0.19.1", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint 0.8.0", "url", ] @@ -6270,23 +7380,10 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive 0.8.0", + "multihash-derive", "sha2 0.10.8", "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "core2", - "digest 0.10.7", - "multihash-derive 0.8.0", - "sha2 0.10.8", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -6296,27 +7393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint", -] - -[[package]] -name = "multihash-codetable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive 0.9.0", - "ripemd", - "serde", - "sha1", - "sha2 0.10.8", - "sha3", - "strobe-rs", + "unsigned-varint 0.7.2", ] [[package]] @@ -6333,31 +7410,6 @@ dependencies = [ "synstructure 0.12.6", ] -[[package]] -name = "multihash-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" -dependencies = [ - "core2", - "multihash 0.19.1", - "multihash-derive-impl", -] - -[[package]] -name = "multihash-derive-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3958713ce794e12f7c6326fac9aa274c68d74c4881dd37b3e2662b8a2046bb19" -dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.82", - "synstructure 0.13.1", -] - [[package]] name = "multimap" version = "0.8.3" @@ -6366,16 +7418,16 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" +checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "log", "pin-project", "smallvec", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -6411,7 +7463,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -6458,7 +7510,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6468,11 +7520,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "log", "netlink-packet-core", "netlink-sys", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -6483,12 +7535,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", - "futures 0.3.30", + "futures 0.3.31", "libc", "log", "tokio", ] +[[package]] +name = "network-interface" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" +dependencies = [ + "cc", + "libc", + "thiserror 1.0.69", + "winapi", +] + [[package]] name = "nix" version = "0.24.3" @@ -6502,15 +7566,22 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.9.1", "cfg-if", + "cfg_aliases 0.2.1", "libc", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no-std-net" version = "0.6.0" @@ -6540,10 +7611,16 @@ dependencies = [ ] [[package]] -name = "normalize-line-endings" +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + +[[package]] +name = "nonzero_ext" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" [[package]] name = "nu-ansi-term" @@ -6557,9 +7634,9 @@ dependencies = [ [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-bigint", "num-complex", @@ -6571,24 +7648,40 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "num-format" version = "0.4.4" @@ -6601,19 +7694,18 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -6622,11 +7714,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -6634,9 +7725,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -6663,11 +7754,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.7.2", + "num_enum_derive 0.7.3", ] [[package]] @@ -6684,22 +7775,16 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.30.4" @@ -6721,13 +7806,31 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ - "asn1-rs", + "asn1-rs 0.6.2", +] + +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs 0.7.1", ] [[package]] @@ -6762,29 +7865,29 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" +checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" dependencies = [ "async-trait", "dyn-clonable", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "orchestra-proc-macro", "pin-project", "prioritized-metered-channel", - "thiserror", + "thiserror 1.0.69", "tracing", ] [[package]] name = "orchestra-proc-macro" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" +checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0" dependencies = [ - "expander 2.0.0", - "indexmap 2.1.0", + "expander", + "indexmap 2.9.0", "itertools 0.11.0", "petgraph", "proc-macro-crate 3.1.0", @@ -6793,19 +7896,10 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "ordered-float" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" -dependencies = [ - "num-traits", -] - [[package]] name = "orml-currencies" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "frame-system", @@ -6814,15 +7908,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "orml-tokens" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "frame-system", @@ -6831,15 +7925,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "orml-traits" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -6849,46 +7943,46 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", ] [[package]] name = "orml-utilities" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "orml-xcm-support" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "orml-traits", "parity-scale-codec", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "orml-xtokens" -version = "0.8.0" -source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-v1.7.2#7234b410ae30ad22b9f5588753d86bbb3fc55e2c" +version = "1.4.0" +source = "git+https://github.com/peaqnetwork/open-runtime-module-library?branch=peaq-polkadot-stable2503-4#e277a0413c944a47a52f98e0a4a121e6d2fcf5d3" dependencies = [ "frame-support", "frame-system", @@ -6899,9 +7993,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", ] @@ -6914,41 +8008,40 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" -version = "10.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-asset-rate" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-asset-tx-payment" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6957,32 +8050,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-assets" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "42.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-aura" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", @@ -6990,46 +8082,43 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-authority-discovery" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-authorship" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-babe" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7040,20 +8129,19 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-bags-list" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "aquamarine", "docify", @@ -7065,17 +8153,16 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-balances" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", @@ -7084,28 +8171,28 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-beefy" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", @@ -7116,19 +8203,19 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-beefy-mmr" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", - "binary-merkle-tree", + "array-bytes", + "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -7138,13 +8225,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-beefy", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7162,16 +8248,16 @@ dependencies = [ "peaq-primitives-xcm", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-bounties" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7180,33 +8266,33 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-broker" -version = "0.6.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.19.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-child-bounties" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7216,54 +8302,52 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-collator-selection" -version = "9.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "21.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-authorship", + "pallet-balances", "pallet-session", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-collective" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-contracts" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "bitflags 1.3.2", "environmental", "frame-benchmarking", "frame-support", @@ -7274,48 +8358,47 @@ dependencies = [ "pallet-contracts-proc-macro", "pallet-contracts-uapi", "parity-scale-codec", - "rand", + "paste", + "rand 0.8.5", "rand_pcg", "scale-info", "serde", "smallvec", - "sp-api", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "wasm-instrument", - "wasmi", + "wasmi 0.32.3", ] [[package]] name = "pallet-contracts-proc-macro" -version = "18.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "23.0.3" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "pallet-contracts-uapi" -version = "5.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "14.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", "paste", - "polkavm-derive 0.5.0", "scale-info", ] [[package]] name = "pallet-conviction-voting" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7324,15 +8407,29 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "pallet-delegated-staking" +version = "7.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-staking", ] [[package]] name = "pallet-democracy" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7341,16 +8438,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7359,35 +8455,33 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-npos-elections", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "strum 0.24.1", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-elections-phragmen" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7395,20 +8489,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-npos-elections", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ - "environmental", "ethereum", "ethereum-types", "evm", @@ -7422,16 +8514,17 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ + "cumulus-primitives-storage-weight-reclaim", "environmental", "evm", "fp-account", @@ -7440,17 +8533,14 @@ dependencies = [ "frame-support", "frame-system", "hash-db", - "hex", "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", - "rlp", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7471,10 +8561,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7496,10 +8586,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7521,10 +8611,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7545,16 +8635,16 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", ] @@ -7562,29 +8652,29 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", - "sp-core", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-bn", ] [[package]] name = "pallet-evm-precompile-dispatch" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", "frame-support", "pallet-evm", "parity-scale-codec", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", "num", @@ -7613,10 +8703,10 @@ dependencies = [ "serde", "sha3", "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7631,10 +8721,10 @@ dependencies = [ "parity-scale-codec", "peaq-pallet-did", "precompile-utils", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7649,10 +8739,10 @@ dependencies = [ "peaq-pallet-rbac", "peaq-primitives-xcm", "precompile-utils", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7666,16 +8756,16 @@ dependencies = [ "parity-scale-codec", "peaq-pallet-storage", "precompile-utils", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", "tiny-keccak", @@ -7684,11 +8774,11 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-v1.7.2#83da7a81da48162cbea7b2fe143ac80de64e6c00" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", "ripemd", - "sp-io", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7709,10 +8799,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -7736,11 +8826,11 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -7770,11 +8860,11 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -7782,8 +8872,8 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", @@ -7793,16 +8883,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-grandpa" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7812,20 +8901,19 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-grandpa", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-identity" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7834,16 +8922,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-im-online" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7852,49 +8938,43 @@ dependencies = [ "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-indices" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "16.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "28.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "frame-support", - "frame-system", "parity-scale-codec", + "polkadot-sdk-frame", "safe-mix", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-membership" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7902,16 +8982,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-message-queue" -version = "31.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "43.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "environmental", "frame-benchmarking", @@ -7920,68 +8999,87 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "pallet-mmr" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-meta-tx" +version = "0.2.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-mmr-primitives", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "serde", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "pallet-multisig" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-migrations" +version = "10.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "pallet-mmr" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", + "sp-mmr-primitives", +] + +[[package]] +name = "pallet-multisig" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-nis" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-nomination-pools" -version = "25.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "38.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", @@ -7989,66 +9087,62 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "38.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" 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 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "23.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-offences" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", "log", - "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-offences-benchmarking" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8064,47 +9158,57 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] -name = "pallet-preimage" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-parameters" +version = "0.11.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", + "paste", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "serde", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "pallet-proxy" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-preimage" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "pallet-proxy" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", ] [[package]] name = "pallet-ranked-collective" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -8113,32 +9217,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-recovery" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-referenda" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8148,31 +9250,29 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-root-testing" -version = "4.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "16.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-scheduler" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", @@ -8181,16 +9281,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-session" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "frame-system", @@ -8199,20 +9298,19 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-state-machine", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-session-benchmarking" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -8220,34 +9318,32 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand", - "sp-runtime", + "rand 0.8.5", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "pallet-society" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-staking" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8257,50 +9353,38 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto", - "sp-io", - "sp-runtime", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - -[[package]] -name = "pallet-staking-reward-curve" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.82", ] [[package]] name = "pallet-staking-reward-fn" -version = "19.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "log", - "sp-arithmetic", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-staking-runtime-api" -version = "14.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "26.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "44.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -8308,16 +9392,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-sudo" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", @@ -8325,15 +9408,14 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-timestamp" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", @@ -8342,18 +9424,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", ] [[package]] name = "pallet-tips" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -8363,158 +9444,164 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-transaction-payment" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "30.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "43.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.24.9", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-weights", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-weights", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-treasury" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "docify", "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", + "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "pallet-utility" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "40.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "pallet-vesting" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-verify-signature" +version = "0.3.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] -name = "pallet-whitelist" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "pallet-vesting" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", - "sp-api", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "pallet-whitelist" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", ] [[package]] name = "pallet-xcm" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", - "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "tracing", + "xcm-runtime-apis", ] [[package]] name = "pallet-xcm-benchmarks" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8538,17 +9625,17 @@ dependencies = [ "scale-info", "serde", "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "parachains-common" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "21.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8566,21 +9653,32 @@ dependencies = [ "polkadot-primitives", "scale-info", "sp-consensus-aura", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", - "substrate-wasm-builder", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] [[package]] name = "parity-db" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ "blake2 0.10.6", "crc32fast", @@ -8590,45 +9688,42 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.1", - "rand", - "siphasher", + "parking_lot 0.12.3", + "rand 0.8.5", + "siphasher 0.3.11", "snap", + "winapi", ] [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] -[[package]] -name = "parity-send-wrapper" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" - [[package]] name = "parity-wasm" version = "0.45.0" @@ -8654,9 +9749,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core 0.9.9", @@ -8695,11 +9790,22 @@ 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.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -8707,7 +9813,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", ] [[package]] @@ -8717,6 +9823,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "hmac 0.12.1", + "password-hash", ] [[package]] @@ -8730,7 +9838,7 @@ dependencies = [ "peaq-rpc-primitives-debug", "serde", "serde_json", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -8831,24 +9939,24 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", - "sp-version", - "sp-weights", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder", + "substrate-wasm-builder 17.0.0", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -8867,10 +9975,10 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "peaq-primitives-ext", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -8970,24 +10078,24 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", - "sp-version", - "sp-weights", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder", + "substrate-wasm-builder 17.0.0", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -8998,7 +10106,7 @@ name = "peaq-node" version = "4.0.0-polkadot-v1.7.2" dependencies = [ "async-trait", - "clap 4.5.9", + "clap 4.5.13", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -9031,10 +10139,10 @@ dependencies = [ "fp-storage", "frame-benchmarking", "frame-benchmarking-cli", - "futures 0.3.30", + "futures 0.3.31", "hex-literal 0.3.4", "inflation-manager", - "jsonrpsee", + "jsonrpsee 0.20.3", "log", "orml-xtokens", "pallet-base-fee", @@ -9069,7 +10177,7 @@ dependencies = [ "sc-consensus", "sc-consensus-aura", "sc-consensus-manual-seal", - "sc-executor", + "sc-executor 0.42.0", "sc-keystore", "sc-network", "sc-network-common", @@ -9082,27 +10190,26 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-timestamp", "sp-transaction-pool", "staging-xcm", "structopt", - "substrate-build-script-utils", + "substrate-build-script-utils 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "tokio", - "try-runtime-cli", "url", "zenlink-protocol", "zenlink-protocol-rpc", @@ -9111,8 +10218,8 @@ dependencies = [ [[package]] name = "peaq-pallet-did" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=dev#68b89b8e55806ddb6b84bc5fd6e4accf1a583503" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" dependencies = [ "frame-benchmarking", "frame-support", @@ -9122,45 +10229,45 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-rpc", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-did-rpc" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=dev#68b89b8e55806ddb6b84bc5fd6e4accf1a583503" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.20.3", "parity-scale-codec", "peaq-pallet-did", "peaq-pallet-did-runtime-api", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-did-runtime-api" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=dev#68b89b8e55806ddb6b84bc5fd6e4accf1a583503" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" dependencies = [ "parity-scale-codec", "peaq-pallet-did", - "sp-api", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-mor" -version = "0.1.2" -source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=dev#7b99d8bada565d1766d9e6aab7368536e32dbafa" +version = "0.2.2" +source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=peaq-polkadot-stable2503-4#83e6fb93bd99154605c8cf79b08c0f690f171766" dependencies = [ "frame-benchmarking", "frame-support", @@ -9171,16 +10278,16 @@ dependencies = [ "peaq-pallet-did", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-rbac" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=dev#690d406fa11176d865b30ec620549b70c9df3252" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" dependencies = [ "frame-benchmarking", "frame-support", @@ -9191,42 +10298,42 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-rbac-rpc" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=dev#690d406fa11176d865b30ec620549b70c9df3252" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.20.3", "parity-scale-codec", "peaq-pallet-rbac", "peaq-pallet-rbac-runtime-api", - "sp-api", - "sp-blockchain", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-rbac-runtime-api" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=dev#690d406fa11176d865b30ec620549b70c9df3252" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" dependencies = [ "parity-scale-codec", "peaq-pallet-rbac", - "sp-api", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-storage" -version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=dev#a7ed9d41e79603023110464b343eaf0519d21dd1" +version = "0.3.1" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9234,44 +10341,44 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-storage-rpc" -version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=dev#a7ed9d41e79603023110464b343eaf0519d21dd1" +version = "0.3.1" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.20.3", "parity-scale-codec", "peaq-pallet-storage", "peaq-pallet-storage-runtime-api", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-storage-runtime-api" -version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=dev#a7ed9d41e79603023110464b343eaf0519d21dd1" +version = "0.3.1" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" dependencies = [ "parity-scale-codec", "peaq-pallet-storage", - "sp-api", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "peaq-pallet-transaction" -version = "0.1.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-transaction.git?branch=dev#d0772b7e8ed4776e8f73601b2fab5f08e23fd391" +version = "0.2.1" +source = "git+https://github.com/peaqnetwork/peaq-pallet-transaction.git?branch=peaq-polkadot-stable2503-4#78574803008397d0c7000fcb8a99097b7f988fe4" dependencies = [ "frame-benchmarking", "frame-support", @@ -9279,10 +10386,10 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9292,9 +10399,9 @@ dependencies = [ "ethereum-types", "evm-tracing-events", "parity-scale-codec", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9314,9 +10421,9 @@ dependencies = [ "serde", "serde_json", "sha3", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9329,13 +10436,13 @@ name = "peaq-rpc-core-debug" version = "0.1.0" dependencies = [ "ethereum-types", - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.20.3", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", "serde_json", - "sp-core", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9343,8 +10450,8 @@ name = "peaq-rpc-core-trace" version = "0.6.0" dependencies = [ "ethereum-types", - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.20.3", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -9358,7 +10465,7 @@ dependencies = [ "ethereum", "ethereum-types", "fc-rpc-core", - "jsonrpsee", + "jsonrpsee 0.20.3", "serde", "serde_json", ] @@ -9384,21 +10491,21 @@ dependencies = [ "fc-rpc", "fc-storage", "fp-rpc", - "futures 0.3.30", + "futures 0.3.31", "hex-literal 0.3.4", - "jsonrpsee", + "jsonrpsee 0.20.3", "peaq-client-evm-tracing", "peaq-rpc-core-debug", "peaq-rpc-core-types", "peaq-rpc-primitives-debug", "sc-client-api", "sc-utils", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-io", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tokio", ] @@ -9413,11 +10520,11 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "sp-api", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9427,10 +10534,10 @@ dependencies = [ "ethereum", "parity-scale-codec", "scale-info", - "sp-api", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9444,8 +10551,8 @@ dependencies = [ "fc-rpc-core", "fc-storage", "fp-rpc", - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.20.3", "log", "peaq-client-evm-tracing", "peaq-rpc-core-trace", @@ -9456,12 +10563,12 @@ dependencies = [ "sc-utils", "serde", "sha3", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", "substrate-prometheus-endpoint", "tokio", @@ -9475,7 +10582,7 @@ dependencies = [ "ethereum-types", "fc-rpc", "frame-system", - "jsonrpsee", + "jsonrpsee 0.20.3", "peaq-rpc-core-txpool", "peaq-rpc-primitives-txpool", "rlp", @@ -9483,11 +10590,11 @@ dependencies = [ "sc-transaction-pool-api", "serde", "sha3", - "sp-api", - "sp-blockchain", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -9586,24 +10693,24 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", - "sp-version", - "sp-weights", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder", + "substrate-wasm-builder 17.0.0", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -9617,11 +10724,12 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pem" -version = "1.1.1" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", + "serde", ] [[package]] @@ -9637,7 +10745,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] @@ -9661,7 +10769,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -9682,40 +10790,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.9.0", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -9750,56 +10852,46 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -[[package]] -name = "platforms" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" - [[package]] name = "polkadot-approval-distribution" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "bitvec", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "itertools 0.10.5", - "polkadot-node-jaeger", + "itertools 0.11.0", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "always-assert", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "derive_more 0.99.17", "fatality", - "futures 0.3.30", + "futures 0.3.31", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -9807,22 +10899,23 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand", + "rand 0.8.5", + "sc-network", "schnellru", - "sp-core", - "sp-keystore", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "fatality", - "futures 0.3.30", + "futures 0.3.31", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -9830,275 +10923,298 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand", + "rand 0.8.5", "sc-network", "schnellru", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing-gum", ] [[package]] -name = "polkadot-cli" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "polkadot-ckb-merkle-mountain-range" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221c71b432b38e494a0fdedb5f720e4cb974edf03a0af09e5b2238dbac7e6947" dependencies = [ "cfg-if", - "clap 4.5.9", + "itertools 0.10.5", +] + +[[package]] +name = "polkadot-cli" +version = "23.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "clap 4.5.13", "frame-benchmarking-cli", - "futures 0.3.30", + "futures 0.3.31", "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-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-keyring", - "sp-maybe-compressed-blob", - "substrate-build-script-utils", - "thiserror", - "try-runtime-cli", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "substrate-build-script-utils 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "polkadot-collator-protocol" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "fatality", - "futures 0.3.30", + "futures 0.3.31", "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", + "schnellru", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tokio-util", "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "17.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "polkadot-dispute-distribution" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "derive_more 0.99.17", "fatality", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "indexmap 2.1.0", + "indexmap 2.9.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", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core", - "sp-trie", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "polkadot-gossip-support" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", - "sc-network-common", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "always-assert", "async-trait", "bytes", "fatality", - "futures 0.3.30", + "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-network", - "sp-consensus", - "thiserror", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "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", + "schnellru", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "async-trait", "bitvec", "derive_more 0.99.17", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "itertools 0.10.5", - "kvdb", + "itertools 0.11.0", "merlin 3.0.0", "parity-scale-codec", - "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "rand", + "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-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-slots", - "sp-runtime", - "thiserror", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-approval-voting-parallel" +version = "0.5.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "async-trait", + "futures 0.3.31", + "itertools 0.11.0", + "polkadot-approval-distribution", + "polkadot-node-core-approval-voting", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "rand 0.8.5", + "rand_core 0.6.4", + "sc-keystore", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", - "futures 0.3.30", + "futures 0.3.31", "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", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "fatality", - "futures 0.3.30", + "futures 0.3.31", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-statement-table", "schnellru", - "sp-keystore", - "thiserror", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore", - "thiserror", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", "wasm-timer", ] [[package]] name = "polkadot-node-core-candidate-validation" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", @@ -10109,16 +11225,17 @@ dependencies = [ "polkadot-overseer", "polkadot-parachain-primitives", "polkadot-primitives", - "sp-maybe-compressed-blob", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -10129,29 +11246,27 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "kvdb", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "thiserror", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "fatality", - "futures 0.3.30", - "kvdb", + "futures 0.3.31", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -10159,143 +11274,131 @@ dependencies = [ "polkadot-primitives", "sc-keystore", "schnellru", - "thiserror", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sp-blockchain", - "sp-inherents", - "thiserror", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-prospective-parachains" -version = "6.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "21.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "bitvec", "fatality", - "futures 0.3.30", - "parity-scale-codec", - "polkadot-node-primitives", + "futures 0.3.31", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "thiserror", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "fatality", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "thiserror", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "always-assert", - "array-bytes 6.2.3", - "blake3", - "cfg-if", - "futures 0.3.30", + "array-bytes", + "futures 0.3.31", "futures-timer", - "is_executable", - "libc", "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", + "rand 0.8.5", + "sc-tracing", "slotmap", - "sp-core", - "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", - "polkadot-node-primitives", + "futures 0.3.31", "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-overseer", "polkadot-primitives", - "sp-keystore", - "thiserror", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-common" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "cfg-if", "cpu-time", - "futures 0.3.30", + "futures 0.3.31", "landlock", "libc", - "nix 0.27.1", + "nix 0.29.0", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", + "sc-executor 0.42.0", + "sc-executor-common 0.38.0", + "sc-executor-wasmtime 0.38.0", "seccompiler", - "sp-core", - "sp-crypto-hashing", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-io", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -10305,33 +11408,14 @@ dependencies = [ "tracing-gum", ] -[[package]] -name = "polkadot-node-jaeger" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.12.1", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-network", - "sp-core", - "thiserror", - "tokio", -] - [[package]] name = "polkadot-node-metrics" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "bs58 0.5.0", - "futures 0.3.30", + "bs58", + "futures 0.3.31", "futures-timer", - "log", "parity-scale-codec", "polkadot-primitives", "prioritized-metered-channel", @@ -10339,111 +11423,107 @@ dependencies = [ "sc-service", "sc-tracing", "substrate-prometheus-endpoint", - "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", "derive_more 0.99.17", "fatality", - "futures 0.3.30", + "futures 0.3.31", "hex", "parity-scale-codec", - "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", - "rand", + "rand 0.8.5", "sc-authority-discovery", "sc-network", - "strum 0.24.1", - "thiserror", + "sc-network-types", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "bounded-vec", - "futures 0.3.30", + "futures 0.3.31", + "futures-timer", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", + "sc-keystore", "schnorrkel 0.11.4", "serde", - "sp-application-crypto", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-maybe-compressed-blob", - "sp-runtime", - "thiserror", + "sp-consensus-slots", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "zstd 0.12.4", ] [[package]] name = "polkadot-node-subsystem" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "polkadot-node-jaeger", "polkadot-node-subsystem-types", "polkadot-overseer", ] [[package]] name = "polkadot-node-subsystem-types" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "bitvec", "derive_more 0.99.17", - "futures 0.3.30", + "fatality", + "futures 0.3.31", "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", - "sp-blockchain", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "polkadot-node-subsystem-util" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "async-trait", - "derive_more 0.99.17", "fatality", - "futures 0.3.30", - "futures-channel", - "itertools 0.10.5", + "futures 0.3.31", + "itertools 0.11.0", "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", - "pin-project", - "polkadot-node-jaeger", + "parking_lot 0.12.3", + "polkadot-erasure-coding", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -10452,42 +11532,40 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "prioritized-metered-channel", - "rand", + "rand 0.8.5", "sc-client-api", "schnellru", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "thiserror", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-overseer" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "orchestra", - "parking_lot 0.12.1", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", - "sp-api", - "sp-core", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tikv-jemalloc-ctl", "tracing-gum", ] [[package]] name = "polkadot-parachain-primitives" -version = "6.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "16.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bounded-collections", "derive_more 0.99.17", @@ -10495,16 +11573,15 @@ dependencies = [ "polkadot-core-primitives", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "polkadot-primitives" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "18.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "hex-literal 0.4.1", @@ -10514,26 +11591,27 @@ dependencies = [ "polkadot-parachain-primitives", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "polkadot-rpc" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "23.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.24.9", "mmr-rpc", "pallet-transaction-payment-rpc", "polkadot-primitives", @@ -10543,28 +11621,28 @@ dependencies = [ "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-keystore", - "sp-runtime", + "sp-consensus-beefy", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] [[package]] name = "polkadot-runtime-common" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitvec", "frame-benchmarking", @@ -10589,24 +11667,22 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", - "pallet-xcm-benchmarks", "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keyring", "sp-npos-elections", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -10615,25 +11691,23 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "bs58 0.5.0", + "bs58", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "polkadot-runtime-parachains" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bitflags 1.3.2", "bitvec", - "derive_more 0.99.17", "frame-benchmarking", "frame-support", "frame-system", @@ -10645,62 +11719,100 @@ dependencies = [ "pallet-balances", "pallet-broker", "pallet-message-queue", + "pallet-mmr", "pallet-session", "pallet-staking", "pallet-timestamp", - "pallet-vesting", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", - "rustc-hex", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", "static_assertions", ] +[[package]] +name = "polkadot-sdk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb819108697967452fa6d8d96ab4c0d48cbaa423b3156499dcb24f1cf95d6775" +dependencies = [ + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-sdk-frame" +version = "0.9.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +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", + "serde", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-genesis-builder", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keyring", + "sp-offchain", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-session", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-transaction-pool", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "polkadot-service" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "23.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" 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", + "futures 0.3.31", "is_executable", "kvdb", "kvdb-rocksdb", "log", "mmr-gadget", - "pallet-babe", - "pallet-im-online", - "pallet-staking", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -10712,6 +11824,7 @@ dependencies = [ "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", + "polkadot-node-core-approval-voting-parallel", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", @@ -10731,7 +11844,6 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", - "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-rpc", "polkadot-runtime-parachains", @@ -10739,19 +11851,16 @@ dependencies = [ "rococo-runtime", "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-executor 0.42.0", "sc-keystore", "sc-network", - "sc-network-common", "sc-network-sync", "sc-offchain", "sc-service", @@ -10760,77 +11869,91 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-transaction-pool-api", - "schnellru", "serde", "serde_json", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-genesis-builder", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-keyring", - "sp-keystore", "sp-mmr-primitives", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-timestamp", "sp-transaction-pool", - "sp-version", - "sp-weights", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "staging-xcm", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tracing-gum", "westend-runtime", + "xcm-runtime-apis", ] [[package]] name = "polkadot-statement-distribution" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "arrayvec 0.7.4", "bitvec", "fatality", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "indexmap 2.1.0", + "indexmap 2.9.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "thiserror", + "thiserror 1.0.69", "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "sp-core", "tracing-gum", ] [[package]] -name = "polkavm-common" -version = "0.5.0" +name = "polkavm" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd044ab1d3b11567ab6b98ca71259a992b4034220d5972988a0e96518e5d343d" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common 0.18.0", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c" +checksum = "eaad38dc420bfed79e6f731471c973ce5ff5e47ab403e63cf40358fef8a6368f" +dependencies = [ + "log", +] [[package]] name = "polkavm-common" @@ -10839,13 +11962,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" [[package]] -name = "polkavm-derive" -version = "0.5.0" +name = "polkavm-common" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8" +checksum = "31ff33982a807d8567645d4784b9b5d7ab87bcb494f534a57cadd9012688e102" dependencies = [ - "polkavm-derive-impl 0.5.0", - "syn 2.0.82", + "log", + "polkavm-assembler", ] [[package]] @@ -10854,19 +11977,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" dependencies = [ - "polkavm-derive-impl-macro", + "polkavm-derive-impl-macro 0.9.0", ] [[package]] -name = "polkavm-derive-impl" -version = "0.5.0" +name = "polkavm-derive" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d" +checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" dependencies = [ - "polkavm-common 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.82", + "polkavm-derive-impl-macro 0.18.0", ] [[package]] @@ -10878,7 +11998,19 @@ dependencies = [ "polkavm-common 0.9.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" +dependencies = [ + "polkavm-common 0.18.0", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -10888,34 +12020,66 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl 0.9.0", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] -name = "polling" -version = "2.8.0" +name = "polkavm-derive-impl-macro" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite 0.2.13", - "windows-sys 0.48.0", + "polkavm-derive-impl 0.18.1", + "syn 2.0.101", ] [[package]] -name = "polling" -version = "3.3.1" +name = "polkavm-linker" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "e9bfe793b094d9ea5c99b7c43ba46e277b0f8f48f4bbfdbabf8d3ebf701a4bd3" dependencies = [ - "cfg-if", - "concurrent-queue", - "pin-project-lite 0.2.13", + "dirs", + "gimli 0.31.1", + "hashbrown 0.14.5", + "log", + "object 0.36.7", + "polkavm-common 0.18.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23eff02c070c70f31878a3d915e88a914ecf3e153741e2fb572dde28cce20fde" + +[[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", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", "rustix 0.38.26", "tracing", "windows-sys 0.52.0", @@ -10946,9 +12110,18 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] [[package]] name = "powerfmt" @@ -10981,11 +12154,11 @@ dependencies = [ "scale-info", "serde", "similar-asserts", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", ] @@ -11002,24 +12175,20 @@ dependencies = [ "proc-macro2", "quote", "sha3", - "sp-core", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "syn 1.0.109", "trybuild", ] [[package]] name = "predicates" -version = "2.1.5" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", + "anstyle", "predicates-core", - "regex", ] [[package]] @@ -11055,7 +12224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -11066,7 +12235,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec 0.6.0", - "impl-rlp", "impl-serde 0.4.0", "scale-info", "uint 0.9.5", @@ -11081,6 +12249,9 @@ dependencies = [ "fixed-hash", "impl-codec 0.7.0", "impl-num-traits", + "impl-rlp", + "impl-serde 0.5.0", + "scale-info", "uint 0.10.0", ] @@ -11093,10 +12264,10 @@ dependencies = [ "coarsetime", "crossbeam-queue", "derive_more 0.99.17", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "nanorand", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -11110,15 +12281,6 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - [[package]] name = "proc-macro-crate" version = "3.1.0" @@ -11152,6 +12314,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "proc-macro-warning" version = "1.0.2" @@ -11160,41 +12344,41 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", - "thiserror", + "parking_lot 0.12.3", + "thiserror 1.0.69", ] [[package]] name = "prometheus-client" -version = "0.19.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" +checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -11206,17 +12390,23 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] -name = "prost" -version = "0.11.9" +name = "proptest" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "bytes", - "prost-derive 0.11.9", + "bitflags 2.9.1", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.5", + "unarray", ] [[package]] @@ -11230,60 +12420,68 @@ dependencies = [ ] [[package]] -name = "prost-build" -version = "0.11.9" +name = "prost" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", + "prost-derive 0.13.5", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.11.0", "log", "multimap", + "once_cell", "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", + "prettyplease 0.2.15", + "prost 0.13.5", "prost-types", "regex", - "syn 1.0.109", + "syn 2.0.101", "tempfile", - "which", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "prost-types" -version = "0.11.9" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "prost 0.11.9", + "prost 0.13.5", ] [[package]] @@ -11295,6 +12493,21 @@ dependencies = [ "cc", ] +[[package]] +name = "quanta" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +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" @@ -11312,55 +12525,88 @@ dependencies = [ [[package]] name = "quick-protobuf-codec" -version = "0.1.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", - "thiserror", - "unsigned-varint", + "thiserror 1.0.69", + "unsigned-varint 0.8.0", ] [[package]] -name = "quicksink" -version = "0.1.2" +name = "quinn" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", + "bytes", + "cfg_aliases 0.2.1", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.1", + "rustls", + "socket2 0.5.9", + "thiserror 2.0.12", + "tokio", + "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.9.6" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "rand", - "ring 0.16.20", - "rustc-hash", - "rustls 0.20.9", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.1", + "ring 0.17.14", + "rustc-hash 2.1.1", + "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.12", "tinyvec", "tracing", - "webpki", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +dependencies = [ + "cfg_aliases 0.2.1", + "libc", + "once_cell", + "socket2 0.5.9", + "tracing", + "windows-sys 0.52.0", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "radium" version = "0.7.0" @@ -11379,13 +12625,13 @@ dependencies = [ ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "rand" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -11398,14 +12644,21 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + [[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" @@ -11416,6 +12669,15 @@ dependencies = [ "getrandom 0.2.11", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + [[package]] name = "rand_distr" version = "0.4.3" @@ -11423,7 +12685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -11435,6 +12697,24 @@ 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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags 2.9.1", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -11463,9 +12743,9 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ "pem", "ring 0.16.20", @@ -11508,7 +12788,7 @@ checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom 0.2.11", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -11520,7 +12800,7 @@ dependencies = [ "derive_more 0.99.17", "fs-err", "static_init", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -11540,7 +12820,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -11555,16 +12835,29 @@ dependencies = [ "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 1.1.0", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" -version = "1.10.2" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", - "regex-syntax 0.8.2", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -11578,13 +12871,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.5", ] [[package]] @@ -11595,9 +12888,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" @@ -11616,7 +12909,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -11624,11 +12917,11 @@ name = "ring" version = "0.1.0" source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.7.4", "blake2 0.10.6", @@ -11653,16 +12946,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.6" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", + "cfg-if", "getrandom 0.2.11", "libc", - "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -11676,9 +12969,9 @@ dependencies = [ [[package]] name = "rlp" -version = "0.5.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" dependencies = [ "bytes", "rlp-derive", @@ -11687,13 +12980,13 @@ dependencies = [ [[package]] name = "rlp-derive" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +checksum = "652db34deaaa57929e10ca18e5454a32cb0efc351ae80d320334bbf907b908b3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -11708,10 +13001,11 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "binary-merkle-tree", + "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "bitvec", "frame-benchmarking", "frame-executive", "frame-metadata-hash-extension", @@ -11731,20 +13025,19 @@ dependencies = [ "pallet-beefy-mmr", "pallet-bounties", "pallet-child-bounties", - "pallet-collective", "pallet-conviction-voting", "pallet-democracy", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", - "pallet-membership", "pallet-message-queue", + "pallet-migrations", "pallet-mmr", "pallet-multisig", "pallet-nis", "pallet-offences", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", @@ -11776,45 +13069,46 @@ dependencies = [ "scale-info", "serde", "serde_derive", - "smallvec", - "sp-api", - "sp-arithmetic", + "serde_json", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core", + "sp-consensus-grandpa", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-genesis-builder", - "sp-inherents", - "sp-io", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keyring", "sp-mmr-primitives", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", - "sp-version", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "static_assertions", - "substrate-wasm-builder", + "substrate-wasm-builder 26.0.1", + "xcm-runtime-apis", ] [[package]] name = "rococo-runtime-constants" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", ] @@ -11842,12 +13136,12 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "netlink-packet-route", "netlink-proto", "nix 0.24.3", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -11878,9 +13172,9 @@ dependencies = [ "parity-scale-codec", "peaq-primitives-xcm", "scale-info", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -11900,6 +13194,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -11967,7 +13267,7 @@ version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.12", @@ -11976,64 +13276,94 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.9" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "log", - "ring 0.16.20", - "sct", - "webpki", + "once_cell", + "ring 0.17.14", + "rustls-pki-types", + "rustls-webpki 0.103.3", + "subtle 2.6.1", + "zeroize", ] [[package]] -name = "rustls" -version = "0.21.9" +name = "rustls-native-certs" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ - "log", - "ring 0.17.6", - "rustls-webpki", - "sct", + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", ] [[package]] -name = "rustls-native-certs" -version = "0.6.3" +name = "rustls-pki-types" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ - "openssl-probe", - "rustls-pemfile", - "schannel", - "security-framework", + "web-time", + "zeroize", ] [[package]] -name = "rustls-pemfile" -version = "1.0.4" +name = "rustls-platform-verifier" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "base64 0.21.5", + "core-foundation 0.10.0", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.3", + "security-framework", + "security-framework-sys", + "webpki-root-certs 0.26.11", + "windows-sys 0.52.0", ] +[[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.6", + "ring 0.17.14", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ruzstd" @@ -12047,12 +13377,22 @@ dependencies = [ ] [[package]] -name = "rw-stream-sink" -version = "0.3.0" +name = "ruzstd" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" +dependencies = [ + "byteorder", + "derive_more 0.99.17", +] + +[[package]] +name = "rw-stream-sink" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "pin-project", "static_assertions", ] @@ -12081,6 +13421,15 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher 0.4.4", +] + [[package]] name = "same-file" version = "1.0.6" @@ -12096,189 +13445,195 @@ version = "23.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "log", - "sp-core", + "sp-core 28.0.0", "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "sc-allocator" +version = "31.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "log", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-authority-discovery" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "ip_network", - "libp2p", + "linked_hash_set", "log", - "multihash 0.18.1", - "multihash-codetable", "parity-scale-codec", "prost 0.12.6", "prost-build", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", - "sp-api", + "sc-network-types", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-basic-authorship" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", - "futures-timer", + "futures 0.3.31", "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", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.44.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-trie", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-chain-spec" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "42.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "docify", - "log", "memmap2 0.9.4", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", - "sc-executor", + "sc-executor 0.42.0", "sc-network", "sc-telemetry", "serde", "serde_json", - "sp-blockchain", - "sp-core", - "sp-crypto-hashing", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-genesis-builder", - "sp-io", - "sp-runtime", - "sp-state-machine", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-chain-spec-derive" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "12.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "sc-cli" -version = "0.36.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.51.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", - "bip39", + "array-bytes", "chrono", - "clap 4.5.9", + "clap 4.5.13", "fdlimit", - "futures 0.3.30", - "itertools 0.10.5", + "futures 0.3.31", + "itertools 0.11.0", "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", - "rand", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", "sc-client-db", - "sc-executor", "sc-keystore", "sc-mixnet", "sc-network", "sc-service", "sc-telemetry", "sc-tracing", + "sc-transaction-pool", "sc-utils", "serde", "serde_json", - "sp-blockchain", - "sp-core", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version", - "thiserror", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tokio", ] [[package]] name = "sc-client-api" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "fnv", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "sc-executor", + "parking_lot 0.12.3", + "sc-executor 0.42.0", "sc-transaction-pool-api", "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime", - "sp-state-machine", - "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" -version = "0.35.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.46.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "hash-db", "kvdb", @@ -12288,51 +13643,49 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "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", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-consensus" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", - "futures-timer", - "libp2p-identity", + "futures 0.3.31", "log", "mockall", - "parking_lot 0.12.1", + "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", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-aura" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", "sc-block-builder", @@ -12340,164 +13693,163 @@ dependencies = [ "sc-consensus", "sc-consensus-slots", "sc-telemetry", - "sp-api", - "sp-application-crypto", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-babe" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "fork-tree", - "futures 0.3.30", + "futures 0.3.31", "log", "num-bigint", "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-crypto-hashing", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-babe-rpc" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.24.9", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", "serde", - "sp-api", - "sp-application-crypto", - "sp-blockchain", - "sp-consensus", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-runtime", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-beefy" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "28.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", - "fnv", - "futures 0.3.30", + "futures 0.3.31", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-beefy", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", - "sp-mmr-primitives", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tokio", "wasm-timer", ] [[package]] name = "sc-consensus-beefy-rpc" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "28.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-beefy", - "sp-core", - "sp-runtime", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-epochs" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-consensus-grandpa" -version = "0.19.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.34.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.6", - "array-bytes 6.2.3", + "ahash 0.8.12", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -12506,54 +13858,55 @@ dependencies = [ "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing", - "sp-keystore", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.19.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.34.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "finality-grandpa", - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", "sc-client-api", "sc-consensus-grandpa", "sc-rpc", "serde", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-manual-seal" -version = "0.35.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.50.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "assert_matches", "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "jsonrpsee", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", "sc-client-api", @@ -12564,42 +13917,42 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "sc-consensus-slots" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -12609,35 +13962,82 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", - "sc-executor-common", - "sc-executor-wasmtime", + "parking_lot 0.12.3", + "sc-executor-common 0.29.0", + "sc-executor-wasmtime 0.29.0", "schnellru", - "sp-api", - "sp-core", + "sp-api 26.0.0", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-io", - "sp-panic-handler", + "sp-io 30.0.0", + "sp-panic-handler 13.0.0", "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", - "sp-version", + "sp-trie 29.0.0", + "sp-version 29.0.0", "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "tracing", ] +[[package]] +name = "sc-executor" +version = "0.42.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor-common 0.38.0", + "sc-executor-polkavm", + "sc-executor-wasmtime 0.38.0", + "schnellru", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "tracing", +] + [[package]] name = "sc-executor-common" version = "0.29.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "parity-scale-codec", - "sc-allocator", - "sp-maybe-compressed-blob", + "sc-allocator 23.0.0", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "thiserror 1.0.69", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-common" +version = "0.38.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "polkavm", + "sc-allocator 31.0.0", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "wasm-instrument", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.35.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "log", + "polkavm", + "sc-executor-common 0.38.0", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "sc-executor-wasmtime" version = "0.29.0" @@ -12648,208 +14048,200 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rustix 0.36.17", - "sc-allocator", - "sc-executor-common", - "sp-core", + "sc-allocator 23.0.0", + "sc-executor-common 0.29.0", + "sp-core 28.0.0", "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "wasmtime", ] +[[package]] +name = "sc-executor-wasmtime" +version = "0.38.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "anyhow", + "log", + "parking_lot 0.12.3", + "rustix 0.36.17", + "sc-allocator 31.0.0", + "sc-executor-common 0.38.0", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "wasmtime", +] + [[package]] name = "sc-informant" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ansi_term", - "futures 0.3.30", + "console", + "futures 0.3.31", "futures-timer", "log", "sc-client-api", "sc-network", - "sc-network-common", "sc-network-sync", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-keystore" -version = "25.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "35.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.1", + "array-bytes", + "parking_lot 0.12.3", "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "thiserror", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-mixnet" -version = "0.4.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.19.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "arrayvec 0.7.4", "blake2 0.10.6", "bytes", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "libp2p-identity", "log", "mixnet", - "multiaddr", "parity-scale-codec", - "parking_lot 0.12.1", + "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-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-mixnet", - "sp-runtime", - "thiserror", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-network" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", + "cid 0.9.0", "either", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand", + "prost 0.12.6", + "prost-build", + "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", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", - "unsigned-varint", + "unsigned-varint 0.7.2", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "async-channel 1.9.0", - "cid", - "futures 0.3.30", - "libp2p-identity", - "log", - "prost 0.12.6", - "prost-build", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime", - "thiserror", - "unsigned-varint", -] - [[package]] name = "sc-network-common" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "async-trait", "bitflags 1.3.2", - "futures 0.3.30", - "libp2p-identity", "parity-scale-codec", - "prost-build", - "sc-consensus", - "sp-consensus", - "sp-consensus-grandpa", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-network-gossip" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.6", - "futures 0.3.30", + "ahash 0.8.12", + "futures 0.3.31", "futures-timer", - "libp2p", "log", "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "schnellru", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-network-light" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", - "futures 0.3.30", - "libp2p-identity", + "futures 0.3.31", "log", "parity-scale-codec", "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", + "sc-network-types", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-network-sync" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "fork-tree", - "futures 0.3.30", - "futures-timer", - "libp2p", + "futures 0.3.31", "log", "mockall", "parity-scale-codec", @@ -12859,78 +14251,98 @@ dependencies = [ "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-utils", "schnellru", "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-grandpa", - "sp-core", - "sp-runtime", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] [[package]] name = "sc-network-transactions" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", - "futures 0.3.30", - "libp2p", + "array-bytes", + "futures 0.3.31", "log", "parity-scale-codec", "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "sc-utils", - "sp-consensus", - "sp-runtime", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.15.3" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "bs58", + "bytes", + "ed25519-dalek", + "libp2p-identity", + "libp2p-kad", + "litep2p", + "log", + "multiaddr 0.18.2", + "multihash 0.19.1", + "rand 0.8.5", + "thiserror 1.0.69", + "zeroize", +] + [[package]] name = "sc-offchain" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "44.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", "bytes", "fnv", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "hyper", + "http-body-util", + "hyper 1.6.0", "hyper-rustls", - "libp2p", - "log", + "hyper-util", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "rand 0.8.5", + "rustls", "sc-client-api", "sc-network", - "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", - "sp-api", - "sp-core", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-keystore", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "threadpool", "tracing", ] [[package]] name = "sc-proposer-metrics" -version = "0.17.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12938,14 +14350,14 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "44.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -12955,25 +14367,25 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-keystore", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-offchain", - "sp-rpc", - "sp-runtime", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-statement-store", - "sp-version", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tokio", ] [[package]] name = "sc-rpc-api" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.48.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.24.9", "parity-scale-codec", "sc-chain-spec", "sc-mixnet", @@ -12981,21 +14393,30 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-version", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-rpc-server" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "21.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "http", - "jsonrpsee", + "dyn-clone", + "forwarded-header-value", + "futures 0.3.31", + "governor", + "http 1.3.1", + "http-body-util", + "hyper 1.6.0", + "ip_network", + "jsonrpsee 0.24.9", "log", + "sc-rpc-api", + "serde", "serde_json", "substrate-prometheus-endpoint", "tokio", @@ -13005,63 +14426,80 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", - "futures 0.3.30", + "array-bytes", + "futures 0.3.31", "futures-util", "hex", - "jsonrpsee", + "itertools 0.11.0", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "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", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tokio", "tokio-stream", ] +[[package]] +name = "sc-runtime-utilities" +version = "0.2.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "sc-executor 0.42.0", + "sc-executor-common 0.38.0", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", +] + [[package]] name = "sc-service" -version = "0.35.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.50.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "jsonrpsee", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-client-db", "sc-consensus", - "sc-executor", + "sc-executor 0.42.0", "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -13071,26 +14509,27 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-keystore", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", - "sp-state-machine", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie", - "sp-version", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "static_init", "substrate-prometheus-endpoint", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "tracing-futures", @@ -13098,34 +14537,34 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.30.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.38.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", - "sp-core", + "parking_lot 0.12.3", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-storage-monitor" -version = "0.16.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.24.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.9", + "clap 4.5.13", "fs4", "log", - "sp-core", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tokio", ] [[package]] name = "sc-sync-state-rpc" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.49.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.24.9", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -13134,148 +14573,150 @@ dependencies = [ "sc-consensus-grandpa", "serde", "serde_json", - "sp-blockchain", - "sp-runtime", - "thiserror", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-sysinfo" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "42.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "derive_more 0.99.17", - "futures 0.3.30", + "futures 0.3.31", "libc", "log", - "rand", + "rand 0.8.5", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", - "sp-core", - "sp-crypto-hashing", - "sp-io", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sc-telemetry" -version = "15.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "28.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "chrono", - "futures 0.3.30", + "futures 0.3.31", "libp2p", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "sc-utils", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "wasm-timer", ] [[package]] name = "sc-tracing" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ansi_term", "chrono", + "console", "is-terminal", - "lazy_static", "libc", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "regex", - "rustc-hash", + "parking_lot 0.12.3", + "rustc-hash 1.1.0", "sc-client-api", "sc-tracing-proc-macro", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing", - "tracing-log 0.1.4", - "tracing-subscriber 0.2.25", + "tracing-log 0.2.0", + "tracing-subscriber 0.3.18", ] [[package]] name = "sc-tracing-proc-macro" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "11.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "sc-transaction-pool" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", + "indexmap 2.9.0", + "itertools 0.11.0", "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "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 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", "substrate-prometheus-endpoint", - "thiserror", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", ] [[package]] name = "sc-transaction-pool-api" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", + "indexmap 2.9.0", "log", "parity-scale-codec", "serde", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sc-utils" -version = "14.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "18.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-channel 1.9.0", - "futures 0.3.30", + "futures 0.3.31", "futures-timer", - "lazy_static", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus", - "sp-arithmetic", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -13285,7 +14726,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" dependencies = [ "parity-scale-codec", + "scale-info", "scale-type-resolver", + "serde", ] [[package]] @@ -13302,29 +14745,84 @@ dependencies = [ ] [[package]] -name = "scale-info" -version = "2.11.4" +name = "scale-decode" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22760a375f81a31817aeaf6f5081e9ccb7ffd7f2da1809a6e3fc82b6656f10d5" +checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" dependencies = [ - "bitvec", - "cfg-if", "derive_more 1.0.0", "parity-scale-codec", - "scale-info-derive", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode-derive", + "scale-type-resolver", + "smallvec", +] + +[[package]] +name = "scale-decode-derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ed9401effa946b493f9f84dc03714cca98119b230497df6f3df6b84a2b03648" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "scale-encode" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" +dependencies = [ + "derive_more 1.0.0", + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits", + "scale-encode-derive", + "scale-type-resolver", + "smallvec", +] + +[[package]] +name = "scale-encode-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "102fbc6236de6c53906c0b262f12c7aa69c2bdc604862c12728f5f4d370bc137" +dependencies = [ + "darling", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "scale-info" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" +dependencies = [ + "bitvec", + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec", + "scale-info-derive", "serde", ] [[package]] name = "scale-info-derive" -version = "2.11.4" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc61ebe25a5c410c0e245028fc9934bf8fa4817199ef5a24a68092edfd34614" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -13332,6 +14830,43 @@ name = "scale-type-resolver" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" +dependencies = [ + "scale-info", + "smallvec", +] + +[[package]] +name = "scale-typegen" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc4c70c7fea2eef1740f0081d3fe385d8bee1eef11e9272d3bec7dc8e5438e0" +dependencies = [ + "proc-macro2", + "quote", + "scale-info", + "syn 2.0.101", + "thiserror 1.0.69", +] + +[[package]] +name = "scale-value" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e0ef2a0ee1e02a69ada37feb87ea1616ce9808aca072befe2d3131bf28576e" +dependencies = [ + "base58", + "blake2 0.10.6", + "derive_more 1.0.0", + "either", + "parity-scale-codec", + "scale-bits", + "scale-decode 0.14.0", + "scale-encode", + "scale-info", + "scale-type-resolver", + "serde", + "yap", +] [[package]] name = "schannel" @@ -13344,11 +14879,11 @@ dependencies = [ [[package]] name = "schnellru" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.12", "cfg-if", "hashbrown 0.13.2", ] @@ -13365,7 +14900,7 @@ dependencies = [ "merlin 2.0.1", "rand_core 0.5.1", "sha2 0.8.2", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -13394,13 +14929,13 @@ dependencies = [ "aead", "arrayref", "arrayvec 0.7.4", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "getrandom_or_panic", "merlin 3.0.0", "rand_core 0.6.4", "serde_bytes", "sha2 0.10.8", - "subtle 2.4.1", + "subtle 2.6.1", "zeroize", ] @@ -13417,13 +14952,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" [[package]] -name = "sct" -version = "0.7.1" +name = "scrypt" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ - "ring 0.17.6", - "untrusted 0.9.0", + "password-hash", + "pbkdf2 0.12.2", + "salsa20", + "sha2 0.10.8", ] [[package]] @@ -13436,7 +14973,8 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", - "subtle 2.4.1", + "serdect", + "subtle 2.6.1", "zeroize", ] @@ -13449,13 +14987,42 @@ dependencies = [ "libc", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys 0.8.1", +] + [[package]] name = "secp256k1" version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ - "secp256k1-sys", + "secp256k1-sys 0.9.2", +] + +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes 0.14.0", + "rand 0.8.5", + "secp256k1-sys 0.10.1", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", ] [[package]] @@ -13467,6 +15034,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + [[package]] name = "secrecy" version = "0.8.0" @@ -13476,14 +15052,23 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secrecy" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" +dependencies = [ + "zeroize", +] + [[package]] name = "security-framework" -version = "2.9.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 1.3.2", - "core-foundation", + "bitflags 2.9.1", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -13491,9 +15076,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -13534,9 +15119,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.212" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccd4055b7e3937a5c2595e974f5bf1715a23919a595a04b5ad959bdbbb61ab04" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] @@ -13552,32 +15137,43 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.212" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726adf8349784fb68a42e6466f49362ae039d9c5333cc6eb131f4d6f94bb9126" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ + "base16ct", "serde", ] @@ -13718,17 +15314,38 @@ dependencies = [ "similar", ] +[[package]] +name = "simple-dns" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" +dependencies = [ + "bitflags 2.9.1", +] + [[package]] name = "simple-mermaid" version = "0.1.0" source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" +[[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 = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "slab" version = "0.4.9" @@ -13746,14 +15363,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "17.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -13767,9 +15383,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "smol" @@ -13779,15 +15395,32 @@ checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" dependencies = [ "async-channel 1.9.0", "async-executor", - "async-fs", + "async-fs 1.6.0", "async-io 1.13.0", "async-lock 2.8.0", - "async-net", - "async-process", + "async-net 1.8.0", + "async-process 1.8.1", "blocking", "futures-lite 1.13.0", ] +[[package]] +name = "smol" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-fs 2.1.2", + "async-io 2.2.1", + "async-lock 3.2.0", + "async-net 2.0.0", + "async-process 2.3.0", + "blocking", + "futures-lite 2.6.0", +] + [[package]] name = "smoldot" version = "0.11.0" @@ -13800,7 +15433,7 @@ dependencies = [ "base64 0.21.5", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58", "chacha20", "crossbeam-queue", "derive_more 0.99.17", @@ -13810,7 +15443,7 @@ dependencies = [ "fnv", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "hmac 0.12.1", "itertools 0.11.0", @@ -13824,21 +15457,75 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project", "poly1305", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", - "ruzstd", + "ruzstd 0.4.0", "schnorrkel 0.10.2", "serde", "serde_json", "sha2 0.10.8", "sha3", - "siphasher", + "siphasher 0.3.11", + "slab", + "smallvec", + "soketto 0.7.1", + "twox-hash", + "wasmi 0.31.2", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "smoldot" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" +dependencies = [ + "arrayvec 0.7.4", + "async-lock 3.2.0", + "atomic-take", + "base64 0.22.1", + "bip39", + "blake2-rfc", + "bs58", + "chacha20", + "crossbeam-queue", + "derive_more 0.99.17", + "ed25519-zebra 4.0.3", + "either", + "event-listener 5.4.0", + "fnv", + "futures-lite 2.6.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "hmac 0.12.1", + "itertools 0.13.0", + "libm", + "libsecp256k1", + "merlin 3.0.0", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2 0.12.2", + "pin-project", + "poly1305", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd 0.6.0", + "schnorrkel 0.11.4", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "siphasher 1.0.1", "slab", "smallvec", - "soketto", + "soketto 0.8.1", "twox-hash", - "wasmi", - "x25519-dalek 2.0.0", + "wasmi 0.32.3", + "x25519-dalek", "zeroize", ] @@ -13859,22 +15546,58 @@ dependencies = [ "futures-channel", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "itertools 0.11.0", "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.1", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher 0.3.11", + "slab", + "smol 1.3.0", + "smoldot 0.11.0", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" +dependencies = [ + "async-channel 2.3.1", + "async-lock 3.2.0", + "base64 0.22.1", + "blake2-rfc", + "bs58", + "derive_more 0.99.17", + "either", + "event-listener 5.4.0", + "fnv", + "futures-channel", + "futures-lite 2.6.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "log", + "lru 0.12.5", + "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "serde", "serde_json", - "siphasher", + "siphasher 1.0.1", "slab", - "smol", - "smoldot", + "smol 2.0.2", + "smoldot 0.18.0", "zeroize", ] @@ -13893,12 +15616,12 @@ dependencies = [ "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "rand_core 0.6.4", - "ring 0.17.6", + "ring 0.17.14", "rustc_version 0.4.0", "sha2 0.10.8", - "subtle 2.4.1", + "subtle 2.6.1", ] [[package]] @@ -13913,12 +15636,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -13929,15 +15652,30 @@ checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", "bytes", - "flate2", - "futures 0.3.30", - "http", + "futures 0.3.31", + "http 0.2.11", "httparse", "log", - "rand", + "rand 0.8.5", "sha-1", ] +[[package]] +name = "soketto" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures 0.3.31", + "http 1.3.1", + "httparse", + "log", + "rand 0.8.5", + "sha1", +] + [[package]] name = "sp-api" version = "26.0.0" @@ -13947,45 +15685,144 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro", - "sp-core", + "sp-api-proc-macro 15.0.0", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-metadata-ir", - "sp-runtime", - "sp-state-machine", + "sp-metadata-ir 0.6.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", - "sp-version", - "thiserror", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "thiserror 1.0.69", ] [[package]] -name = "sp-api-proc-macro" -version = "15.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "sp-api" +version = "36.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "541da427f47dfb97f3dd0556fa3272bdc5dfa0d4c1ad53a22670a9bae4db63d7" dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander 2.0.0", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.82", + "docify", + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 22.0.1", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-metadata-ir 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-version 39.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", ] [[package]] -name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "sp-api" +version = "36.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "docify", + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 22.0.0", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-metadata-ir 0.10.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-api-proc-macro" +version = "15.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-api-proc-macro" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-api-proc-macro" +version = "22.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cedafdeaf15c774433ad8f5b00883bdf7d86e7c8b8e050e3439d4ae422114096" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-application-crypto" +version = "30.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", + "sp-core 28.0.0", + "sp-io 30.0.0", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] +[[package]] +name = "sp-application-crypto" +version = "40.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba375ab65a76f7413d1bfe48122fd347ce7bd2047e36ecbbd78f12f5adaed121" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-io 40.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-application-crypto" +version = "40.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "sp-arithmetic" version = "23.0.0" @@ -14000,6 +15837,35 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-arithmetic" +version = "26.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9971b30935cea3858664965039dabd80f67aca74cc6cc6dd42ff1ab14547bc53" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "static_assertions", +] + +[[package]] +name = "sp-arithmetic" +version = "26.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "static_assertions", +] + [[package]] name = "sp-ark-bls12-381" version = "0.4.2" @@ -14020,144 +15886,173 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-block-builder" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-blockchain" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0afbe184cfe66895497cdfac1ab2927d85294b9c3bcc2c734798994d08b95db6" dependencies = [ - "futures 0.3.30", - "log", + "futures 0.3.31", + "parity-scale-codec", + "parking_lot 0.12.3", + "schnellru", + "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-consensus 0.42.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-database 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "sp-blockchain" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "schnellru", - "sp-api", - "sp-consensus", - "sp-database", - "sp-runtime", - "sp-state-machine", - "thiserror", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", + "tracing", ] [[package]] name = "sp-consensus" -version = "0.32.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5fed2e52d0cbf8ddc39a5bb7211f19a26f15f70a6c8d964ee05fc73b64e6c3" +dependencies = [ + "async-trait", + "futures 0.3.31", + "log", + "sp-inherents 36.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-consensus" +version = "0.42.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "futures 0.3.30", + "futures 0.3.31", "log", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "thiserror", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sp-consensus-aura" -version = "0.32.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.42.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-slots", - "sp-inherents", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.32.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.42.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "24.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "lazy_static", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing", - "sp-io", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-mmr-primitives", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "strum 0.24.1", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "23.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-consensus-slots" -version = "0.32.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.42.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-timestamp", ] @@ -14166,16 +16061,16 @@ name = "sp-core" version = "28.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bandersnatch_vrfs", "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.0", + "bs58", "dyn-clonable", "ed25519-zebra 3.1.0", - "futures 0.3.30", + "futures 0.3.31", "hash-db", "hash256-std-hasher", "impl-serde 0.4.0", @@ -14184,35 +16079,122 @@ dependencies = [ "log", "merlin 3.0.0", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", "primitive-types 0.12.2", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", - "secp256k1", - "secrecy", + "secp256k1 0.28.2", + "secrecy 0.8.0", "serde", - "sp-crypto-hashing", + "sp-crypto-hashing 0.0.0", "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "ss58-registry", - "substrate-bip39", - "thiserror", + "substrate-bip39 0.4.5", + "thiserror 1.0.69", "tracing", "w3f-bls", "zeroize", ] [[package]] -name = "sp-core-hashing" -version = "15.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "sp-core" +version = "36.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdbb58c21e6b27f2aadf3ff0c8b20a8ead13b9dfe63f46717fd59334517f3b4" +dependencies = [ + "ark-vrf", + "array-bytes", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58", + "dyn-clonable", + "ed25519-zebra 4.0.3", + "futures 0.3.31", + "hash-db", + "hash256-std-hasher", + "impl-serde 0.5.0", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin 3.0.0", + "parity-bip39", + "parity-scale-codec", + "parking_lot 0.12.3", + "paste", + "primitive-types 0.13.1", + "rand 0.8.5", + "scale-info", + "schnorrkel 0.11.4", + "secp256k1 0.28.2", + "secrecy 0.8.0", + "serde", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ss58-registry", + "substrate-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "36.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-crypto-hashing", + "ark-vrf", + "array-bytes", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58", + "dyn-clonable", + "ed25519-zebra 4.0.3", + "futures 0.3.31", + "hash-db", + "hash256-std-hasher", + "impl-serde 0.5.0", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin 3.0.0", + "parity-bip39", + "parity-scale-codec", + "parking_lot 0.12.3", + "paste", + "primitive-types 0.13.1", + "rand 0.8.5", + "scale-info", + "schnorrkel 0.11.4", + "secp256k1 0.28.2", + "secrecy 0.8.0", + "serde", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "ss58-registry", + "substrate-bip39 0.6.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", + "tracing", + "w3f-bls", + "zeroize", ] [[package]] @@ -14222,14 +16204,14 @@ source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d7 dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", - "ark-bls12-381", + "ark-bls12-381 0.4.0", "ark-bls12-381-ext", "ark-bw6-761", "ark-bw6-761-ext", - "ark-ec", + "ark-ec 0.4.2", "ark-ed-on-bls12-377", "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch", + "ark-ed-on-bls12-381-bandersnatch 0.4.0", "ark-ed-on-bls12-381-bandersnatch-ext", "ark-scale", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", @@ -14248,23 +16230,102 @@ dependencies = [ "twox-hash", ] +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "quote", - "sp-crypto-hashing", - "syn 2.0.82", + "sp-crypto-hashing 0.0.0", + "syn 2.0.101", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 2.0.101", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "syn 2.0.101", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "722cbecdbf5b94578137dbd07feb51e95f7de221be0c1ff4dcfe0bb4cd986929" +dependencies = [ + "kvdb", + "parking_lot 0.12.3", +] + +[[package]] +name = "sp-database" +version = "10.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -14274,7 +16335,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -14284,7 +16345,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -14308,29 +16369,64 @@ dependencies = [ "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] +[[package]] +name = "sp-externalities" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-externalities" +version = "0.30.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "sp-genesis-builder" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.17.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", - "sp-api", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-inherents" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb09ff07946f3e1ecdd4bfb40b2cceba60188215ceb941b5b07230294d7aee1" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-inherents" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] @@ -14344,28 +16440,81 @@ dependencies = [ "log", "parity-scale-codec", "rustversion", - "secp256k1", - "sp-core", - "sp-crypto-hashing", + "secp256k1 0.28.2", + "sp-core 28.0.0", + "sp-crypto-hashing 0.0.0", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-keystore", + "sp-keystore 0.34.0", "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-state-machine", + "sp-state-machine 0.35.0", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "sp-trie 29.0.0", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "40.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e41d010bcc515d119901ff7ac83150c335d543c7f6c03be5c8fe08430b8a03b" +dependencies = [ + "bytes", + "docify", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive 0.18.0", + "rustversion", + "secp256k1 0.28.2", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-keystore 0.42.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-tracing 17.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "40.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "bytes", + "docify", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive 0.18.0", + "rustversion", + "secp256k1 0.28.2", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "31.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "41.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-core", - "sp-runtime", - "strum 0.24.1", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", ] [[package]] @@ -14374,10 +16523,42 @@ version = "0.34.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", - "sp-core", + "parking_lot 0.12.3", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-keystore" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45f893398a5330e28f219662c7a0afa174fb068d8f82d2a9990016c4b0bc4369" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-keystore" +version = "0.42.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "thiserror 1.0.69", + "zstd 0.12.4", ] [[package]] @@ -14385,7 +16566,7 @@ name = "sp-maybe-compressed-blob" version = "11.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ - "thiserror", + "thiserror 1.0.69", "zstd 0.12.4", ] @@ -14394,64 +16575,82 @@ name = "sp-metadata-ir" version = "0.6.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ - "frame-metadata", + "frame-metadata 16.0.0", "parity-scale-codec", "scale-info", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] +[[package]] +name = "sp-metadata-ir" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d1db25e362edbf5531b427d4bdfc2562bec6a031c3eb2a9145c0a0a01a572d" +dependencies = [ + "frame-metadata 20.0.0", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.10.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "frame-metadata 20.0.0", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "sp-mixnet" -version = "0.4.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.14.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-mmr-primitives" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ckb-merkle-mountain-range", "log", "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", - "sp-api", - "sp-core", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] name = "sp-npos-elections" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "sp-offchain" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api", - "sp-core", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -14464,14 +16663,44 @@ dependencies = [ "regex", ] +[[package]] +name = "sp-panic-handler" +version = "13.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8b52e69a577cbfdea62bfaf16f59eb884422ce98f78b5cd8d9bf668776bced1" +dependencies = [ + "backtrace", + "regex", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.2" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "backtrace", + "regex", +] + [[package]] name = "sp-rpc" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "34.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0acde213e9f08065dcc407a934e9ffd5388bef51347326195405efb62c7a0e4a" +dependencies = [ + "rustc-hash 1.1.0", + "serde", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-rpc" +version = "34.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "rustc-hash", + "rustc-hash 1.1.0", "serde", - "sp-core", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -14486,16 +16715,75 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", - "simple-mermaid", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", + "simple-mermaid 0.1.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-weights 27.0.0", +] + +[[package]] +name = "sp-runtime" +version = "41.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3864101a28faba3d8eca026e3f56ea20dd1d979ce1bcc20152e86c9d82be52bf" +dependencies = [ + "binary-merkle-tree 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid 0.1.1", + "sp-application-crypto 40.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-arithmetic 26.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-io 40.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 31.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing", + "tuplex", +] + +[[package]] +name = "sp-runtime" +version = "41.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid 0.1.1", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "tracing", + "tuplex", ] [[package]] @@ -14535,17 +16823,56 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-runtime-interface" +version = "29.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e99db36a7aff44c335f5d5b36c182a3e0cac61de2fefbe2eeac6af5fb13f63bf" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.18.0", + "primitive-types 0.13.1", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime-interface-proc-macro 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-tracing 17.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-wasm-interface 21.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "29.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.18.0", + "primitive-types 0.13.1", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface-proc-macro 18.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "static_assertions", +] + [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ "Inflector", - "expander 2.0.0", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -14554,40 +16881,65 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" dependencies = [ "Inflector", - "expander 2.0.0", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" +dependencies = [ + "Inflector", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "18.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] name = "sp-session" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "38.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] [[package]] name = "sp-staking" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "38.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] @@ -14598,44 +16950,95 @@ dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "rand 0.8.5", "smallvec", - "sp-core", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-panic-handler", + "sp-panic-handler 13.0.0", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", - "thiserror", + "sp-trie 29.0.0", + "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.28.0", +] + +[[package]] +name = "sp-state-machine" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206508475c01ae2e14f171d35d7fc3eaa7278140d7940416591d49a784792ed6" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-panic-handler 13.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", + "tracing", + "trie-db 0.30.0", +] + +[[package]] +name = "sp-state-machine" +version = "0.45.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", + "tracing", + "trie-db 0.30.0", ] [[package]] name = "sp-statement-store" -version = "10.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.3", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sha2 0.10.8", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-crypto-hashing", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", - "x25519-dalek 2.0.0", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", + "x25519-dalek", ] +[[package]] +name = "sp-std" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" + [[package]] name = "sp-std" version = "14.0.0" @@ -14671,17 +17074,41 @@ dependencies = [ "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] +[[package]] +name = "sp-storage" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee3b70ca340e41cde9d2e069d354508a6e37a6573d66f7cc38f11549002f64ec" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-storage" +version = "22.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "sp-timestamp" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] @@ -14707,51 +17134,118 @@ dependencies = [ "tracing-subscriber 0.3.18", ] +[[package]] +name = "sp-tracing" +version = "17.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6147a5b8c98b9ed4bf99dc033fab97a468b4645515460974c8784daeb7c35433" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sp-tracing" +version = "17.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + [[package]] name = "sp-transaction-pool" -version = "26.0.0" +version = "36.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "36.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "sp-trie" +version = "29.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" dependencies = [ - "sp-api", - "sp-runtime", + "ahash 0.8.12", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "scale-info", + "schnellru", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "thiserror 1.0.69", + "tracing", + "trie-db 0.28.0", + "trie-root", ] [[package]] -name = "sp-transaction-storage-proof" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "sp-trie" +version = "39.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a555bf4c42ca89e2e7bf2f11308806dad13cdbd7f8fd60cf2649f12b6ee809bf" dependencies = [ - "async-trait", + "ahash 0.8.12", + "hash-db", + "memory-db", + "nohash-hasher", "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie", + "schnellru", + "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", + "tracing", + "trie-db 0.30.0", + "trie-root", ] [[package]] name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "39.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.12", "hash-db", - "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "rand 0.8.5", "scale-info", "schnellru", - "sp-core", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.30.0", "trie-root", ] @@ -14765,11 +17259,46 @@ dependencies = [ "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro", - "sp-runtime", + "sp-crypto-hashing-proc-macro 0.0.0", + "sp-runtime 31.0.1", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version-proc-macro", - "thiserror", + "sp-version-proc-macro 13.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-version" +version = "39.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd736a15ff2ea0a67c5a3bbdfd842d88f11f0774d7701a8d8a316f8deba276c5" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-version-proc-macro 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-version" +version = "39.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version-proc-macro 15.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "thiserror 1.0.69", ] [[package]] @@ -14780,7 +17309,32 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "sp-version-proc-macro" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54cabc8279e835cd9c608d70cb00e693bddec94fe8478e9f3104dad1da5f93ca" +dependencies = [ + "parity-scale-codec", + "proc-macro-warning", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "sp-version-proc-macro" +version = "15.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "parity-scale-codec", + "proc-macro-warning", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -14807,6 +17361,30 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "sp-wasm-interface" +version = "21.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b066baa6d57951600b14ffe1243f54c47f9c23dd89c262e17ca00ae8dca58be9" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + +[[package]] +name = "sp-wasm-interface" +version = "21.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "wasmtime", +] + [[package]] name = "sp-weights" version = "27.0.0" @@ -14817,11 +17395,40 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic", + "sp-arithmetic 23.0.0", "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", ] +[[package]] +name = "sp-weights" +version = "31.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "515aa194eabac059041df2dbee75b059b99981213ec680e9de85b45b6988346a" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 26.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-weights" +version = "31.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + [[package]] name = "spin" version = "0.5.2" @@ -14838,14 +17445,12 @@ dependencies = [ ] [[package]] -name = "spinners" -version = "4.1.1" +name = "spinning_top" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", + "lock_api", ] [[package]] @@ -14881,77 +17486,80 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" -version = "0.7.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "0.20.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] [[package]] name = "staging-xcm" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "16.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bounded-collections", - "derivative", + "derive-where", "environmental", + "frame-support", + "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", "serde", - "sp-weights", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "xcm-procedural", ] [[package]] name = "staging-xcm-builder" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "environmental", "frame-support", "frame-system", "impl-trait-for-tuples", - "log", + "pallet-asset-conversion", "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", + "tracing", ] [[package]] name = "staging-xcm-executor" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "environmental", "frame-benchmarking", "frame-support", "impl-trait-for-tuples", - "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", + "tracing", ] [[package]] @@ -14967,7 +17575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ "bitflags 1.3.2", - "cfg_aliases", + "cfg_aliases 0.1.1", "libc", "parking_lot 0.11.2", "parking_lot_core 0.8.6", @@ -14981,7 +17589,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" dependencies = [ - "cfg_aliases", + "cfg_aliases 0.1.1", "memchr", "proc-macro2", "quote", @@ -14989,16 +17597,14 @@ dependencies = [ ] [[package]] -name = "strobe-rs" -version = "0.8.1" +name = "string-interner" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" +checksum = "1c6a0d765f5807e98a091107bae0a56ea3799f66a5de47b2c84c94a39c09974e" dependencies = [ - "bitflags 1.3.2", - "byteorder", - "keccak", - "subtle 2.4.1", - "zeroize", + "cfg-if", + "hashbrown 0.14.5", + "serde", ] [[package]] @@ -15048,9 +17654,12 @@ dependencies = [ [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] [[package]] name = "strum_macros" @@ -15067,15 +17676,15 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -15091,6 +17700,31 @@ dependencies = [ "zeroize", ] +[[package]] +name = "substrate-bip39" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.12.2", + "schnorrkel 0.11.4", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "substrate-bip39" +version = "0.6.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.12.2", + "schnorrkel 0.11.4", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "substrate-bn" version = "0.6.0" @@ -15100,10 +17734,15 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand", + "rand 0.8.5", "rustc-hex", ] +[[package]] +name = "substrate-build-script-utils" +version = "11.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" + [[package]] name = "substrate-build-script-utils" version = "11.0.0" @@ -15111,109 +17750,289 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v [[package]] name = "substrate-frame-rpc-system" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "43.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "docify", "frame-system-rpc-runtime-api", - "futures 0.3.30", - "jsonrpsee", + "futures 0.3.31", + "jsonrpsee 0.24.9", "log", "parity-scale-codec", "sc-rpc-api", "sc-transaction-pool-api", - "sp-api", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.17.2" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "log", + "prometheus", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "substrate-state-trie-migration-rpc" +version = "42.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "jsonrpsee 0.24.9", + "parity-scale-codec", + "sc-client-api", + "sc-rpc-api", + "serde", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "trie-db 0.30.0", +] + +[[package]] +name = "substrate-wasm-builder" +version = "17.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +dependencies = [ + "array-bytes", + "build-helper", + "cargo_metadata", + "console", + "filetime", + "frame-metadata 16.0.0", + "merkleized-metadata", + "parity-scale-codec", + "parity-wasm", + "sc-executor 0.32.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-version 29.0.0", + "strum 0.24.1", + "tempfile", + "toml 0.8.12", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "substrate-wasm-builder" +version = "26.0.1" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "build-helper", + "cargo_metadata", + "console", + "filetime", + "jobserver", + "parity-wasm", + "polkavm-linker", + "shlex", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "strum 0.26.3", + "tempfile", + "toml 0.8.12", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "subxt" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c17d7ec2359d33133b63c97e28c8b7cd3f0a5bc6ce567ae3aef9d9e85be3433" +dependencies = [ + "async-trait", + "derive-where", + "either", + "frame-metadata 17.0.0", + "futures 0.3.31", + "hex", + "impl-serde 0.5.0", + "jsonrpsee 0.24.9", + "parity-scale-codec", + "polkadot-sdk", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode 0.14.0", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "subxt-core", + "subxt-lightclient", + "subxt-macro", + "subxt-metadata", + "thiserror 1.0.69", + "tokio", + "tokio-util", + "tracing", + "url", + "web-time", ] [[package]] -name = "substrate-prometheus-endpoint" -version = "0.17.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "subxt-codegen" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6550ef451c77db6e3bc7c56fb6fe1dca9398a2c8fc774b127f6a396a769b9c5b" dependencies = [ - "hyper", - "log", - "prometheus", - "thiserror", - "tokio", + "heck 0.5.0", + "parity-scale-codec", + "proc-macro2", + "quote", + "scale-info", + "scale-typegen", + "subxt-metadata", + "syn 2.0.101", + "thiserror 1.0.69", ] [[package]] -name = "substrate-rpc-client" -version = "0.33.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "subxt-core" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7a1bc6c9c1724971636a66e3225a7253cdb35bb6efb81524a6c71c04f08c59" dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api", + "base58", + "blake2 0.10.6", + "derive-where", + "frame-decode", + "frame-metadata 17.0.0", + "hashbrown 0.14.5", + "hex", + "impl-serde 0.5.0", + "keccak-hash", + "parity-scale-codec", + "polkadot-sdk", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode 0.14.0", + "scale-encode", + "scale-info", + "scale-value", "serde", - "sp-runtime", + "serde_json", + "subxt-metadata", + "tracing", ] [[package]] -name = "substrate-state-trie-migration-rpc" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "subxt-lightclient" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ebc9131da4d0ba1f7814495b8cc79698798ccd52cacd7bcefe451e415bd945" dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", + "futures 0.3.31", + "futures-util", "serde", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-trie", - "trie-db", + "serde_json", + "smoldot-light 0.16.2", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", ] [[package]] -name = "substrate-wasm-builder" -version = "17.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +name = "subxt-macro" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7819c5e09aae0319981ee853869f2fcd1fac4db8babd0d004c17161297aadc05" dependencies = [ - "array-bytes 6.2.3", - "build-helper", - "cargo_metadata", - "console", - "filetime", - "frame-metadata", - "merkleized-metadata", + "darling", "parity-scale-codec", - "parity-wasm", - "sc-executor", - "sp-core", - "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version", - "strum 0.24.1", - "tempfile", - "toml 0.8.8", - "walkdir", - "wasm-opt", + "proc-macro-error2", + "quote", + "scale-typegen", + "subxt-codegen", + "subxt-utils-fetchmetadata", + "syn 2.0.101", ] [[package]] -name = "subtle" -version = "1.0.0" +name = "subxt-metadata" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" +checksum = "aacd4e7484fef58deaa2dcb32d94753a864b208a668c0dd0c28be1d8abeeadb2" +dependencies = [ + "frame-decode", + "frame-metadata 17.0.0", + "hashbrown 0.14.5", + "parity-scale-codec", + "polkadot-sdk", + "scale-info", +] [[package]] -name = "subtle" -version = "2.4.1" +name = "subxt-signer" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "d680352d04665b1e4eb6f9d2a54b800c4d8e1b20478e69be1b7d975b08d9fc34" +dependencies = [ + "base64 0.22.1", + "bip32", + "bip39", + "cfg-if", + "crypto_secretbox", + "hex", + "hmac 0.12.1", + "keccak-hash", + "parity-scale-codec", + "pbkdf2 0.12.2", + "polkadot-sdk", + "regex", + "schnorrkel 0.11.4", + "scrypt", + "secp256k1 0.30.0", + "secrecy 0.10.3", + "serde", + "serde_json", + "sha2 0.10.8", + "subxt-core", + "zeroize", +] [[package]] -name = "subtle-ng" -version = "2.5.0" +name = "subxt-utils-fetchmetadata" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +checksum = "a3c53bc3eeaacc143a2f29ace4082edd2edaccab37b69ad20befba9fb00fdb3d" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror 1.0.69", +] [[package]] name = "syn" @@ -15228,9 +18047,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.82" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -15257,7 +18076,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -15267,7 +18086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -15337,16 +18156,25 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width", + "unicode-width 0.1.11", ] [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", ] [[package]] @@ -15366,18 +18194,29 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -15405,19 +18244,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" @@ -15441,12 +18267,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -15455,16 +18282,17 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ + "num-conv", "time-core", ] @@ -15477,6 +18305,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -15494,80 +18332,83 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "parking_lot 0.12.3", + "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.9", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] -name = "tokio-retry" -version = "0.3.0" +name = "tokio-rustls" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "pin-project", - "rand", + "rustls", "tokio", ] [[package]] -name = "tokio-rustls" -version = "0.24.1" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "rustls 0.21.9", + "futures-core", + "pin-project-lite", "tokio", + "tokio-util", ] [[package]] -name = "tokio-stream" -version = "0.1.14" +name = "tokio-tungstenite" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ - "futures-core", - "pin-project-lite 0.2.13", + "futures-util", + "log", + "rustls", + "rustls-native-certs", + "rustls-pki-types", "tokio", - "tokio-util", + "tokio-rustls", + "tungstenite", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -15581,14 +18422,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.22.12", ] [[package]] @@ -15606,33 +18447,33 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.9.0", "toml_datetime", - "winnow", + "winnow 0.5.24", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.9.0", "toml_datetime", - "winnow", + "winnow 0.5.24", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.22.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.26", ] [[package]] @@ -15644,7 +18485,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.13", + "pin-project-lite", "tower-layer", "tower-service", "tracing", @@ -15652,18 +18493,16 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.9.1", "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite 0.2.13", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "pin-project-lite", "tower-layer", "tower-service", ] @@ -15687,7 +18526,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -15700,7 +18539,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -15725,8 +18564,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "19.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "coarsetime", "polkadot-primitives", @@ -15737,13 +18576,13 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "expander 2.0.0", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", ] [[package]] @@ -15788,7 +18627,6 @@ dependencies = [ "chrono", "lazy_static", "matchers 0.0.1", - "parking_lot 0.11.2", "regex", "serde", "serde_json", @@ -15810,6 +18648,7 @@ dependencies = [ "matchers 0.1.0", "nu-ansi-term", "once_cell", + "parking_lot 0.12.3", "regex", "sharded-slab", "smallvec", @@ -15834,58 +18673,24 @@ dependencies = [ ] [[package]] -name = "trie-root" -version = "0.18.0" +name = "trie-db" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" +checksum = "6c0670ab45a6b7002c7df369fee950a27cf29ae0474343fd3a15aa15f691e7a6" dependencies = [ "hash-db", -] - -[[package]] -name = "trust-dns-proto" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "rand", + "log", + "rustc-hex", "smallvec", - "socket2 0.4.10", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", ] [[package]] -name = "trust-dns-resolver" -version = "0.22.0" +name = "trie-root" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lazy_static", - "lru-cache", - "parking_lot 0.12.1", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto", + "hash-db", ] [[package]] @@ -15894,42 +18699,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" -[[package]] -name = "try-runtime-cli" -version = "0.38.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "async-trait", - "clap 4.5.9", - "frame-remote-externalities", - "frame-try-runtime", - "hex", - "log", - "parity-scale-codec", - "sc-cli", - "sc-executor", - "serde", - "serde_json", - "sp-api", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-core", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-rpc", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", - "sp-transaction-storage-proof", - "sp-version", - "sp-weights", - "substrate-rpc-client", - "zstd 0.12.4", -] - [[package]] name = "trybuild" version = "1.0.85" @@ -15951,6 +18720,32 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +dependencies = [ + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.9.1", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror 2.0.12", + "url", + "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" @@ -15959,7 +18754,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -16000,10 +18795,10 @@ dependencies = [ ] [[package]] -name = "unicode-bidi" -version = "0.3.13" +name = "unarray" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" @@ -16032,6 +18827,12 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "unicode-xid" version = "0.2.4" @@ -16045,19 +18846,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.4.1", + "subtle 2.6.1", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +dependencies = [ + "asynchronous-codec 0.6.2", + "bytes", + "futures-io", + "futures-util", ] [[package]] name = "unsigned-varint" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" dependencies = [ - "asynchronous-codec", "bytes", - "futures-io", - "futures-util", + "tokio-util", ] [[package]] @@ -16074,15 +18885,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna", "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -16126,23 +18949,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" dependencies = [ "ark-bls12-377", - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-serialize-derive", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-serialize-derive 0.4.2", "arrayref", "constcat", "digest 0.10.7", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 1.0.69", "zeroize", ] +[[package]] +name = "w3f-pcs" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbe7a8d5c914b69392ab3b267f679a2e546fe29afaddce47981772ac71bd02e1" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "merlin 3.0.0", +] + +[[package]] +name = "w3f-plonk-common" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aca389e494fe08c5c108b512e2328309036ee1c0bc7bdfdb743fef54d448c8c" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "getrandom_or_panic", + "rand_core 0.6.4", + "w3f-pcs", +] + +[[package]] +name = "w3f-ring-proof" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a639379402ad51504575dbd258740383291ac8147d3b15859bdf1ea48c677de" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "ark-transcript 0.0.3", + "w3f-pcs", + "w3f-plonk-common", +] + [[package]] name = "waker-fn" version = "1.1.1" @@ -16151,9 +19020,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -16170,38 +19039,42 @@ dependencies = [ [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", "wasm-bindgen-shared", ] @@ -16219,9 +19092,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -16229,22 +19102,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-instrument" @@ -16266,7 +19142,7 @@ dependencies = [ "strum 0.24.1", "strum_macros 0.24.3", "tempfile", - "thiserror", + "thiserror 1.0.69", "wasm-opt-cxx-sys", "wasm-opt-sys", ] @@ -16301,7 +19177,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", @@ -16319,7 +19195,24 @@ dependencies = [ "smallvec", "spin 0.9.8", "wasmi_arena", - "wasmi_core", + "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.4", + "multi-stash", + "num-derive", + "num-traits", + "smallvec", + "spin 0.9.8", + "wasmi_collections", + "wasmi_core 0.32.3", "wasmparser-nostd", ] @@ -16329,6 +19222,17 @@ 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.12", + "hashbrown 0.14.5", + "string-interner", +] + [[package]] name = "wasmi_core" version = "0.13.0" @@ -16341,6 +19245,18 @@ 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" @@ -16353,9 +19269,9 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] @@ -16433,7 +19349,7 @@ dependencies = [ "log", "object 0.30.4", "target-lexicon", - "thiserror", + "thiserror 1.0.69", "wasmparser", "wasmtime-cranelift-shared", "wasmtime-environ", @@ -16468,7 +19384,7 @@ dependencies = [ "object 0.30.4", "serde", "target-lexicon", - "thiserror", + "thiserror 1.0.69", "wasmparser", "wasmtime-types", ] @@ -16535,7 +19451,7 @@ dependencies = [ "memfd", "memoffset 0.8.0", "paste", - "rand", + "rand 0.8.5", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -16551,7 +19467,7 @@ checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", - "thiserror", + "thiserror 1.0.69", "wasmparser", ] @@ -16566,30 +19482,45 @@ dependencies = [ ] [[package]] -name = "webpki" -version = "0.22.4" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ - "ring 0.17.6", - "untrusted 0.9.0", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "webpki-roots" -version = "0.22.6" +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.0", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "01a83f7e1a9f8712695c03eabe9ed3fbca0feff0152f33f12593e5a6303cb1a4" dependencies = [ - "webpki", + "rustls-pki-types", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "westend-runtime" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "22.1.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "binary-merkle-tree", + "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "bitvec", "frame-benchmarking", "frame-election-provider-support", @@ -16610,19 +19541,19 @@ dependencies = [ "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", - "pallet-collective", "pallet-conviction-voting", - "pallet-democracy", + "pallet-delegated-staking", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue", + "pallet-meta-tx", + "pallet-migrations", "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", @@ -16630,6 +19561,7 @@ dependencies = [ "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-recovery", @@ -16640,7 +19572,6 @@ dependencies = [ "pallet-session-benchmarking", "pallet-society", "pallet-staking", - "pallet-staking-reward-curve", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-sudo", @@ -16649,6 +19580,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", + "pallet-verify-signature", "pallet-vesting", "pallet-whitelist", "pallet-xcm", @@ -16658,67 +19590,56 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", - "rustc-hex", "scale-info", "serde", "serde_derive", - "smallvec", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "serde_json", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", - "sp-core", + "sp-consensus-grandpa", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-genesis-builder", - "sp-inherents", - "sp-io", + "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keyring", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", - "sp-runtime", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-transaction-pool", - "sp-version", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder", + "substrate-wasm-builder 26.0.1", "westend-runtime-constants", + "xcm-runtime-apis", ] [[package]] name = "westend-runtime-constants" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "20.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.26", -] - [[package]] name = "wide" version = "0.7.13" @@ -16992,6 +19913,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -17002,6 +19932,21 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + [[package]] name = "wyz" version = "0.5.1" @@ -17013,42 +19958,47 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "1.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 3.2.0", - "rand_core 0.5.1", + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "serde", "zeroize", ] [[package]] -name = "x25519-dalek" -version = "2.0.0" +name = "x509-parser" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "curve25519-dalek 4.1.1", - "rand_core 0.6.4", - "serde", - "zeroize", + "asn1-rs 0.6.2", + "data-encoding", + "der-parser 9.0.0", + "lazy_static", + "nom", + "oid-registry 0.7.1", + "rusticata-macros", + "thiserror 1.0.69", + "time", ] [[package]] name = "x509-parser" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" dependencies = [ - "asn1-rs", - "base64 0.13.1", + "asn1-rs 0.7.1", "data-encoding", - "der-parser", + "der-parser 10.0.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.8.1", "rusticata-macros", - "thiserror", + "thiserror 2.0.12", "time", ] @@ -17065,39 +20015,91 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "xcm-procedural" -version = "7.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" +version = "11.0.2" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "xcm-runtime-apis" +version = "0.7.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "xml-rs" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" + +[[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.10.2" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" +dependencies = [ + "futures 0.3.31", + "log", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "yamux" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" +checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" dependencies = [ - "futures 0.3.30", + "futures 0.3.31", "log", "nohash-hasher", - "parking_lot 0.12.1", - "rand", + "parking_lot 0.12.3", + "pin-project", + "rand 0.9.1", "static_assertions", + "web-time", ] +[[package]] +name = "yap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" + [[package]] name = "yasna" version = "0.5.2" @@ -17107,10 +20109,34 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", + "synstructure 0.13.1", +] + [[package]] name = "zenlink-protocol" -version = "0.4.4" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-v1.7.2#c1d91fb0f0f69c674a8426cc4ecd881f1638b5bc" +version = "0.4.5" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -17123,68 +20149,90 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "zenlink-protocol-rpc" -version = "0.4.4" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-v1.7.2#c1d91fb0f0f69c674a8426cc4ecd881f1638b5bc" +version = "0.4.5" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.23.2", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-blockchain", - "sp-rpc", - "sp-runtime", + "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-blockchain 39.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-rpc 34.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tower", "zenlink-protocol", "zenlink-protocol-runtime-api", ] [[package]] name = "zenlink-protocol-runtime-api" -version = "0.4.4" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-v1.7.2#c1d91fb0f0f69c674a8426cc4ecd881f1638b5bc" +version = "0.4.5" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "zenlink-protocol", ] [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", + "synstructure 0.13.1", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -17197,7 +20245,40 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.101", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e764ff4c3..5e2d0e4b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,16 +37,16 @@ panic = "unwind" # Peaq runtime requires unwinding. # Crates affix = "0.1.2" async-trait = "0.1.59" -parity-scale-codec = { version = "3.6.12", default-features = false } +parity-scale-codec = { version = "3.7.5", default-features = false } clap = { version = "4.0.32"} derive_more = "0.99" -environmental = { version = "1.1.2", default-features = false } +environmental = { version = "1.1.4", default-features = false } futures = { version = "0.3.21" } -evm = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-v1.7.2", default-features = false } -evm-gasometer = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-v1.7.2", default-features = false } -evm-runtime = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-v1.7.2", default-features = false } -ethereum = { version = "0.15.0", default-features = false, features = [ "with-codec" ] } -ethereum-types = { version = "0.14", default-features = false } +evm = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } +evm-gasometer = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } +evm-runtime = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } +ethereum = { git = "https://github.com/rust-ethereum/ethereum", rev = "bbb544622208ef6e9890a2dbc224248f6dd13318", default-features = false } +ethereum-types = { version = "0.15.1", default-features = false } flume = "0.10" hex = { version = "0.4.3", default-features = false } hex-literal = { version = "0.3.4", default-features = false } @@ -60,9 +60,9 @@ paste = { version = "1.0.8", default-features = false } prettyplease = "0.1.18" proc-macro2 = "1.0" quote = "1.0" -rlp = { version = "0.5", default-features = false } +rlp = { version = "0.6", default-features = false } rustc-hex = { version = "2.0.1", default-features = false } -scale-info = { version = "2.1", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.6", default-features = false, features = ["derive"] } sha3 = { version = "0.10", default-features = false } serde_json = { version = "1.0" } serde = { version = "1.0.151", default-features = false } @@ -78,161 +78,161 @@ url = "2.2.2" once_cell = { version = "1.19.0", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-network = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-consensus-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-consensus-proposer = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-client-collator = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-relay-chain-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-pallet-parachain-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-pallet-aura-ext = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-primitives-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-primitives-parachain-inherent = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -cumulus-primitives-utility = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -cumulus-test-relay-sproof-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -parachain-info = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", package = "staging-parachain-info", default-features = false } -parachains-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } +cumulus-client-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-network = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-consensus-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-consensus-relay-chain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-consensus-proposer = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-client-collator = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-relay-chain-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-pallet-parachain-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-primitives-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-primitives-parachain-inherent = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +cumulus-primitives-utility = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-test-relay-sproof-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +parachain-info = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", package = "staging-parachain-info", default-features = false } +parachains-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } # Frontier -fc-consensus = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-db = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-mapping-sync = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-rpc = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-rpc-core = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-api = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fp-consensus = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fp-storage = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fp-dynamic-fee = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fc-storage = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2" } -fp-evm = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -fp-rpc = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -fp-self-contained = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false, features = ["serde"] } -pallet-base-fee = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-ethereum = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-blake2 = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-bn128 = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-dispatch = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-v1.7.2", default-features = false } +fc-consensus = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-db = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-mapping-sync = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-rpc = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-rpc-core = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-api = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fp-consensus = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fp-storage = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fp-dynamic-fee = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fc-storage = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4" } +fp-evm = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +fp-rpc = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +fp-self-contained = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false, features = ["serde"] } +pallet-base-fee = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-ethereum = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-blake2 = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-dispatch = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } # Open-Runtime-Module-Library -orml-currencies = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-v1.7.2", default-features = false } -orml-traits = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-v1.7.2", default-features = false } -orml-xtokens = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-v1.7.2", default-features = false } -orml-xcm-support = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-v1.7.2", default-features = false } +orml-currencies = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-stable2503-4", default-features = false } +orml-traits = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-stable2503-4", default-features = false } +orml-xtokens = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-stable2503-4", default-features = false } +orml-xcm-support = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-stable2503-4", default-features = false } # Polkadot -polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -polkadot-primitives = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -polkadot-runtime-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-xcm = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-message-queue = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +polkadot-primitives = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +polkadot-runtime-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-xcm = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-message-queue = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } -polkadot-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -polkadot-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } +polkadot-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +polkadot-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } # Substrate -frame-support = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -# sp-genesis-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-externalities = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-runtime-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-runtime = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-std = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-benchmarking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-executive = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-metadata-hash-extension = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-system-benchmarking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-balances = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-sudo = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-transaction-payment = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-block-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-inherents = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-offchain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-session = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-transaction-pool = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-version = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-contracts = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-multisig = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-assets = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-utility = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-treasury = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-vesting = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-io = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-session = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-authorship = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-collective = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-weights = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = true } -pallet-transaction-payment-rpc = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-basic-authorship = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-client-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-consensus = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-consensus-manual-seal = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-executor = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-keystore = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-rpc = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-rpc-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-telemetry = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-transaction-pool = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-transaction-pool-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sp-blockchain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sp-consensus = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sp-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -substrate-frame-rpc-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-network = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-network-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-network-sync = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-tracing = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -substrate-prometheus-endpoint = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sp-keystore = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-chain-spec = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2" } -sc-utils = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -sp-staking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -frame-try-runtime = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -try-runtime-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2"} -pallet-scheduler = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } -pallet-preimage = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false } +frame-support = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +# sp-genesis-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-externalities = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-runtime-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-runtime = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-std = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-benchmarking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-executive = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-system-benchmarking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-balances = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-sudo = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-transaction-payment = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-block-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-inherents = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-offchain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-session = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-transaction-pool = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-version = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-contracts = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-multisig = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-assets = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-utility = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-treasury = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-vesting = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-io = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-session = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-authorship = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-collective = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-weights = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = true } +pallet-transaction-payment-rpc = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-basic-authorship = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-client-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-consensus = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-consensus-aura = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-consensus-manual-seal = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-executor = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-keystore = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-rpc = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-rpc-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-service = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-telemetry = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-transaction-pool = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-transaction-pool-api = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sp-blockchain = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sp-consensus = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sp-timestamp = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +substrate-frame-rpc-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-network = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-network-common = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-network-sync = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-tracing = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +substrate-prometheus-endpoint = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sp-keystore = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-chain-spec = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } +sc-utils = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-staking = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +frame-try-runtime = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +try-runtime-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4"} +pallet-scheduler = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +pallet-preimage = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } -zenlink-protocol = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-v1.7.2", default-features = false } -zenlink-protocol-rpc = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-v1.7.2", default-features = false } -zenlink-protocol-runtime-api = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-v1.7.2", default-features = false } +zenlink-protocol = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-stable2503-4", default-features = false } +zenlink-protocol-rpc = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-stable2503-4", default-features = false } +zenlink-protocol-runtime-api = { git = "https://github.com/peaqnetwork/Zenlink-DEX-Module", branch = "peaq-polkadot-stable2503-4", default-features = false } # Peaq's own developments -peaq-pallet-did = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "dev", default-features = false } -peaq-pallet-did-rpc = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "dev", default-features = false } -peaq-pallet-did-runtime-api = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "dev", default-features = false } -peaq-pallet-mor = { git = "https://github.com/peaqnetwork/peaq-pallet-mor.git", branch = "dev", default-features = false } -peaq-pallet-rbac = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "dev", default-features = false } -peaq-pallet-rbac-rpc = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "dev" } -peaq-pallet-rbac-runtime-api = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "dev", default-features = false } -peaq-pallet-storage = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "dev", default-features = false } -peaq-pallet-storage-rpc = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "dev", default-features = false } -peaq-pallet-storage-runtime-api = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "dev", default-features = false } -peaq-pallet-transaction = { git = "https://github.com/peaqnetwork/peaq-pallet-transaction.git", branch = "dev", default-features = false } +peaq-pallet-did = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-did-rpc = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-did-runtime-api = { git = "https://github.com/peaqnetwork/peaq-pallet-did.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-mor = { git = "https://github.com/peaqnetwork/peaq-pallet-mor.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-rbac = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-rbac-rpc = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "peaq-polkadot-stable2503-4" } +peaq-pallet-rbac-runtime-api = { git = "https://github.com/peaqnetwork/peaq-pallet-rbac.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-storage = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-storage-rpc = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-storage-runtime-api = { git = "https://github.com/peaqnetwork/peaq-storage-pallet.git", branch = "peaq-polkadot-stable2503-4", default-features = false } +peaq-pallet-transaction = { git = "https://github.com/peaqnetwork/peaq-pallet-transaction.git", branch = "peaq-polkadot-stable2503-4", default-features = false } diff --git a/client/rpc-core/txpool/Cargo.toml b/client/rpc-core/txpool/Cargo.toml index fd1418555..052f9102d 100644 --- a/client/rpc-core/txpool/Cargo.toml +++ b/client/rpc-core/txpool/Cargo.toml @@ -12,7 +12,7 @@ ethereum-types = { workspace = true, default-features = true } serde = { workspace = true, default-features = true, features = ["derive"] } serde_json = { workspace = true, default-features = true } -ethereum = { workspace = true, default-features = true, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = true, features = [ "with-scale" ] } jsonrpsee = { workspace = true, default-features = true, features = [ "macros", "server" ] } fc-rpc-core = { workspace = true, default-features = true } diff --git a/client/rpc/debug/Cargo.toml b/client/rpc/debug/Cargo.toml index c905bdfc8..500a57057 100644 --- a/client/rpc/debug/Cargo.toml +++ b/client/rpc/debug/Cargo.toml @@ -29,7 +29,7 @@ sp-io = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } # Frontier -ethereum = { workspace = true, default-features = false, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = false, features = [ "with-scale" ] } ethereum-types = { workspace = true, default-features = true } fc-consensus = { workspace = true, default-features = true } fc-db = { workspace = true, default-features = true } diff --git a/client/rpc/trace/Cargo.toml b/client/rpc/trace/Cargo.toml index 6242099f3..65f010a7d 100644 --- a/client/rpc/trace/Cargo.toml +++ b/client/rpc/trace/Cargo.toml @@ -9,7 +9,7 @@ version = "0.6.0" [dependencies] log = { workspace = true } -ethereum = { workspace = true, default-features = true, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = true, features = [ "with-scale" ] } ethereum-types = { workspace = true, default-features = true } futures = { workspace = true, default-features = true } jsonrpsee = { workspace = true, default-features = true, features = [ "macros", "server" ] } diff --git a/node/Cargo.toml b/node/Cargo.toml index 5f22f9bf1..ed709e9b9 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -117,7 +117,6 @@ peaq-pallet-storage-rpc = { workspace = true, default-features = true } zenlink-protocol = { workspace = true, default-features = true } zenlink-protocol-rpc = { workspace = true, default-features = true } zenlink-protocol-runtime-api = { workspace = true, default-features = true } -try-runtime-cli = { workspace = true, optional = true } sp-io = {workspace = true, default-features = true} peaq-dev-runtime = { path = "../runtime/peaq-dev" } @@ -138,14 +137,6 @@ inflation-manager ={ path = "../pallets/inflation-manager" } default = [ "aura", "polkadot-cli", - "experimental", - "parameterized-consensus-hook" - ] -experimental = [ - "peaq-dev-runtime/experimental", -] -parameterized-consensus-hook = [ - "peaq-dev-runtime/parameterized-consensus-hook", ] aura = [ "peaq-dev-runtime/aura", @@ -162,5 +153,4 @@ try-runtime = [ "peaq-dev-runtime/try-runtime", "peaq-krest-runtime/try-runtime", "peaq-runtime/try-runtime", - "try-runtime-cli/try-runtime" ] diff --git a/pallets/parachain-staking/Cargo.toml b/pallets/parachain-staking/Cargo.toml index 2c1dd8395..fa3f5e048 100644 --- a/pallets/parachain-staking/Cargo.toml +++ b/pallets/parachain-staking/Cargo.toml @@ -32,11 +32,7 @@ sp-std = { workspace = true, default-features = false } frame-benchmarking = { workspace = true, default-features = false, optional = true } [features] -default = ["std", "experimental"] - -experimental = [ - "pallet-aura/experimental", -] +default = ["std"] runtime-benchmarks = [ "frame-benchmarking", diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index b1816d153..f9ad86a19 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -128,7 +128,6 @@ impl pallet_aura::Config for Test { type MaxAuthorities = MaxCollatorCandidates; type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } diff --git a/precompiles/parachain-staking/Cargo.toml b/precompiles/parachain-staking/Cargo.toml index 1356b5314..e607cb35c 100644 --- a/precompiles/parachain-staking/Cargo.toml +++ b/precompiles/parachain-staking/Cargo.toml @@ -39,10 +39,7 @@ scale-info = { workspace = true } pallet-authorship = { workspace = true, default-features = false } [features] -default = ["std", "experimental"] -experimental = [ - "pallet-aura/experimental", -] +default = ["std"] std = [ "parity-scale-codec/std", "fp-evm/std", diff --git a/precompiles/parachain-staking/src/mock.rs b/precompiles/parachain-staking/src/mock.rs index 836477843..738f8738a 100644 --- a/precompiles/parachain-staking/src/mock.rs +++ b/precompiles/parachain-staking/src/mock.rs @@ -132,7 +132,6 @@ impl pallet_aura::Config for Test { type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } diff --git a/primitives/rpc/debug/Cargo.toml b/primitives/rpc/debug/Cargo.toml index c6debd821..dfdd5a432 100644 --- a/primitives/rpc/debug/Cargo.toml +++ b/primitives/rpc/debug/Cargo.toml @@ -9,7 +9,7 @@ version = "0.1.0" [dependencies] environmental = { workspace = true, default-features = false } -ethereum = { workspace = true, default-features = false, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = false, features = [ "with-scale" ] } ethereum-types = { workspace = true, default-features = false } hex = { workspace = true, optional = true, features = [ "serde" ] } serde = { workspace = true, optional = true, features = [ "derive" ] } diff --git a/primitives/rpc/evm-tracing-events/Cargo.toml b/primitives/rpc/evm-tracing-events/Cargo.toml index 3cfac53cc..2f64c9516 100644 --- a/primitives/rpc/evm-tracing-events/Cargo.toml +++ b/primitives/rpc/evm-tracing-events/Cargo.toml @@ -13,7 +13,7 @@ parity-scale-codec = { workspace = true } sp-runtime-interface = { workspace = true, default-features = false } # Ethereum -ethereum = { workspace = true, default-features = false, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = false, features = [ "with-scale" ] } ethereum-types = { workspace = true, default-features = false } evm = { workspace = true, default-features = false, features = [ "with-codec" ] } evm-gasometer = { workspace = true, default-features = false } diff --git a/primitives/rpc/txpool/Cargo.toml b/primitives/rpc/txpool/Cargo.toml index 310b52248..f0cea492f 100644 --- a/primitives/rpc/txpool/Cargo.toml +++ b/primitives/rpc/txpool/Cargo.toml @@ -8,7 +8,7 @@ repository = 'https://github.com/peaqnetwork/peaq-network-node/' version = "0.6.0" [dependencies] -ethereum = { workspace = true, default-features = false, features = [ "with-codec" ] } +ethereum = { workspace = true, default-features = false, features = [ "with-scale" ] } # Substrate parity-scale-codec = { workspace = true, default-features = false } diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index 4cd3de178..d1eb95cd8 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -78,7 +78,7 @@ cumulus-primitives-core = { workspace = true, default-features = false } cumulus-primitives-utility = { workspace = true, default-features = false } cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } -cumulus-pallet-parachain-system = { workspace = true, default-features = false, features = ["parameterized-consensus-hook"] } +cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } @@ -140,15 +140,7 @@ ethereum = {workspace = true, default-features = false} pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } [features] -default = ["std", "aura", "parameterized-consensus-hook", "experimental"] - -parameterized-consensus-hook = [ - "cumulus-pallet-parachain-system/parameterized-consensus-hook", -] - -experimental = [ - "pallet-aura/experimental", -] +default = ["std", "aura"] aura = [] runtime-benchmarks = [ diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index cf2dbc738..ba481f95c 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -357,7 +357,6 @@ impl pallet_aura::Config for Runtime { // otherwise set to `false` type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } @@ -421,10 +420,7 @@ parameter_types! { impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = Moment; - #[cfg(feature = "experimental")] type MinimumPeriod = ConstU64<0>; - #[cfg(not(feature = "experimental"))] - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; type WeightInfo = (); type OnTimestampSet = (Aura, BlockReward); } @@ -761,13 +757,11 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; - #[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); } -#[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -2098,7 +2092,6 @@ impl_runtime_apis! { } } - #[cfg(feature = "parameterized-consensus-hook")] impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { fn can_build_upon( included_hash: ::Hash, diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 9cc7e98e0..262a757a6 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -78,7 +78,7 @@ cumulus-primitives-core = { workspace = true, default-features = false } cumulus-primitives-utility = { workspace = true, default-features = false } cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } -cumulus-pallet-parachain-system = { workspace = true, default-features = false, features = ["parameterized-consensus-hook"] } +cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } @@ -140,15 +140,7 @@ ethereum = {workspace = true, default-features = false} pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } [features] -default = ["std", "aura", "parameterized-consensus-hook", "experimental"] - -parameterized-consensus-hook = [ - "cumulus-pallet-parachain-system/parameterized-consensus-hook", -] - -experimental = [ - "pallet-aura/experimental", -] +default = ["std", "aura"] aura = [] runtime-benchmarks = [ diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 15d5bb926..5d2063f95 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -362,7 +362,6 @@ impl pallet_aura::Config for Runtime { // otherwise set to `false` type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } @@ -426,10 +425,7 @@ parameter_types! { impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = Moment; - #[cfg(feature = "experimental")] type MinimumPeriod = ConstU64<0>; - #[cfg(not(feature = "experimental"))] - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; type WeightInfo = (); type OnTimestampSet = (Aura, BlockReward); } @@ -766,13 +762,11 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; - #[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); } -#[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -2113,7 +2107,6 @@ impl_runtime_apis! { } } - #[cfg(feature = "parameterized-consensus-hook")] impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { fn can_build_upon( included_hash: ::Hash, diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index fc31a4fdd..93bf8ba59 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -77,7 +77,7 @@ cumulus-primitives-core = { workspace = true, default-features = false } cumulus-primitives-utility = { workspace = true, default-features = false } cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } -cumulus-pallet-parachain-system = { workspace = true, default-features = false, features = ["parameterized-consensus-hook"] } +cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } @@ -139,16 +139,7 @@ ethereum = {workspace = true, default-features = false} pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } [features] -default = ["std", "aura", "parameterized-consensus-hook", "experimental"] - -parameterized-consensus-hook = [ - "cumulus-pallet-parachain-system/parameterized-consensus-hook", -] - -experimental = [ - "pallet-aura/experimental", -] - +default = ["std", "aura"] aura = [] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 2781709e9..e7b562876 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -384,7 +384,6 @@ impl pallet_aura::Config for Runtime { // otherwise set to `false` type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } @@ -448,10 +447,7 @@ parameter_types! { impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = Moment; - #[cfg(feature = "experimental")] type MinimumPeriod = ConstU64<0>; - #[cfg(not(feature = "experimental"))] - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; type WeightInfo = (); type OnTimestampSet = (Aura, BlockReward); } @@ -785,13 +781,11 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; - #[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); } -#[cfg(feature = "parameterized-consensus-hook")] type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -2131,7 +2125,6 @@ impl_runtime_apis! { } } - #[cfg(feature = "parameterized-consensus-hook")] impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { fn can_build_upon( included_hash: ::Hash, diff --git a/rust-toolchain b/rust-toolchain index 4117e1edb..8cf884611 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2024-01-21" +channel = "1.82.0" components = [ "rustfmt", "clippy", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" From cf8eef59bc0a2e02d81791d23841f92969529d0e Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 23 May 2025 19:17:14 +0500 Subject: [PATCH 02/98] (WIP) fixed deps still pointing to old branch --- Cargo.lock | 3403 ++++++++++++----------------------- node/Cargo.toml | 2 +- runtime/krest/Cargo.toml | 2 +- runtime/peaq-dev/Cargo.toml | 2 +- runtime/peaq/Cargo.toml | 2 +- 5 files changed, 1155 insertions(+), 2256 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ff721ec1b..3996e9c47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.28.1", + "gimli 0.31.1", ] [[package]] @@ -53,10 +53,10 @@ dependencies = [ ] [[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" @@ -70,9 +70,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -93,17 +93,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "ahash" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" -dependencies = [ - "getrandom 0.2.11", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.12" @@ -119,18 +108,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "always-assert" @@ -164,9 +153,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -179,43 +168,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell_polyfill", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.90" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "approx" @@ -251,18 +241,6 @@ dependencies = [ "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 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-bls12-381" version = "0.4.0" @@ -287,45 +265,6 @@ dependencies = [ "ark-std 0.5.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 0.4.0", - "ark-ec 0.4.2", - "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 0.4.2", - "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 0.4.2", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-ec" version = "0.4.2" @@ -340,7 +279,6 @@ dependencies = [ "hashbrown 0.13.2", "itertools 0.10.5", "num-traits", - "rayon", "zeroize", ] @@ -350,7 +288,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ - "ahash 0.8.12", + "ahash", "ark-ff 0.5.0", "ark-poly 0.5.0", "ark-serialize 0.5.0", @@ -365,43 +303,6 @@ dependencies = [ "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 0.4.2", - "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 0.4.2", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" -dependencies = [ - "ark-bls12-381 0.4.0", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - [[package]] name = "ark-ed-on-bls12-381-bandersnatch" version = "0.5.0" @@ -414,19 +315,6 @@ dependencies = [ "ark-std 0.5.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 0.4.2", - "ark-ed-on-bls12-381-bandersnatch 0.4.0", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-ff" version = "0.4.2" @@ -443,7 +331,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -457,7 +345,7 @@ dependencies = [ "ark-ff-macros 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "digest 0.10.7", "educe", "itertools 0.13.0", @@ -513,19 +401,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "ark-models-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", -] - [[package]] name = "ark-poly" version = "0.4.2" @@ -545,7 +420,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" dependencies = [ - "ahash 0.8.12", + "ahash", "ark-ff 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", @@ -554,35 +429,6 @@ dependencies = [ "hashbrown 0.15.3", ] -[[package]] -name = "ark-scale" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "ark-secret-scalar" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", - "digest 0.10.7", - "getrandom_or_panic", - "zeroize", -] - [[package]] name = "ark-serialize" version = "0.4.2" @@ -603,7 +449,7 @@ checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ "ark-serialize-derive 0.5.0", "ark-std 0.5.0", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "digest 0.10.7", "num-bigint", ] @@ -638,7 +484,6 @@ checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", "rand 0.8.5", - "rayon", ] [[package]] @@ -651,33 +496,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" -dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", -] - -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", -] - [[package]] name = "ark-transcript" version = "0.0.3" @@ -700,13 +518,13 @@ checksum = "9501da18569b2afe0eb934fb7afd5a247d238b94116155af4dd068f319adfe6d" dependencies = [ "ark-bls12-381 0.5.0", "ark-ec 0.5.0", - "ark-ed-on-bls12-381-bandersnatch 0.5.0", + "ark-ed-on-bls12-381-bandersnatch", "ark-ff 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", "digest 0.10.7", "rand_chacha 0.3.1", - "sha2 0.10.8", + "sha2 0.10.9", "w3f-ring-proof", "zeroize", ] @@ -719,9 +537,9 @@ checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -734,15 +552,9 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" @@ -785,7 +597,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure 0.13.1", + "synstructure 0.13.2", ] [[package]] @@ -797,7 +609,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure 0.13.1", + "synstructure 0.13.2", ] [[package]] @@ -835,22 +647,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener-strategy 0.5.4", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ - "async-lock 3.2.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", + "fastrand 2.3.0", "futures-lite 2.6.0", + "pin-project-lite", "slab", ] @@ -872,7 +684,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 3.2.0", + "async-lock 3.4.0", "blocking", "futures-lite 2.6.0", ] @@ -891,7 +703,7 @@ dependencies = [ "log", "parking", "polling 2.8.0", - "rustix 0.37.27", + "rustix 0.37.28", "slab", "socket2 0.4.10", "waker-fn", @@ -899,21 +711,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock 3.2.0", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", "futures-lite 2.6.0", "parking", - "polling 3.3.1", - "rustix 0.38.26", + "polling 3.7.4", + "rustix 0.38.44", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -927,12 +739,12 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.0", - "event-listener-strategy 0.4.0", + "event-listener 5.4.0", + "event-listener-strategy", "pin-project-lite", ] @@ -953,7 +765,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io 2.2.1", + "async-io 2.4.0", "blocking", "futures-lite 2.6.0", ] @@ -971,7 +783,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.26", + "rustix 0.38.44", "windows-sys 0.48.0", ] @@ -982,41 +794,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ "async-channel 2.3.1", - "async-io 2.2.1", - "async-lock 3.2.0", + "async-io 2.4.0", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", "event-listener 5.4.0", "futures-lite 2.6.0", - "rustix 0.38.26", + "rustix 0.38.44", "tracing", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.2.1", - "async-lock 2.8.0", + "async-io 2.4.0", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.26", + "rustix 0.38.44", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "async-task" -version = "4.7.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" @@ -1073,7 +885,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.11", + "http 0.2.12", "log", "url", ] @@ -1091,58 +903,34 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ - "addr2line 0.21.0", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.32.1", + "object 0.36.7", "rustc-demangle", -] - -[[package]] -name = "bandersnatch_vrfs" -version = "0.0.4" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-bls12-381 0.4.0", - "ark-ec 0.4.2", - "ark-ed-on-bls12-381-bandersnatch 0.4.0", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "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", - "sp-ark-bls12-381", - "sp-ark-ed-on-bls12-381-bandersnatch", - "zeroize", + "windows-targets 0.52.6", ] [[package]] @@ -1171,9 +959,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" @@ -1183,18 +971,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "basic-toml" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778" -dependencies = [ - "serde", -] +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "beef" @@ -1247,7 +1026,7 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.15", + "prettyplease", "proc-macro2", "quote", "regex", @@ -1268,7 +1047,7 @@ dependencies = [ "rand_core 0.6.4", "ripemd", "secp256k1 0.27.0", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -1280,8 +1059,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -1376,49 +1153,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] name = "blake2s_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", ] [[package]] name = "blake3" -version = "1.5.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", + "constant_time_eq 0.3.1", ] [[package]] @@ -1439,29 +1204,17 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel 2.3.1", - "async-lock 3.2.0", "async-task", - "fastrand 2.0.1", "futures-io", "futures-lite 2.6.0", "piper", - "tracing", ] [[package]] @@ -1503,19 +1256,19 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2 0.10.8", + "sha2 0.10.9", "tinyvec", ] [[package]] name = "bstr" -version = "0.2.17" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ - "lazy_static", "memchr", - "regex-automata 0.1.10", + "regex-automata 0.4.9", + "serde", ] [[package]] @@ -1529,9 +1282,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" @@ -1547,9 +1300,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" [[package]] name = "byteorder" @@ -1565,12 +1318,11 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bzip2-sys" -version = "0.1.11+1.0.8" +version = "0.1.13+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" dependencies = [ "cc", - "libc", "pkg-config", ] @@ -1586,18 +1338,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1610,7 +1362,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.20", + "semver 1.0.26", "serde", "serde_json", "thiserror 1.0.69", @@ -1650,9 +1402,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -1711,16 +1463,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -1744,7 +1496,7 @@ checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" dependencies = [ "core2", "multibase", - "multihash 0.19.1", + "multihash 0.19.3", "unsigned-varint 0.8.0", ] @@ -1770,9 +1522,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -1790,15 +1542,15 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap", - "unicode-width 0.1.11", + "unicode-width 0.1.14", "vec_map", ] [[package]] name = "clap" -version = "4.5.13" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" dependencies = [ "clap_builder", "clap_derive", @@ -1806,9 +1558,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" dependencies = [ "anstream", "anstyle", @@ -1819,9 +1571,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1831,37 +1583,37 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "coarsetime" -version = "0.1.33" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71367d3385c716342014ad17e3d19f7788ae514885a1f4c24f500260fb365e1a" +checksum = "91849686042de1b41cd81490edc83afbcb0abe5a9b6f2c4114f23ce8cca1bcf4" dependencies = [ "libc", - "once_cell", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasix", "wasm-bindgen", ] [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", - "unicode-width 0.1.11", + "unicode-width 0.2.0", ] [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -1883,21 +1635,6 @@ dependencies = [ "unicode-width 0.2.0", ] -[[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "fflonk", - "getrandom_or_panic", - "rand_core 0.6.4", -] - [[package]] name = "common-path" version = "1.0.0" @@ -1915,15 +1652,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "unicode-width 0.1.11", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] @@ -1941,15 +1678,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1960,7 +1697,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.16", "once_cell", "tiny-keccak", ] @@ -1993,15 +1730,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "constcat" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -2065,9 +1796,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -2172,35 +1903,30 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] @@ -2220,9 +1946,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -2267,16 +1993,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.6.1", -] - [[package]] name = "crypto_secretbox" version = "0.1.1" @@ -2306,7 +2022,7 @@ name = "cumulus-client-cli" version = "0.22.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.13", + "clap 4.5.38", "parity-scale-codec", "sc-chain-spec", "sc-cli", @@ -2522,7 +2238,7 @@ dependencies = [ "sc-consensus", "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-maybe-compressed-blob", "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "tracing", @@ -2614,7 +2330,7 @@ dependencies = [ "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "staging-xcm", "staging-xcm-builder", - "trie-db 0.30.0", + "trie-db", ] [[package]] @@ -2622,7 +2338,7 @@ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -2891,32 +2607,6 @@ dependencies = [ "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.6.1", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -2928,7 +2618,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "subtle 2.6.1", "zeroize", ] @@ -2959,45 +2649,60 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.110" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8" +checksum = "a71ea7f29c73f7ffa64c50b83c9fe4d3a6d4be89a86b009eb80d5a6d3429d741" dependencies = [ "cc", + "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", + "foldhash", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.110" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5" +checksum = "36a8232661d66dcf713394726157d3cfe0a89bfc85f52d6e9f9bbc2306797fe7" dependencies = [ "cc", "codespan-reporting", - "once_cell", "proc-macro2", "quote", "scratch", "syn 2.0.101", ] +[[package]] +name = "cxxbridge-cmd" +version = "1.0.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f44296c8693e9ea226a48f6a122727f77aa9e9e338380cb021accaeeb7ee279" +dependencies = [ + "clap 4.5.38", + "codespan-reporting", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "cxxbridge-flags" -version = "1.0.110" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44" +checksum = "c42f69c181c176981ae44ba9876e2ea41ce8e574c296b38d06925ce9214fb8e4" [[package]] name = "cxxbridge-macro" -version = "1.0.110" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f" +checksum = "8faff5d4467e0709448187df29ccbf3b0982cc426ee444a193f87b11afb565a8" dependencies = [ "proc-macro2", "quote", + "rustversion", "syn 2.0.101", ] @@ -3046,7 +2751,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -3057,9 +2762,9 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -3067,19 +2772,19 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "der" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", "zeroize", @@ -3157,15 +2862,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 1.0.109", + "rustc_version 0.4.1", + "syn 2.0.101", ] [[package]] @@ -3278,31 +2983,15 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", "syn 2.0.101", ] -[[package]] -name = "dleq_vrf" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-scale", - "ark-secret-scalar", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", - "arrayvec 0.7.4", - "zeroize", -] - [[package]] name = "docify" version = "0.2.9" @@ -3326,7 +3015,7 @@ dependencies = [ "regex", "syn 2.0.101", "termcolor", - "toml 0.8.12", + "toml 0.8.22", "walkdir", ] @@ -3338,21 +3027,21 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dyn-clonable" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +checksum = "a36efbb9bfd58e1723780aa04b61aba95ace6a05d9ffabfdb0b43672552f0805" dependencies = [ "dyn-clonable-impl", "dyn-clone", @@ -3360,20 +3049,20 @@ dependencies = [ [[package]] name = "dyn-clonable-impl" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -3406,41 +3095,27 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] -[[package]] -name = "ed25519-zebra" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" -dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", - "zeroize", -] - [[package]] name = "ed25519-zebra" version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", "hashbrown 0.14.5", "hex", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "zeroize", ] @@ -3484,9 +3159,9 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "enum-as-inner" @@ -3566,9 +3241,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -3585,18 +3260,18 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3607,9 +3282,9 @@ checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" dependencies = [ "crunchy", "fixed-hash", - "impl-codec 0.7.0", + "impl-codec", "impl-rlp", - "impl-serde 0.5.0", + "impl-serde", "scale-info", "tiny-keccak", ] @@ -3639,10 +3314,10 @@ checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" dependencies = [ "ethbloom", "fixed-hash", - "impl-codec 0.7.0", + "impl-codec", "impl-rlp", - "impl-serde 0.5.0", - "primitive-types 0.13.1", + "impl-serde", + "primitive-types", "scale-info", "uint 0.10.0", ] @@ -3664,17 +3339,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "event-listener" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - [[package]] name = "event-listener" version = "5.4.0" @@ -3686,16 +3350,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.0", - "pin-project-lite", -] - [[package]] name = "event-listener-strategy" version = "0.5.4" @@ -3719,7 +3373,7 @@ dependencies = [ "evm-runtime", "log", "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "rlp", "scale-info", "serde", @@ -3732,7 +3386,7 @@ version = "0.42.0" source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "scale-info", "serde", ] @@ -3745,7 +3399,7 @@ dependencies = [ "environmental", "evm-core", "evm-runtime", - "primitive-types 0.13.1", + "primitive-types", ] [[package]] @@ -3756,7 +3410,7 @@ dependencies = [ "auto_impl", "environmental", "evm-core", - "primitive-types 0.13.1", + "primitive-types", "sha3", ] @@ -3792,18 +3446,12 @@ dependencies = [ "blake2 0.10.6", "file-guard", "fs-err", - "prettyplease 0.2.15", + "prettyplease", "proc-macro2", "quote", "syn 2.0.101", ] -[[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" @@ -3827,9 +3475,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fatality" @@ -3849,7 +3497,7 @@ checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", "indexmap 2.9.0", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -4022,32 +3670,19 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle 2.6.1", ] -[[package]] -name = "fflonk" -version = "0.1.0" -source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "merlin 3.0.0", -] - [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "file-guard" @@ -4065,20 +3700,20 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger 0.10.1", + "env_logger 0.10.2", "log", ] [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -4115,6 +3750,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flume" version = "0.10.14" @@ -4173,7 +3814,7 @@ version = "1.0.0-dev" source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "hex", - "impl-serde 0.5.0", + "impl-serde", "libsecp256k1", "log", "parity-scale-codec", @@ -4274,9 +3915,9 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" @@ -4310,7 +3951,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.5.13", + "clap 4.5.38", "comfy-table", "cumulus-client-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", @@ -4332,7 +3973,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-client-db", - "sc-executor 0.42.0", + "sc-executor", "sc-runtime-utilities", "sc-service", "sc-sysinfo", @@ -4381,7 +4022,7 @@ name = "frame-election-provider-solution-type" version = "16.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -4421,18 +4062,6 @@ dependencies = [ "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "frame-metadata" -version = "16.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" -dependencies = [ - "cfg-if", - "parity-scale-codec", - "scale-info", - "serde", -] - [[package]] name = "frame-metadata" version = "17.0.0" @@ -4540,7 +4169,7 @@ version = "13.0.1" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -4635,7 +4264,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.26", + "rustix 0.38.44", "windows-sys 0.48.0", ] @@ -4731,7 +4360,7 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -4838,9 +4467,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", @@ -4875,11 +4504,11 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -4894,12 +4523,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - [[package]] name = "gimli" version = "0.31.1" @@ -4912,9 +4535,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "governor" @@ -4958,7 +4581,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.11", + "http 0.2.12", "indexmap 2.9.0", "slab", "tokio", @@ -5019,9 +4642,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.7", -] [[package]] name = "hashbrown" @@ -5029,7 +4649,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.12", + "ahash", ] [[package]] @@ -5038,7 +4658,7 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.12", + "ahash", "allocator-api2", "serde", ] @@ -5095,9 +4715,21 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hermit-abi" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "hex" @@ -5120,7 +4752,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", ] [[package]] @@ -5200,16 +4832,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -5230,22 +4852,11 @@ dependencies = [ "hmac 0.8.1", ] -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", -] - [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -5265,12 +4876,12 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", ] @@ -5311,28 +4922,28 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", "h2 0.3.26", - "http 0.2.11", - "http-body 0.4.5", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.9", "tokio", "tower-service", "tracing", @@ -5400,16 +5011,17 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -5546,17 +5158,21 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ - "async-io 2.2.1", + "async-io 2.4.0", "core-foundation 0.9.4", "fnv", "futures 0.3.31", "if-addrs", "ipnet", "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-proto", + "netlink-sys", "rtnetlink", "system-configuration", "tokio", @@ -5573,8 +5189,8 @@ dependencies = [ "attohttpc", "bytes", "futures 0.3.31", - "http 0.2.11", - "hyper 0.14.27", + "http 0.2.12", + "hyper 0.14.32", "log", "rand 0.8.5", "tokio", @@ -5584,18 +5200,9 @@ dependencies = [ [[package]] name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-codec" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67aa010c1e3da95bf151bd8b4c059b2ed7e75387cdb969b4f8f2723a43f9941" +checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" dependencies = [ "parity-scale-codec", ] @@ -5620,15 +5227,6 @@ dependencies = [ "rlp", ] -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-serde" version = "0.5.0" @@ -5651,18 +5249,18 @@ dependencies = [ [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" dependencies = [ "proc-macro2", "quote", @@ -5717,18 +5315,18 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array 0.14.7", ] [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -5748,7 +5346,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -5773,35 +5371,35 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.3.3", - "rustix 0.38.26", - "windows-sys 0.48.0", + "hermit-abi 0.5.1", + "libc", + "windows-sys 0.59.0", ] [[package]] name = "is_executable" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" dependencies = [ "winapi", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -5821,6 +5419,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -5830,11 +5437,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jni" @@ -5880,14 +5496,14 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" +checksum = "138572befc78a9793240645926f30161f8b4143d2be18d09e44ed9814bd7ee2c" dependencies = [ - "jsonrpsee-core 0.20.3", - "jsonrpsee-proc-macros 0.20.3", - "jsonrpsee-server 0.20.3", - "jsonrpsee-types 0.20.3", + "jsonrpsee-core 0.20.4", + "jsonrpsee-proc-macros 0.20.4", + "jsonrpsee-server 0.20.4", + "jsonrpsee-types 0.20.4", "tokio", "tracing", ] @@ -5947,16 +5563,16 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" +checksum = "f24ea59b037b6b9b0e2ebe2c30a3e782b56bd7c76dcc5d6d70ba55d442af56e3" dependencies = [ "anyhow", "async-trait", "beef", "futures-util", - "hyper 0.14.27", - "jsonrpsee-types 0.20.3", + "hyper 0.14.32", + "jsonrpsee-types 0.20.4", "parking_lot 0.12.3", "rand 0.8.5", "rustc-hash 1.1.0", @@ -6021,12 +5637,12 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" +checksum = "dcc0eba68ba205452bcb4c7b80a79ddcb3bf36c261a841b239433142db632d24" dependencies = [ "heck 0.4.1", - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 1.0.109", @@ -6039,7 +5655,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -6052,7 +5668,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -6060,15 +5676,15 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" +checksum = "a482bc4e25eebd0adb61a3468c722763c381225bd3ec46e926f709df8a8eb548" dependencies = [ "futures-util", - "http 0.2.11", - "hyper 0.14.27", - "jsonrpsee-core 0.20.3", - "jsonrpsee-types 0.20.3", + "http 0.2.12", + "hyper 0.14.32", + "jsonrpsee-core 0.20.4", + "jsonrpsee-types 0.20.4", "route-recognizer", "serde", "serde_json", @@ -6138,9 +5754,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" +checksum = "3264e339143fe37ed081953842ee67bfafa99e3b91559bdded6e4abd8fc8535e" dependencies = [ "anyhow", "beef", @@ -6199,14 +5815,14 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -6217,7 +5833,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" dependencies = [ - "primitive-types 0.13.1", + "primitive-types", "tiny-keccak", ] @@ -6273,11 +5889,11 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin 0.9.8", ] [[package]] @@ -6294,19 +5910,19 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" dependencies = [ "cfg-if", - "winapi", + "windows-targets 0.53.0", ] [[package]] name = "libm" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libp2p" @@ -6318,7 +5934,7 @@ dependencies = [ "either", "futures 0.3.31", "futures-timer", - "getrandom 0.2.11", + "getrandom 0.2.16", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -6379,7 +5995,7 @@ dependencies = [ "futures-timer", "libp2p-identity", "multiaddr 0.18.2", - "multihash 0.19.1", + "multihash 0.19.3", "multistream-select", "once_cell", "parking_lot 0.12.3", @@ -6436,18 +6052,18 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" +checksum = "fbb68ea10844211a59ce46230909fd0ea040e8a192454d4cc2ee0d53e12280eb" dependencies = [ "bs58", "ed25519-dalek", "hkdf", - "multihash 0.19.1", + "multihash 0.19.3", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.8", - "thiserror 1.0.69", + "sha2 0.10.9", + "thiserror 2.0.12", "tracing", "zeroize", ] @@ -6458,7 +6074,7 @@ version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "asynchronous-codec 0.7.0", "bytes", "either", @@ -6472,7 +6088,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "rand 0.8.5", - "sha2 0.10.8", + "sha2 0.10.9", "smallvec", "thiserror 1.0.69", "tracing", @@ -6528,16 +6144,16 @@ checksum = "36b137cb1ae86ee39f8e5d6245a296518912014eaa87427d24e6ff58cfc1b28c" dependencies = [ "asynchronous-codec 0.7.0", "bytes", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "futures 0.3.31", "libp2p-core", "libp2p-identity", "multiaddr 0.18.2", - "multihash 0.19.1", + "multihash 0.19.3", "once_cell", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.8", + "sha2 0.10.9", "snow", "static_assertions", "thiserror 1.0.69", @@ -6734,13 +6350,13 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.9.1", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.12", ] [[package]] @@ -6808,9 +6424,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "pkg-config", @@ -6819,9 +6435,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +checksum = "4a6f6da007f968f9def0d65a05b187e2960183de70c160204ecfccf0ee330212" dependencies = [ "cc", ] @@ -6834,18 +6450,18 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" dependencies = [ "linked-hash-map", ] [[package]] name = "linregress" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ "nalgebra", ] @@ -6864,9 +6480,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "lioness" @@ -6912,7 +6534,7 @@ dependencies = [ "prost-build", "rand 0.8.5", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "simple-dns", "smallvec", "snow", @@ -6935,9 +6557,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -6981,19 +6603,18 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lz4" -version = "1.24.0" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -7058,32 +6679,19 @@ dependencies = [ [[package]] name = "macrotest" -version = "1.0.9" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7489ae0986ce45414b7b3122c2e316661343ecf396b206e3e15f07c846616f10" +checksum = "f0597a8d49ceeea5845b12d1970aa993261e68d4660b327eabab667b3e7ffd60" dependencies = [ "diff", + "fastrand 2.3.0", "glob", - "prettyplease 0.1.25", + "prettyplease", "serde", + "serde_derive", "serde_json", - "syn 1.0.109", - "toml 0.5.11", -] - -[[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.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata 0.1.10", + "syn 2.0.101", + "toml_edit", ] [[package]] @@ -7097,9 +6705,9 @@ dependencies = [ [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ "autocfg", "rawpointer", @@ -7107,9 +6715,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -7117,7 +6725,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.26", + "rustix 0.38.44", ] [[package]] @@ -7131,9 +6739,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -7147,15 +6755,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "memory-db" version = "0.32.0" @@ -7167,30 +6766,18 @@ dependencies = [ [[package]] name = "merkleized-metadata" -version = "0.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" +checksum = "dc9b7ac0ce054412d9a85ff39bac27aec27483b06cef8756b57d9c29d448d081" dependencies = [ "array-bytes", "blake3", - "frame-metadata 16.0.0", + "frame-metadata 20.0.0", "parity-scale-codec", "scale-decode 0.13.1", "scale-info", ] -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "merlin" version = "3.0.0" @@ -7211,11 +6798,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -7236,11 +6823,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "either", "hashlink", "lioness", @@ -7350,7 +6937,7 @@ dependencies = [ "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.1", + "multihash 0.19.3", "percent-encoding", "serde", "static_assertions", @@ -7381,28 +6968,28 @@ dependencies = [ "core2", "digest 0.10.7", "multihash-derive", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "unsigned-varint 0.7.2", ] [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", @@ -7412,9 +6999,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "multistream-select" @@ -7432,13 +7019,12 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx", "matrixmultiply", - "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -7446,17 +7032,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "nalgebra-macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "names" version = "0.14.0" @@ -7472,26 +7047,25 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.16", ] [[package]] name = "netlink-packet-core" -version = "0.4.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" dependencies = [ "anyhow", "byteorder", - "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.12.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -7515,24 +7089,23 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.10.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ "bytes", "futures 0.3.31", "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.69", - "tokio", + "thiserror 2.0.12", ] [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ "bytes", "futures 0.3.31", @@ -7555,9 +7128,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -7688,7 +7261,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "itoa", ] @@ -7739,7 +7312,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.9", "libc", ] @@ -7767,7 +7340,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 1.0.109", @@ -7779,7 +7352,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -7797,15 +7370,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "object" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" -dependencies = [ - "memchr", -] - [[package]] name = "object" version = "0.36.7" @@ -7835,9 +7399,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "opaque-debug" @@ -7847,15 +7417,15 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "option-ext" @@ -7889,8 +7459,8 @@ dependencies = [ "expander", "indexmap 2.9.0", "itertools 0.11.0", - "petgraph", - "proc-macro-crate 3.1.0", + "petgraph 0.6.5", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 1.0.109", @@ -8547,7 +8117,7 @@ dependencies = [ name = "pallet-evm-precompile-assets-erc20" version = "0.5.2" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -8571,7 +8141,7 @@ dependencies = [ name = "pallet-evm-precompile-assets-factory" version = "0.0.1" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -8596,7 +8166,7 @@ dependencies = [ name = "pallet-evm-precompile-balances-erc20" version = "0.1.0" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -8621,7 +8191,7 @@ dependencies = [ name = "pallet-evm-precompile-batch" version = "0.1.0" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "evm", "fp-evm", "frame-support", @@ -8685,7 +8255,7 @@ name = "pallet-evm-precompile-parachain-staking" version = "0.0.1" dependencies = [ "address-unification", - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -8785,7 +8355,7 @@ dependencies = [ name = "pallet-evm-precompile-vesting" version = "0.1.0" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -8810,7 +8380,7 @@ name = "pallet-evm-precompile-xcm-utils" version = "0.1.0" dependencies = [ "cumulus-primitives-core", - "derive_more 0.99.17", + "derive_more 0.99.20", "env_logger 0.9.3", "fp-evm", "frame-support", @@ -8841,7 +8411,7 @@ name = "pallet-evm-precompile-xtokens" version = "0.1.0" dependencies = [ "cumulus-primitives-core", - "derive_more 0.99.17", + "derive_more 0.99.20", "fp-evm", "frame-support", "frame-system", @@ -9701,7 +9271,7 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "bytes", @@ -9718,7 +9288,7 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -9732,9 +9302,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -9754,7 +9324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -9773,15 +9343,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.12", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -9807,15 +9377,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pbkdf2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] - [[package]] name = "pbkdf2" version = "0.12.2" @@ -9956,7 +9517,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder 17.0.0", + "substrate-wasm-builder", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -10095,7 +9656,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder 17.0.0", + "substrate-wasm-builder", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -10106,7 +9667,7 @@ name = "peaq-node" version = "4.0.0-polkadot-v1.7.2" dependencies = [ "async-trait", - "clap 4.5.13", + "clap 4.5.38", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -10142,7 +9703,7 @@ dependencies = [ "futures 0.3.31", "hex-literal 0.3.4", "inflation-manager", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "log", "orml-xtokens", "pallet-base-fee", @@ -10177,7 +9738,7 @@ dependencies = [ "sc-consensus", "sc-consensus-aura", "sc-consensus-manual-seal", - "sc-executor 0.42.0", + "sc-executor", "sc-keystore", "sc-network", "sc-network-common", @@ -10206,7 +9767,7 @@ dependencies = [ "sp-transaction-pool", "staging-xcm", "structopt", - "substrate-build-script-utils 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", + "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "tokio", @@ -10241,7 +9802,7 @@ name = "peaq-pallet-did-rpc" version = "0.2.1" source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" dependencies = [ - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "parity-scale-codec", "peaq-pallet-did", "peaq-pallet-did-runtime-api", @@ -10309,7 +9870,7 @@ name = "peaq-pallet-rbac-rpc" version = "0.2.1" source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" dependencies = [ - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "parity-scale-codec", "peaq-pallet-rbac", "peaq-pallet-rbac-runtime-api", @@ -10352,7 +9913,7 @@ name = "peaq-pallet-storage-rpc" version = "0.3.1" source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" dependencies = [ - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "parity-scale-codec", "peaq-pallet-storage", "peaq-pallet-storage-runtime-api", @@ -10437,7 +9998,7 @@ version = "0.1.0" dependencies = [ "ethereum-types", "futures 0.3.31", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -10451,7 +10012,7 @@ version = "0.6.0" dependencies = [ "ethereum-types", "futures 0.3.31", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -10465,7 +10026,7 @@ dependencies = [ "ethereum", "ethereum-types", "fc-rpc-core", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "serde", "serde_json", ] @@ -10493,7 +10054,7 @@ dependencies = [ "fp-rpc", "futures 0.3.31", "hex-literal 0.3.4", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "peaq-client-evm-tracing", "peaq-rpc-core-debug", "peaq-rpc-core-types", @@ -10552,7 +10113,7 @@ dependencies = [ "fc-storage", "fp-rpc", "futures 0.3.31", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "log", "peaq-client-evm-tracing", "peaq-rpc-core-trace", @@ -10582,7 +10143,7 @@ dependencies = [ "ethereum-types", "fc-rpc", "frame-system", - "jsonrpsee 0.20.3", + "jsonrpsee 0.20.4", "peaq-rpc-core-txpool", "peaq-rpc-primitives-txpool", "rlp", @@ -10710,7 +10271,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder 17.0.0", + "substrate-wasm-builder", "xc-asset-config", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -10740,20 +10301,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 2.0.12", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" dependencies = [ "pest", "pest_generator", @@ -10761,9 +10322,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" dependencies = [ "pest", "pest_meta", @@ -10774,22 +10335,32 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" dependencies = [ "once_cell", "pest", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.9.0", +] + +[[package]] +name = "petgraph" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ - "fixedbitset", + "fixedbitset 0.5.7", "indexmap 2.9.0", ] @@ -10827,12 +10398,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.3.0", "futures-io", ] @@ -10848,9 +10419,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" @@ -10946,7 +10517,7 @@ name = "polkadot-cli" version = "23.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.13", + "clap 4.5.38", "frame-benchmarking-cli", "futures 0.3.31", "log", @@ -10961,7 +10532,7 @@ dependencies = [ "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-keyring", "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "substrate-build-script-utils 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "substrate-build-script-utils", "thiserror 1.0.69", ] @@ -11104,11 +10675,11 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "async-trait", "bitvec", - "derive_more 0.99.17", + "derive_more 0.99.20", "futures 0.3.31", "futures-timer", "itertools 0.11.0", - "merlin 3.0.0", + "merlin", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -11380,9 +10951,9 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "sc-executor 0.42.0", - "sc-executor-common 0.38.0", - "sc-executor-wasmtime 0.38.0", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", "seccompiler", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -11433,7 +11004,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", - "derive_more 0.99.17", + "derive_more 0.99.20", "fatality", "futures 0.3.31", "hex", @@ -11469,7 +11040,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-maybe-compressed-blob", "thiserror 1.0.69", "zstd 0.12.4", ] @@ -11489,7 +11060,7 @@ version = "22.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "async-trait", - "derive_more 0.99.17", + "derive_more 0.99.20", "fatality", "futures 0.3.31", "orchestra", @@ -11568,7 +11139,7 @@ version = "16.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "bounded-collections", - "derive_more 0.99.17", + "derive_more 0.99.20", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -11858,7 +11429,7 @@ dependencies = [ "sc-consensus-beefy", "sc-consensus-grandpa", "sc-consensus-slots", - "sc-executor 0.42.0", + "sc-executor", "sc-keystore", "sc-network", "sc-network-sync", @@ -11905,7 +11476,7 @@ name = "polkadot-statement-distribution" version = "22.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "fatality", "futures 0.3.31", @@ -11942,7 +11513,7 @@ dependencies = [ "libc", "log", "polkavm-assembler", - "polkavm-common 0.18.0", + "polkavm-common", "polkavm-linux-raw", ] @@ -11955,12 +11526,6 @@ dependencies = [ "log", ] -[[package]] -name = "polkavm-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" - [[package]] name = "polkavm-common" version = "0.18.0" @@ -11971,34 +11536,13 @@ dependencies = [ "polkavm-assembler", ] -[[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 0.9.0", -] - [[package]] name = "polkavm-derive" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2eb703f3b6404c13228402e98a5eae063fd16b8f58afe334073ec105ee4117e" dependencies = [ - "polkavm-derive-impl-macro 0.18.0", -] - -[[package]] -name = "polkavm-derive-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" -dependencies = [ - "polkavm-common 0.9.0", - "proc-macro2", - "quote", - "syn 2.0.101", + "polkavm-derive-impl-macro", ] [[package]] @@ -12007,29 +11551,19 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ - "polkavm-common 0.18.0", + "polkavm-common", "proc-macro2", "quote", "syn 2.0.101", ] -[[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 0.9.0", - "syn 2.0.101", -] - [[package]] name = "polkavm-derive-impl-macro" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ - "polkavm-derive-impl 0.18.1", + "polkavm-derive-impl", "syn 2.0.101", ] @@ -12044,7 +11578,7 @@ dependencies = [ "hashbrown 0.14.5", "log", "object 0.36.7", - "polkavm-common 0.18.0", + "polkavm-common", "regalloc2 0.9.3", "rustc-demangle", ] @@ -12073,16 +11607,17 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.1" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.26", + "rustix 0.38.44", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -12092,19 +11627,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] @@ -12131,15 +11666,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "precompile-utils" version = "0.1.1" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "environmental", "evm", "fp-evm", @@ -12193,15 +11731,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" dependencies = [ "predicates-core", "termtree", @@ -12209,37 +11747,14 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "prettyplease" -version = "0.2.15" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", "syn 2.0.101", ] -[[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 0.6.0", - "impl-serde 0.4.0", - "scale-info", - "uint 0.9.5", -] - [[package]] name = "primitive-types" version = "0.13.1" @@ -12247,10 +11762,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", - "impl-codec 0.7.0", + "impl-codec", "impl-num-traits", "impl-rlp", - "impl-serde 0.5.0", + "impl-serde", "scale-info", "uint 0.10.0", ] @@ -12263,7 +11778,7 @@ checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", - "derive_more 0.99.17", + "derive_more 0.99.20", "futures 0.3.31", "futures-timer", "nanorand", @@ -12273,21 +11788,21 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "thiserror 1.0.69", + "toml 0.5.11", ] [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.21.0", + "toml_edit", ] [[package]] @@ -12338,9 +11853,9 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "1.0.2" +version = "1.84.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" +checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", @@ -12436,12 +11951,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ "heck 0.5.0", - "itertools 0.11.0", + "itertools 0.14.0", "log", "multimap", "once_cell", - "petgraph", - "prettyplease 0.2.15", + "petgraph 0.7.1", + "prettyplease", "prost 0.13.5", "prost-types", "regex", @@ -12456,7 +11971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.101", @@ -12469,7 +11984,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.101", @@ -12486,9 +12001,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.21" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" dependencies = [ "cc", ] @@ -12508,12 +12023,6 @@ dependencies = [ "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" @@ -12589,7 +12098,7 @@ dependencies = [ "once_cell", "socket2 0.5.9", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -12654,19 +12163,13 @@ dependencies = [ "rand_core 0.9.3", ] -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" - [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.16", ] [[package]] @@ -12723,9 +12226,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -12733,9 +12236,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -12764,29 +12267,20 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.1", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] @@ -12797,7 +12291,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fs-err", "static_init", "thiserror 1.0.69", @@ -12805,18 +12299,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", @@ -12894,13 +12388,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] +checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "rfc6979" @@ -12912,23 +12402,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "ring" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.7.4", - "blake2 0.10.6", - "common", - "fflonk", -] - [[package]] name = "ring" version = "0.16.20" @@ -12952,7 +12425,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.11", + "getrandom 0.2.16", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", @@ -13093,7 +12566,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder 26.0.1", + "substrate-wasm-builder", "xcm-runtime-apis", ] @@ -13121,38 +12594,41 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rpassword" -version = "7.3.1" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "rtnetlink" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" dependencies = [ "futures 0.3.31", "log", + "netlink-packet-core", "netlink-packet-route", + "netlink-packet-utils", "netlink-proto", - "nix 0.24.3", + "netlink-sys", + "nix 0.26.4", "thiserror 1.0.69", "tokio", ] [[package]] name = "rtoolbox" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -13184,9 +12660,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -13217,11 +12693,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.20", + "semver 1.0.26", ] [[package]] @@ -13249,9 +12725,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" +version = "0.37.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" dependencies = [ "bitflags 1.3.2", "errno", @@ -13263,15 +12739,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.26" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.9.1", "errno", "libc", - "linux-raw-sys 0.4.12", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys 0.9.4", + "windows-sys 0.59.0", ] [[package]] @@ -13329,7 +12818,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -13383,7 +12872,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.17", + "derive_more 0.99.20", ] [[package]] @@ -13399,9 +12888,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe-mix" @@ -13414,9 +12903,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" dependencies = [ "bytemuck", ] @@ -13439,17 +12928,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "sc-allocator" -version = "23.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "log", - "sp-core 28.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror 1.0.69", -] - [[package]] name = "sc-allocator" version = "31.0.0" @@ -13532,11 +13010,11 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "array-bytes", "docify", - "memmap2 0.9.4", + "memmap2 0.9.5", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", - "sc-executor 0.42.0", + "sc-executor", "sc-network", "sc-telemetry", "serde", @@ -13556,7 +13034,7 @@ name = "sc-chain-spec-derive" version = "12.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -13569,7 +13047,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "array-bytes", "chrono", - "clap 4.5.13", + "clap 4.5.38", "fdlimit", "futures 0.3.31", "itertools 0.11.0", @@ -13614,7 +13092,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-executor 0.42.0", + "sc-executor", "sc-transaction-pool-api", "sc-utils", "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -13838,7 +13316,7 @@ name = "sc-consensus-grandpa" version = "0.34.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.12", + "ahash", "array-bytes", "async-trait", "dyn-clone", @@ -13955,29 +13433,6 @@ dependencies = [ "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sc-executor" -version = "0.32.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor-common 0.29.0", - "sc-executor-wasmtime 0.29.0", - "schnellru", - "sp-api 26.0.0", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-io 30.0.0", - "sp-panic-handler 13.0.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "tracing", -] - [[package]] name = "sc-executor" version = "0.42.0" @@ -13985,9 +13440,9 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sc-executor-common 0.38.0", + "sc-executor-common", "sc-executor-polkavm", - "sc-executor-wasmtime 0.38.0", + "sc-executor-wasmtime", "schnellru", "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -14001,27 +13456,14 @@ dependencies = [ "tracing", ] -[[package]] -name = "sc-executor-common" -version = "0.29.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "parity-scale-codec", - "sc-allocator 23.0.0", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror 1.0.69", - "wasm-instrument", -] - [[package]] name = "sc-executor-common" version = "0.38.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "polkavm", - "sc-allocator 31.0.0", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sc-allocator", + "sp-maybe-compressed-blob", "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "thiserror 1.0.69", "wasm-instrument", @@ -14034,30 +13476,10 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "log", "polkavm", - "sc-executor-common 0.38.0", + "sc-executor-common", "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sc-executor-wasmtime" -version = "0.29.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "anyhow", - "cfg-if", - "libc", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rustix 0.36.17", - "sc-allocator 23.0.0", - "sc-executor-common 0.29.0", - "sp-core 28.0.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "wasmtime", -] - [[package]] name = "sc-executor-wasmtime" version = "0.38.0" @@ -14067,8 +13489,8 @@ dependencies = [ "log", "parking_lot 0.12.3", "rustix 0.36.17", - "sc-allocator 31.0.0", - "sc-executor-common 0.38.0", + "sc-allocator", + "sc-executor-common", "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "wasmtime", @@ -14110,7 +13532,7 @@ version = "0.19.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "array-bytes", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "blake2 0.10.6", "bytes", "futures 0.3.31", @@ -14197,7 +13619,7 @@ name = "sc-network-gossip" version = "0.49.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.12", + "ahash", "futures 0.3.31", "futures-timer", "log", @@ -14299,7 +13721,7 @@ dependencies = [ "litep2p", "log", "multiaddr 0.18.2", - "multihash 0.19.1", + "multihash 0.19.3", "rand 0.8.5", "thiserror 1.0.69", "zeroize", @@ -14462,8 +13884,8 @@ version = "0.2.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "sc-executor 0.42.0", - "sc-executor-common 0.38.0", + "sc-executor", + "sc-executor-common", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -14491,7 +13913,7 @@ dependencies = [ "sc-client-api", "sc-client-db", "sc-consensus", - "sc-executor 0.42.0", + "sc-executor", "sc-informant", "sc-keystore", "sc-network", @@ -14551,7 +13973,7 @@ name = "sc-storage-monitor" version = "0.24.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.13", + "clap 4.5.38", "fs4", "log", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -14583,7 +14005,7 @@ name = "sc-sysinfo" version = "42.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "futures 0.3.31", "libc", "log", @@ -14641,8 +14063,8 @@ dependencies = [ "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "thiserror 1.0.69", "tracing", - "tracing-log 0.2.0", - "tracing-subscriber 0.3.18", + "tracing-log", + "tracing-subscriber", ] [[package]] @@ -14650,7 +14072,7 @@ name = "sc-tracing-proc-macro" version = "11.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -14737,7 +14159,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "parity-scale-codec", "scale-bits", "scale-type-resolver", @@ -14752,7 +14174,7 @@ checksum = "f8ae9cc099ae85ff28820210732b00f019546f36f33225f509fe25d5816864a0" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode-derive", "scale-type-resolver", @@ -14779,7 +14201,7 @@ checksum = "5f9271284d05d0749c40771c46180ce89905fd95aa72a2a2fddb4b7c0aa424db" dependencies = [ "derive_more 1.0.0", "parity-scale-codec", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-encode-derive", "scale-type-resolver", @@ -14793,7 +14215,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "102fbc6236de6c53906c0b262f12c7aa69c2bdc604862c12728f5f4d370bc137" dependencies = [ "darling", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -14819,7 +14241,7 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -14870,11 +14292,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -14883,27 +14305,11 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash 0.8.12", + "ahash", "cfg-if", "hashbrown 0.13.2", ] -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "merlin 2.0.1", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.6.1", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.10.2" @@ -14911,9 +14317,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "curve25519-dalek-ng", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "sha2 0.9.9", "subtle-ng", @@ -14928,13 +14334,13 @@ checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", - "arrayvec 0.7.4", - "curve25519-dalek 4.1.3", + "arrayvec 0.7.6", + "curve25519-dalek", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "serde_bytes", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -14947,9 +14353,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" +checksum = "9f6280af86e5f559536da57a45ebc84948833b3bee313a7dd25232e09c878a52" [[package]] name = "scrypt" @@ -14958,9 +14364,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ "password-hash", - "pbkdf2 0.12.2", + "pbkdf2", "salsa20", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -15104,9 +14510,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] @@ -15128,9 +14534,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.15" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] @@ -15187,7 +14593,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -15201,18 +14607,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.9" @@ -15223,14 +14617,14 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -15264,9 +14658,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -15283,9 +14677,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ "approx", "num-complex", @@ -15296,9 +14690,9 @@ dependencies = [ [[package]] name = "similar" -version = "2.3.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" dependencies = [ "bstr", "unicode-segmentation", @@ -15306,9 +14700,9 @@ dependencies = [ [[package]] name = "similar-asserts" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e041bb827d1bfca18f213411d51b665309f1afb37a04a5d1464530e13779fc0f" +checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a" dependencies = [ "console", "similar", @@ -15323,11 +14717,6 @@ dependencies = [ "bitflags 2.9.1", ] -[[package]] -name = "simple-mermaid" -version = "0.1.0" -source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" - [[package]] name = "simple-mermaid" version = "0.1.1" @@ -15413,8 +14802,8 @@ dependencies = [ "async-channel 2.3.1", "async-executor", "async-fs 2.1.2", - "async-io 2.2.1", - "async-lock 3.2.0", + "async-io 2.4.0", + "async-lock 3.4.0", "async-net 2.0.0", "async-process 2.3.0", "blocking", @@ -15427,17 +14816,17 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "async-lock 2.8.0", "atomic-take", - "base64 0.21.5", + "base64 0.21.7", "bip39", "blake2-rfc", "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.17", - "ed25519-zebra 4.0.3", + "derive_more 0.99.20", + "ed25519-zebra", "either", "event-listener 2.5.3", "fnv", @@ -15448,13 +14837,13 @@ dependencies = [ "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", "rand 0.8.5", @@ -15463,7 +14852,7 @@ dependencies = [ "schnorrkel 0.10.2", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher 0.3.11", "slab", @@ -15481,8 +14870,8 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" dependencies = [ - "arrayvec 0.7.4", - "async-lock 3.2.0", + "arrayvec 0.7.6", + "async-lock 3.4.0", "atomic-take", "base64 0.22.1", "bip39", @@ -15490,8 +14879,8 @@ dependencies = [ "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.17", - "ed25519-zebra 4.0.3", + "derive_more 0.99.20", + "ed25519-zebra", "either", "event-listener 5.4.0", "fnv", @@ -15503,12 +14892,12 @@ dependencies = [ "itertools 0.13.0", "libm", "libsecp256k1", - "merlin 3.0.0", + "merlin", "nom", "num-bigint", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", "rand 0.8.5", @@ -15517,7 +14906,7 @@ dependencies = [ "schnorrkel 0.11.4", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher 1.0.1", "slab", @@ -15537,9 +14926,9 @@ checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" dependencies = [ "async-channel 1.9.0", "async-lock 2.8.0", - "base64 0.21.5", + "base64 0.21.7", "blake2-rfc", - "derive_more 0.99.17", + "derive_more 0.99.20", "either", "event-listener 2.5.3", "fnv", @@ -15572,11 +14961,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ "async-channel 2.3.1", - "async-lock 3.2.0", + "async-lock 3.4.0", "base64 0.22.1", "blake2-rfc", "bs58", - "derive_more 0.99.17", + "derive_more 0.99.20", "either", "event-listener 5.4.0", "fnv", @@ -15616,11 +15005,11 @@ dependencies = [ "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", "ring 0.17.14", - "rustc_version 0.4.0", - "sha2 0.10.8", + "rustc_version 0.4.1", + "sha2 0.10.9", "subtle 2.6.1", ] @@ -15653,7 +15042,7 @@ dependencies = [ "base64 0.13.1", "bytes", "futures 0.3.31", - "http 0.2.11", + "http 0.2.12", "httparse", "log", "rand 0.8.5", @@ -15676,27 +15065,6 @@ dependencies = [ "sha1", ] -[[package]] -name = "sp-api" -version = "26.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-metadata-ir 0.6.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "thiserror 1.0.69", -] - [[package]] name = "sp-api" version = "36.0.1" @@ -15742,20 +15110,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "sp-api-proc-macro" -version = "15.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "sp-api-proc-macro" version = "22.0.0" @@ -15764,7 +15118,7 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -15779,25 +15133,12 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", ] -[[package]] -name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - [[package]] name = "sp-application-crypto" version = "40.1.0" @@ -15823,20 +15164,6 @@ dependencies = [ "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sp-arithmetic" -version = "23.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "static_assertions", -] - [[package]] name = "sp-arithmetic" version = "26.1.0" @@ -15866,24 +15193,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "sp-ark-bls12-381" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" -dependencies = [ - "ark-bls12-381-ext", - "sp-crypto-ec-utils", -] - -[[package]] -name = "sp-ark-ed-on-bls12-381-bandersnatch" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" -dependencies = [ - "ark-ed-on-bls12-381-bandersnatch-ext", - "sp-crypto-ec-utils", -] - [[package]] name = "sp-authority-discovery" version = "36.0.0" @@ -16056,52 +15365,6 @@ dependencies = [ "sp-timestamp", ] -[[package]] -name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "array-bytes", - "bandersnatch_vrfs", - "bip39", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures 0.3.31", - "hash-db", - "hash256-std-hasher", - "impl-serde 0.4.0", - "itertools 0.10.5", - "libsecp256k1", - "log", - "merlin 3.0.0", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types 0.12.2", - "rand 0.8.5", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1 0.28.2", - "secrecy 0.8.0", - "serde", - "sp-crypto-hashing 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "ss58-registry", - "substrate-bip39 0.4.5", - "thiserror 1.0.69", - "tracing", - "w3f-bls", - "zeroize", -] - [[package]] name = "sp-core" version = "36.1.0" @@ -16115,21 +15378,21 @@ dependencies = [ "bounded-collections", "bs58", "dyn-clonable", - "ed25519-zebra 4.0.3", + "ed25519-zebra", "futures 0.3.31", "hash-db", "hash256-std-hasher", - "impl-serde 0.5.0", + "impl-serde", "itertools 0.11.0", "k256", "libsecp256k1", "log", - "merlin 3.0.0", + "merlin", "parity-bip39", "parity-scale-codec", "parking_lot 0.12.3", "paste", - "primitive-types 0.13.1", + "primitive-types", "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", @@ -16162,21 +15425,21 @@ dependencies = [ "bounded-collections", "bs58", "dyn-clonable", - "ed25519-zebra 4.0.3", + "ed25519-zebra", "futures 0.3.31", "hash-db", "hash256-std-hasher", - "impl-serde 0.5.0", + "impl-serde", "itertools 0.11.0", "k256", "libsecp256k1", "log", - "merlin 3.0.0", + "merlin", "parity-bip39", "parity-scale-codec", "parking_lot 0.12.3", "paste", - "primitive-types 0.13.1", + "primitive-types", "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", @@ -16197,39 +15460,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sp-crypto-ec-utils" -version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "ark-bls12-377", - "ark-bls12-377-ext", - "ark-bls12-381 0.4.0", - "ark-bls12-381-ext", - "ark-bw6-761", - "ark-bw6-761-ext", - "ark-ec 0.4.2", - "ark-ed-on-bls12-377", - "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch 0.4.0", - "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - [[package]] name = "sp-crypto-hashing" version = "0.1.0" @@ -16239,7 +15469,7 @@ dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -16252,21 +15482,11 @@ dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] -[[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "quote", - "sp-crypto-hashing 0.0.0", - "syn 2.0.101", -] - [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" @@ -16329,51 +15549,10 @@ dependencies = [ ] [[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", -] - -[[package]] -name = "sp-externalities" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" +name = "sp-externalities" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" dependencies = [ "environmental", "parity-scale-codec", @@ -16429,31 +15608,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "sp-io" -version = "30.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "bytes", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "rustversion", - "secp256k1 0.28.2", - "sp-core 28.0.0", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-keystore 0.34.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie 29.0.0", - "tracing", - "tracing-core", -] - [[package]] name = "sp-io" version = "40.0.1" @@ -16466,7 +15620,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive 0.18.0", + "polkavm-derive", "rustversion", "secp256k1 0.28.2", "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -16492,7 +15646,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", - "polkavm-derive 0.18.0", + "polkavm-derive", "rustversion", "secp256k1 0.28.2", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -16517,18 +15671,6 @@ dependencies = [ "strum 0.26.3", ] -[[package]] -name = "sp-keystore" -version = "0.34.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror 1.0.69", -] - [[package]] name = "sp-keystore" version = "0.42.0" @@ -16561,26 +15703,6 @@ dependencies = [ "zstd 0.12.4", ] -[[package]] -name = "sp-maybe-compressed-blob" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "thiserror 1.0.69", - "zstd 0.12.4", -] - -[[package]] -name = "sp-metadata-ir" -version = "0.6.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "frame-metadata 16.0.0", - "parity-scale-codec", - "scale-info", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - [[package]] name = "sp-metadata-ir" version = "0.10.0" @@ -16653,16 +15775,6 @@ dependencies = [ "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - [[package]] name = "sp-panic-handler" version = "13.0.2" @@ -16703,30 +15815,6 @@ dependencies = [ "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sp-runtime" -version = "31.0.1" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "simple-mermaid 0.1.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-weights 27.0.0", -] - [[package]] name = "sp-runtime" version = "41.1.0" @@ -16745,7 +15833,7 @@ dependencies = [ "rand 0.8.5", "scale-info", "serde", - "simple-mermaid 0.1.1", + "simple-mermaid", "sp-application-crypto 40.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-arithmetic 26.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -16774,7 +15862,7 @@ dependencies = [ "rand 0.8.5", "scale-info", "serde", - "simple-mermaid 0.1.1", + "simple-mermaid", "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -16786,43 +15874,6 @@ dependencies = [ "tuplex", ] -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types 0.12.2", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-storage 19.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-wasm-interface 20.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive 0.9.1", - "primitive-types 0.13.1", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "static_assertions", -] - [[package]] name = "sp-runtime-interface" version = "29.0.1" @@ -16832,8 +15883,8 @@ dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive 0.18.0", - "primitive-types 0.13.1", + "polkavm-derive", + "primitive-types", "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-runtime-interface-proc-macro 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -16851,8 +15902,8 @@ dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive 0.18.0", - "primitive-types 0.13.1", + "polkavm-derive", + "primitive-types", "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-runtime-interface-proc-macro 18.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -16862,32 +15913,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "Inflector", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "Inflector", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" @@ -16896,7 +15921,7 @@ checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -16909,7 +15934,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -16942,27 +15967,6 @@ dependencies = [ "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sp-state-machine" -version = "0.35.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "smallvec", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-panic-handler 13.0.0", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-trie 29.0.0", - "thiserror 1.0.69", - "tracing", - "trie-db 0.28.0", -] - [[package]] name = "sp-state-machine" version = "0.45.0" @@ -16981,7 +15985,7 @@ dependencies = [ "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 1.0.69", "tracing", - "trie-db 0.30.0", + "trie-db", ] [[package]] @@ -17001,7 +16005,7 @@ dependencies = [ "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "thiserror 1.0.69", "tracing", - "trie-db 0.30.0", + "trie-db", ] [[package]] @@ -17010,13 +16014,13 @@ version = "20.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519-dalek", "hkdf", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sha2 0.10.8", + "sha2 0.10.9", "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", @@ -17039,48 +16043,13 @@ name = "sp-std" version = "14.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "impl-serde 0.4.0", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "impl-serde 0.5.0", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", -] - [[package]] name = "sp-storage" version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee3b70ca340e41cde9d2e069d354508a6e37a6573d66f7cc38f11549002f64ec" dependencies = [ - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "ref-cast", "serde", @@ -17092,7 +16061,7 @@ name = "sp-storage" version = "22.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "ref-cast", "serde", @@ -17111,29 +16080,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "tracing", - "tracing-core", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.18", -] - [[package]] name = "sp-tracing" version = "17.1.0" @@ -17143,7 +16089,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber", ] [[package]] @@ -17154,7 +16100,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber", ] [[package]] @@ -17180,37 +16126,13 @@ dependencies = [ "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", ] -[[package]] -name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "ahash 0.8.12", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "thiserror 1.0.69", - "tracing", - "trie-db 0.28.0", - "trie-root", -] - [[package]] name = "sp-trie" version = "39.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a555bf4c42ca89e2e7bf2f11308806dad13cdbd7f8fd60cf2649f12b6ee809bf" dependencies = [ - "ahash 0.8.12", + "ahash", "hash-db", "memory-db", "nohash-hasher", @@ -17223,7 +16145,7 @@ dependencies = [ "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 1.0.69", "tracing", - "trie-db 0.30.0", + "trie-db", "trie-root", ] @@ -17232,7 +16154,7 @@ name = "sp-trie" version = "39.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "ahash 0.8.12", + "ahash", "hash-db", "memory-db", "nohash-hasher", @@ -17245,34 +16167,17 @@ dependencies = [ "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "thiserror 1.0.69", "tracing", - "trie-db 0.30.0", + "trie-db", "trie-root", ] -[[package]] -name = "sp-version" -version = "29.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "impl-serde 0.4.0", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-crypto-hashing-proc-macro 0.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version-proc-macro 13.0.0", - "thiserror 1.0.69", -] - [[package]] name = "sp-version" version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd736a15ff2ea0a67c5a3bbdfd842d88f11f0774d7701a8d8a316f8deba276c5" dependencies = [ - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", @@ -17289,7 +16194,7 @@ name = "sp-version" version = "39.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", @@ -17301,17 +16206,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "sp-version-proc-macro" -version = "13.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "sp-version-proc-macro" version = "15.0.0" @@ -17337,30 +16231,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "wasmtime", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#aeebf2f383390f2f86527d70212162d5dbea8b93" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", -] - [[package]] name = "sp-wasm-interface" version = "21.0.1" @@ -17385,21 +16255,6 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sp-weights" -version = "27.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 23.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", -] - [[package]] name = "sp-weights" version = "31.1.0" @@ -17465,9 +16320,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.44.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35935738370302d5e33963665b77541e4b990a3e919ec904c837a56cfc891de1" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", @@ -17570,24 +16425,24 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_init" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +checksum = "8bae1df58c5fea7502e8e352ec26b5579f6178e1fdb311e088580c980dee25ed" dependencies = [ "bitflags 1.3.2", - "cfg_aliases 0.1.1", + "cfg_aliases 0.2.1", "libc", - "parking_lot 0.11.2", - "parking_lot_core 0.8.6", + "parking_lot 0.12.3", + "parking_lot_core 0.9.10", "static_init_macro", "winapi", ] [[package]] name = "static_init_macro" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +checksum = "1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f" dependencies = [ "cfg_aliases 0.1.1", "memchr", @@ -17648,9 +16503,6 @@ name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] [[package]] name = "strum" @@ -17687,19 +16539,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "substrate-bip39" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" -dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", - "schnorrkel 0.9.1", - "sha2 0.9.9", - "zeroize", -] - [[package]] name = "substrate-bip39" version = "0.6.0" @@ -17707,9 +16546,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" dependencies = [ "hmac 0.12.1", - "pbkdf2 0.12.2", + "pbkdf2", "schnorrkel 0.11.4", - "sha2 0.10.8", + "sha2 0.10.9", "zeroize", ] @@ -17719,9 +16558,9 @@ version = "0.6.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "hmac 0.12.1", - "pbkdf2 0.12.2", + "pbkdf2", "schnorrkel 0.11.4", - "sha2 0.10.8", + "sha2 0.10.9", "zeroize", ] @@ -17743,11 +16582,6 @@ name = "substrate-build-script-utils" version = "11.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -[[package]] -name = "substrate-build-script-utils" -version = "11.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" - [[package]] name = "substrate-frame-rpc-system" version = "43.0.0" @@ -17784,46 +16618,19 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "42.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -dependencies = [ - "jsonrpsee 0.24.9", - "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", - "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "trie-db 0.30.0", -] - -[[package]] -name = "substrate-wasm-builder" -version = "17.0.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2#3b59db74d6a4d6a746cf38a603d3e1235e05bb58" -dependencies = [ - "array-bytes", - "build-helper", - "cargo_metadata", - "console", - "filetime", - "frame-metadata 16.0.0", - "merkleized-metadata", +version = "42.0.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "jsonrpsee 0.24.9", "parity-scale-codec", - "parity-wasm", - "sc-executor 0.32.0", - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-tracing 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-v1.7.2)", - "sp-version 29.0.0", - "strum 0.24.1", - "tempfile", - "toml 0.8.12", - "walkdir", - "wasm-opt", + "sc-client-api", + "sc-rpc-api", + "serde", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "trie-db", ] [[package]] @@ -17831,18 +16638,27 @@ name = "substrate-wasm-builder" version = "26.0.1" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ + "array-bytes", "build-helper", "cargo_metadata", "console", "filetime", + "frame-metadata 20.0.0", "jobserver", + "merkleized-metadata", + "parity-scale-codec", "parity-wasm", "polkavm-linker", + "sc-executor", "shlex", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-maybe-compressed-blob", + "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "strum 0.26.3", "tempfile", - "toml 0.8.12", + "toml 0.8.22", "walkdir", "wasm-opt", ] @@ -17877,11 +16693,11 @@ dependencies = [ "frame-metadata 17.0.0", "futures 0.3.31", "hex", - "impl-serde 0.5.0", + "impl-serde", "jsonrpsee 0.24.9", "parity-scale-codec", "polkadot-sdk", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -17931,11 +16747,11 @@ dependencies = [ "frame-metadata 17.0.0", "hashbrown 0.14.5", "hex", - "impl-serde 0.5.0", + "impl-serde", "keccak-hash", "parity-scale-codec", "polkadot-sdk", - "primitive-types 0.13.1", + "primitive-types", "scale-bits", "scale-decode 0.14.0", "scale-encode", @@ -18009,7 +16825,7 @@ dependencies = [ "hmac 0.12.1", "keccak-hash", "parity-scale-codec", - "pbkdf2 0.12.2", + "pbkdf2", "polkadot-sdk", "regex", "schnorrkel 0.11.4", @@ -18018,7 +16834,7 @@ dependencies = [ "secrecy 0.10.3", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "subxt-core", "zeroize", ] @@ -18070,9 +16886,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", @@ -18081,20 +16897,20 @@ dependencies = [ [[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.9.1", "core-foundation 0.9.4", "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", @@ -18108,47 +16924,53 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "cfg-if", - "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.26", - "windows-sys 0.48.0", + "fastrand 2.3.0", + "getrandom 0.3.3", + "once_cell", + "rustix 1.0.7", + "windows-sys 0.59.0", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 0.38.26", - "windows-sys 0.48.0", + "rustix 1.0.7", + "windows-sys 0.59.0", ] [[package]] name = "termtree" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "textwrap" @@ -18156,7 +16978,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width 0.1.11", + "unicode-width 0.1.14", ] [[package]] @@ -18227,9 +17049,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -18317,9 +17139,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -18422,59 +17244,44 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.12" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.12", + "toml_edit", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.9.0", - "toml_datetime", - "winnow 0.5.24", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap 2.9.0", + "serde", + "serde_spanned", "toml_datetime", - "winnow 0.5.24", + "toml_write", + "winnow", ] [[package]] -name = "toml_edit" -version = "0.22.12" +name = "toml_write" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" -dependencies = [ - "indexmap 2.9.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.26", -] +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" [[package]] name = "tower" @@ -18509,21 +17316,21 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -18533,9 +17340,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", @@ -18544,9 +17351,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -18579,23 +17386,12 @@ version = "5.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -18607,45 +17403,13 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-serde", -] - [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "matchers 0.1.0", + "matchers", "nu-ansi-term", "once_cell", "parking_lot 0.12.3", @@ -18656,20 +17420,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-log 0.2.0", -] - -[[package]] -name = "trie-db" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" -dependencies = [ - "hash-db", - "hashbrown 0.13.2", - "log", - "rustc-hex", - "smallvec", + "tracing-log", ] [[package]] @@ -18695,23 +17446,23 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.85" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1" +checksum = "1c9bf9513a2f4aeef5fdac8677d7d349c79fdbcc03b9c86da6e9d254f1e43be2" dependencies = [ - "basic-toml", "glob", - "once_cell", "serde", "serde_derive", "serde_json", + "target-triple", "termcolor", + "toml 0.8.22", ] [[package]] @@ -18760,15 +17511,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[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" @@ -18802,9 +17553,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -18817,15 +17568,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" @@ -18835,9 +17586,9 @@ checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -18908,15 +17659,15 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -18932,9 +17683,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "void" @@ -18944,9 +17695,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" +checksum = "e6bfb937b3d12077654a9e43e32a4e9c20177dd9fea0f3aba673e7840bb54f32" dependencies = [ "ark-bls12-377", "ark-bls12-381 0.4.0", @@ -18955,14 +17706,12 @@ dependencies = [ "ark-serialize 0.4.2", "ark-serialize-derive 0.4.2", "arrayref", - "constcat", "digest 0.10.7", "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", - "thiserror 1.0.69", "zeroize", ] @@ -18977,7 +17726,7 @@ dependencies = [ "ark-poly 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -19007,16 +17756,16 @@ dependencies = [ "ark-poly 0.5.0", "ark-serialize 0.5.0", "ark-std 0.5.0", - "ark-transcript 0.0.3", + "ark-transcript", "w3f-pcs", "w3f-plonk-common", ] [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" @@ -19052,6 +17801,15 @@ dependencies = [ "wit-bindgen-rt", ] +[[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.100" @@ -19080,12 +17838,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] @@ -19205,7 +17964,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50386c99b9c32bd2ed71a55b6dd4040af2580530fae8bdb9a6576571a80d0cca" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "multi-stash", "num-derive", "num-traits", @@ -19228,7 +17987,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4" dependencies = [ - "ahash 0.8.12", + "ahash", "hashbrown 0.14.5", "string-interner", ] @@ -19320,14 +18079,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.21.5", + "base64 0.21.7", "bincode", "directories-next", "file-per-thread-logger", "log", "rustix 0.36.17", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "toml 0.5.11", "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", @@ -19449,7 +18208,7 @@ dependencies = [ "log", "mach", "memfd", - "memoffset 0.8.0", + "memoffset", "paste", "rand 0.8.5", "rustix 0.36.17", @@ -19473,9 +18232,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -19619,7 +18378,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder 26.0.1", + "substrate-wasm-builder", "westend-runtime-constants", "xcm-runtime-apis", ] @@ -19642,9 +18401,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.13" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" dependencies = [ "bytemuck", "safe_arch", @@ -19652,9 +18411,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -19674,11 +18433,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys 0.59.0", ] [[package]] @@ -19689,21 +18448,90 @@ 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", - "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.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" dependencies = [ - "windows-targets 0.48.5", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result 0.3.4", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", ] [[package]] @@ -19730,7 +18558,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -19765,17 +18602,34 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -19792,9 +18646,15 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -19810,9 +18670,15 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -19828,9 +18694,27 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -19846,9 +18730,15 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -19864,9 +18754,15 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -19882,9 +18778,15 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -19900,24 +18802,21 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.5.24" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0383266b19108dfc6314a56047aa545a1b4d1be60e799b4dbdd407b56402704b" -dependencies = [ - "memchr", -] +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.6.26" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -19962,7 +18861,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", "serde", "zeroize", @@ -20130,7 +19029,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure 0.13.1", + "synstructure 0.13.2", ] [[package]] @@ -20225,7 +19124,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure 0.13.1", + "synstructure 0.13.2", ] [[package]] @@ -20321,9 +19220,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/node/Cargo.toml b/node/Cargo.toml index ed709e9b9..468f469bc 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -18,7 +18,7 @@ targets = ["x86_64-unknown-linux-gnu"] [build-dependencies.substrate-build-script-utils] git = "https://github.com/peaqnetwork/polkadot-sdk" -branch = "peaq-polkadot-v1.7.2" +branch = "peaq-polkadot-stable2503-4" [dependencies] # serde_json = { workspace = true, default-features = true } diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index d1eb95cd8..adb3d7496 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [build-dependencies.substrate-wasm-builder] git = "https://github.com/peaqnetwork/polkadot-sdk" -branch = "peaq-polkadot-v1.7.2" +branch = "peaq-polkadot-stable2503-4" [dependencies] # sp-debug-derive = { git = "https://github.com/peaqnetwork/polakdot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false, features = ["std", "force-debug"] } diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 262a757a6..ace378226 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [build-dependencies.substrate-wasm-builder] git = "https://github.com/peaqnetwork/polkadot-sdk" -branch = "peaq-polkadot-v1.7.2" +branch = "peaq-polkadot-stable2503-4" [dependencies] # sp-debug-derive = { git = "https://github.com/peaqnetwork/polakdot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false, features = ["std", "force-debug"] } diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index 93bf8ba59..021e4fba1 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [build-dependencies.substrate-wasm-builder] git = "https://github.com/peaqnetwork/polkadot-sdk" -branch = "peaq-polkadot-v1.7.2" +branch = "peaq-polkadot-stable2503-4" [dependencies] # sp-debug-derive = { git = "https://github.com/peaqnetwork/polakdot-sdk", branch = "peaq-polkadot-v1.7.2", default-features = false, features = ["std", "force-debug"] } From 41813425afed48769ef5043ea44e4ef4282d8c49 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 26 May 2025 15:31:19 +0500 Subject: [PATCH 03/98] (WIP) fixed minor syntactic errors --- pallets/address-unification/src/lib.rs | 5 +- pallets/parachain-staking/src/mock.rs | 12 +++- pallets/parachain-staking/src/tests.rs | 84 +++++++++++++------------- pallets/xc-asset-config/src/mock.rs | 7 +++ primitives/xcm/src/evm.rs | 8 +-- 5 files changed, 66 insertions(+), 50 deletions(-) diff --git a/pallets/address-unification/src/lib.rs b/pallets/address-unification/src/lib.rs index cbb8c8b25..d25918349 100644 --- a/pallets/address-unification/src/lib.rs +++ b/pallets/address-unification/src/lib.rs @@ -37,7 +37,7 @@ use pallet_evm::AddressMapping as PalletEVMAddressMapping; use parity_scale_codec::Encode; use precompile_utils::prelude::keccak256; -use peaq_primitives_xcm::{evm::EvmAddress, to_bytes, AccountIndex}; +use peaq_primitives_xcm::{evm::EvmAddress, AccountIndex}; use sp_core::{H160, H256}; use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256}; use sp_runtime::{ @@ -285,7 +285,8 @@ impl Pallet { let mut domain_seperator_msg = domain_hash.to_vec(); domain_seperator_msg.extend_from_slice(&keccak256!("Peaq EVM claim")); // name domain_seperator_msg.extend_from_slice(&keccak256!("1")); // version - domain_seperator_msg.extend_from_slice(&to_bytes(T::ChainId::get())); // chain id + // TODO ensure this .into() converts into correct endian format + domain_seperator_msg.extend_from_slice(T::ChainId::get().into()); // chain id domain_seperator_msg.extend_from_slice( frame_system::Pallet::::block_hash(BlockNumberFor::::zero()).as_ref(), ); // genesis block hash diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index f9ad86a19..8d0df9aa9 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -100,6 +100,12 @@ impl frame_system::Config for Test { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PostTransactions = (); + type PreInherents = (); + type SingleBlockMigrations = (); } parameter_types! { pub const ExistentialDeposit: Balance = 1; @@ -120,6 +126,7 @@ impl pallet_balances::Config for Test { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } impl pallet_aura::Config for Test { @@ -198,6 +205,7 @@ impl pallet_session::Config for Test { type SessionHandler = ::KeyTypeIdProviders; type Keys = MockSessionKeys; type WeightInfo = (); + type DisablingStrategy = (); } parameter_types! { @@ -266,7 +274,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances.clone() } + pallet_balances::GenesisConfig:: { balances: self.balances.clone(), ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); @@ -290,7 +298,7 @@ impl ExtBuilder { // NOTE: this will initialize the aura authorities // through OneSessionHandler::on_genesis_session - pallet_session::GenesisConfig:: { keys: session_keys } + pallet_session::GenesisConfig:: { keys: session_keys, ..Default::default() } .assimilate_storage(&mut t) .expect("Session Pallet's storage can be assimilated"); diff --git a/pallets/parachain-staking/src/tests.rs b/pallets/parachain-staking/src/tests.rs index 0b3dff9f6..049171baa 100644 --- a/pallets/parachain-staking/src/tests.rs +++ b/pallets/parachain-staking/src/tests.rs @@ -2067,11 +2067,11 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(3, 100)); let lock = BalanceLock { id: STAKING_ID, amount: 100, reasons: Reasons::All }; assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // join delegators and revoke again --> consume unstaking at block 3 roll_to(2, vec![]); @@ -2080,28 +2080,28 @@ fn unlock_unstaked() { unstaking.remove(&3); assert_ok!(unstaking.try_insert(4, 100)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // should reduce unlocking but not unlock anything roll_to(3, vec![]); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(4, vec![]); unstaking.remove(&4); - assert_eq!(Balances::locks(2), vec![lock]); + assert_eq!(Balances::locks(&2), vec![lock]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![]); + assert_eq!(Balances::locks(&2), vec![]); }); // less_unstaked_than_restaked @@ -2124,11 +2124,11 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(3, 10)); let mut lock = BalanceLock { id: STAKING_ID, amount: 10, reasons: Reasons::All }; assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // join delegators and revoke again roll_to(2, vec![]); @@ -2138,27 +2138,27 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(4, 100)); lock.amount = 100; assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(3, vec![]); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // unlock unstaked, remove lock, empty unlocking roll_to(4, vec![]); unstaking.remove(&4); - assert_eq!(Balances::locks(2), vec![lock]); + assert_eq!(Balances::locks(&2), vec![lock]); assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![]); + assert_eq!(Balances::locks(&2), vec![]); }); // more_unstaked_than_restaked @@ -2183,11 +2183,11 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(3, 100)); let mut lock = BalanceLock { id: STAKING_ID, amount: 100, reasons: Reasons::All }; assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // join delegators and revoke again roll_to(2, vec![]); @@ -2196,30 +2196,30 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(3, 90)); assert_ok!(unstaking.try_insert(4, 10)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // shouldn't be able to unlock anything assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // should reduce unlocking but not unlock anything roll_to(3, vec![]); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // should be able to unlock 90 of 100 from unstaking assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); unstaking.remove(&3); lock.amount = 10; assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(4, vec![]); - assert_eq!(Balances::locks(2), vec![lock]); + assert_eq!(Balances::locks(&2), vec![lock]); // should be able to unlock 10 of remaining 10 assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); unstaking.remove(&4); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(2), vec![]); + assert_eq!(Balances::locks(&2), vec![]); }); // test_stake_less @@ -2257,8 +2257,8 @@ fn unlock_unstaked() { > = BoundedBTreeMap::new(); assert_ok!(unstaking.try_insert(3, 60)); let mut lock = BalanceLock { id: STAKING_ID, amount: 200, reasons: Reasons::All }; - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); // shouldn't be able to unlock anything @@ -2266,15 +2266,15 @@ fn unlock_unstaked() { assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(2, vec![]); assert_ok!(StakePallet::candidate_stake_less(RuntimeOrigin::signed(1), 10),); assert_ok!(StakePallet::delegator_stake_less(RuntimeOrigin::signed(2), 1, 10),); assert_ok!(unstaking.try_insert(4, 10)); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); // shouldn't be able to unlock anything @@ -2282,16 +2282,16 @@ fn unlock_unstaked() { assert_ok!(StakePallet::unlock_unstaked(RuntimeOrigin::signed(2), 2)); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(3, vec![]); assert_ok!(StakePallet::candidate_stake_less(RuntimeOrigin::signed(1), 10),); assert_ok!(StakePallet::delegator_stake_less(RuntimeOrigin::signed(2), 1, 10),); assert_ok!(unstaking.try_insert(5, 10)); assert_ok!(unstaking.try_insert(5, 10)); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); // should unlock 60 @@ -2301,8 +2301,8 @@ fn unlock_unstaked() { unstaking.remove(&3); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); // reach MaxUnstakeRequests roll_to(4, vec![]); @@ -2319,8 +2319,8 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(8, 10)); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); roll_to(7, vec![]); assert_noop!( @@ -2340,8 +2340,8 @@ fn unlock_unstaked() { lock.amount = 100; assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock.clone()]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock.clone()]); assert_ok!(StakePallet::candidate_stake_less(RuntimeOrigin::signed(1), 40)); assert_ok!(StakePallet::delegator_stake_less(RuntimeOrigin::signed(2), 1, 40)); assert_ok!(unstaking.try_insert(9, 40)); @@ -2351,8 +2351,8 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(9, 20)); assert_eq!(StakePallet::unstaking(1), unstaking); assert_eq!(StakePallet::unstaking(2), unstaking); - assert_eq!(Balances::locks(1), vec![lock.clone()]); - assert_eq!(Balances::locks(2), vec![lock]); + assert_eq!(Balances::locks(&1), vec![lock.clone()]); + assert_eq!(Balances::locks(&2), vec![lock]); }); } diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index bbb316cc0..eef26bb60 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -73,6 +73,12 @@ impl frame_system::Config for Test { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PostTransactions = (); + type PreInherents = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -96,6 +102,7 @@ impl pallet_balances::Config for Test { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } type AssetId = u128; diff --git a/primitives/xcm/src/evm.rs b/primitives/xcm/src/evm.rs index fbac9d2d3..9ad133820 100644 --- a/primitives/xcm/src/evm.rs +++ b/primitives/xcm/src/evm.rs @@ -7,10 +7,10 @@ use sp_std::marker::PhantomData; /// Evm Address. pub type EvmAddress = sp_core::H160; -/// Convert any type that implements Into into byte representation ([u8, 32]) -pub fn to_bytes>(value: T) -> [u8; 32] { - Into::<[u8; 32]>::into(value.into()) -} +// /// Convert any type that implements Into into byte representation ([u8, 32]) +// pub fn to_bytes>(value: T) -> [u8; 32] { +// Into::<[u8; 32]>::into(value.into()) +// } /// Revert opt code. It's inserted at the precompile addresses, to make them functional in EVM. pub const EVM_REVERT_CODE: &[u8] = &[0x60, 0x00, 0x60, 0x00, 0xfd]; From c7127802ec42e9a5531d74cb011a0206c0eff3a5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 26 May 2025 16:35:45 +0500 Subject: [PATCH 04/98] fixed pallets, use xcm V5 in pallet xc-asset-config --- pallets/block-reward/src/mock.rs | 8 ++ pallets/block-reward/src/types.rs | 1 + pallets/inflation-manager/src/mock.rs | 9 ++- pallets/inflation-manager/src/types.rs | 4 +- pallets/xc-asset-config/src/lib.rs | 18 ++--- pallets/xc-asset-config/src/mock.rs | 2 +- pallets/xc-asset-config/src/tests.rs | 103 +++++++++++++------------ 7 files changed, 81 insertions(+), 64 deletions(-) diff --git a/pallets/block-reward/src/mock.rs b/pallets/block-reward/src/mock.rs index f7a403d69..3d1c3ac57 100644 --- a/pallets/block-reward/src/mock.rs +++ b/pallets/block-reward/src/mock.rs @@ -64,6 +64,12 @@ impl frame_system::Config for TestRuntime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PostTransactions = (); + type PreInherents = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -86,6 +92,7 @@ impl pallet_balances::Config for TestRuntime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } parameter_types! { @@ -184,6 +191,7 @@ impl ExternalityBuilder { // This will cause some initial issuance pallet_balances::GenesisConfig:: { balances: vec![(1, 9000), (2, 800), (3, 10000)], + ..Default::default() } .assimilate_storage(&mut storage) .ok(); diff --git a/pallets/block-reward/src/types.rs b/pallets/block-reward/src/types.rs index 140ee9c6f..562ceaf5f 100644 --- a/pallets/block-reward/src/types.rs +++ b/pallets/block-reward/src/types.rs @@ -101,6 +101,7 @@ impl Default for RewardDistributionConfigV0 { MaxEncodedLen, Serialize, Deserialize, + DecodeWithMemTracking )] pub struct RewardDistributionConfig { /// Base percentage of reward that goes to treasury diff --git a/pallets/inflation-manager/src/mock.rs b/pallets/inflation-manager/src/mock.rs index cca265d9d..7f694c0ac 100644 --- a/pallets/inflation-manager/src/mock.rs +++ b/pallets/inflation-manager/src/mock.rs @@ -62,6 +62,12 @@ impl frame_system::Config for TestRuntime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PostTransactions = (); + type PreInherents = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -84,6 +90,7 @@ impl pallet_balances::Config for TestRuntime { type MaxFreezes = (); type RuntimeHoldReason = (); type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } parameter_types! { @@ -151,7 +158,7 @@ impl ExternalityBuilder { frame_system::GenesisConfig::::default().build_storage().unwrap(); // This will cause some initial issuance - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut storage) .ok(); inflation_manager::GenesisConfig:: { _phantom: Default::default() } diff --git a/pallets/inflation-manager/src/types.rs b/pallets/inflation-manager/src/types.rs index 5ae687c85..a152ee106 100644 --- a/pallets/inflation-manager/src/types.rs +++ b/pallets/inflation-manager/src/types.rs @@ -7,7 +7,7 @@ use sp_runtime::Perbill; pub type AccountIdOf = ::AccountId; pub type BalanceOf = <::Currency as Currency>>::Balance; -#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen)] +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen, DecodeWithMemTracking)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct InflationParameters { pub inflation_rate: Perbill, @@ -23,7 +23,7 @@ impl Default for InflationParameters { } } -#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen)] +#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen, DecodeWithMemTracking)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct InflationConfiguration { // the invariant rates for inflation and disinflation going forward diff --git a/pallets/xc-asset-config/src/lib.rs b/pallets/xc-asset-config/src/lib.rs index d328eddfc..9c67d8fc2 100644 --- a/pallets/xc-asset-config/src/lib.rs +++ b/pallets/xc-asset-config/src/lib.rs @@ -81,7 +81,7 @@ pub mod pallet { use frame_system::pallet_prelude::*; use parity_scale_codec::HasCompact; use sp_std::boxed::Box; - use xcm::{v4::Location, VersionedLocation}; + use xcm::{v5::Location, VersionedLocation}; const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); @@ -230,9 +230,9 @@ pub mod pallet { Error::::AssetAlreadyRegistered ); - let v4_asset_loc = Location::try_from(*asset_location) + let v5_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::LocationNotSupported)?; - let asset_location = VersionedLocation::V4(v4_asset_loc); + let asset_location = VersionedLocation::V5(v5_asset_loc); ensure!( asset_location != T::NativeAssetLocation::get().into_versioned(), @@ -257,9 +257,9 @@ pub mod pallet { ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; - let v4_asset_loc = Location::try_from(*asset_location) + let v5_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::LocationNotSupported)?; - let asset_location = VersionedLocation::V4(v4_asset_loc); + let asset_location = VersionedLocation::V5(v5_asset_loc); ensure!( asset_location != T::NativeAssetLocation::get().into_versioned(), @@ -290,9 +290,9 @@ pub mod pallet { ensure!(asset_id != T::NativeAssetId::get(), Error::::NativeAssetRelated); - let v4_asset_loc = Location::try_from(*new_asset_location) + let v5_asset_loc = Location::try_from(*new_asset_location) .map_err(|_| Error::::LocationNotSupported)?; - let new_asset_location = VersionedLocation::V4(v4_asset_loc); + let new_asset_location = VersionedLocation::V5(v5_asset_loc); ensure!( new_asset_location != T::NativeAssetLocation::get().into_versioned(), @@ -334,9 +334,9 @@ pub mod pallet { ) -> DispatchResult { T::ManagerOrigin::ensure_origin(origin)?; - let v4_asset_loc = Location::try_from(*asset_location) + let v5_asset_loc = Location::try_from(*asset_location) .map_err(|_| Error::::LocationNotSupported)?; - let asset_location = VersionedLocation::V4(v4_asset_loc); + let asset_location = VersionedLocation::V5(v5_asset_loc); ensure!( asset_location != T::NativeAssetLocation::get().into_versioned(), diff --git a/pallets/xc-asset-config/src/mock.rs b/pallets/xc-asset-config/src/mock.rs index eef26bb60..5b1d679fc 100644 --- a/pallets/xc-asset-config/src/mock.rs +++ b/pallets/xc-asset-config/src/mock.rs @@ -17,7 +17,7 @@ // along with Astar. If not, see . use crate::{self as pallet_xc_asset_config}; -use xcm::{latest::prelude::Junction::GeneralKey, v4::Location}; +use xcm::{latest::prelude::Junction::GeneralKey, v5::Location}; use frame_support::{construct_runtime, parameter_types, weights::Weight}; use sp_core::H256; diff --git a/pallets/xc-asset-config/src/tests.rs b/pallets/xc-asset-config/src/tests.rs index 4749646cf..36c08ed4d 100644 --- a/pallets/xc-asset-config/src/tests.rs +++ b/pallets/xc-asset-config/src/tests.rs @@ -23,7 +23,7 @@ use super::{ use frame_support::{assert_noop, assert_ok, WeakBoundedVec}; use mock::*; use sp_runtime::traits::BadOrigin; -use xcm::{latest::prelude::*, v4::Location, VersionedLocation}; +use xcm::{latest::prelude::*, v5::Location, VersionedLocation}; #[test] fn only_root_as_origin() { @@ -352,7 +352,7 @@ fn different_xcm_versions_are_ok() { ExternalityBuilder::build().execute_with(|| { // Prepare location and Id let legacy_asset_location = xcm::v3::MultiLocation::parent(); - let new_asset_location = xcm::v4::Location::parent(); + let new_asset_location = xcm::v5::Location::parent(); let asset_id = 17; // Register asset using legacy multilocation @@ -367,52 +367,53 @@ fn different_xcm_versions_are_ok() { }) } -#[test] -fn incompatible_versioned_multilocations_are_not_ok() { - ExternalityBuilder::build().execute_with(|| { - // Location that cannot be converted from v2 to v4 - // all v3 are compatible with v4 - let incompatible_asset_location = xcm::v2::MultiLocation { - parents: 1, - interior: xcm::v2::Junctions::X1(xcm::v2::Junction::GeneralKey( - WeakBoundedVec::<_, _>::force_from([123_u8; 33].to_vec(), None), - )), - }; - let asset_id = 123; - - assert_noop!( - XcAssetConfig::register_asset_location( - RuntimeOrigin::root(), - Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), - asset_id - ), - Error::::LocationNotSupported - ); - - assert_noop!( - XcAssetConfig::set_asset_units_per_second( - RuntimeOrigin::root(), - Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), - 12345, - ), - Error::::LocationNotSupported - ); - - assert_noop!( - XcAssetConfig::change_existing_asset_location( - RuntimeOrigin::root(), - Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), - 12345, - ), - Error::::LocationNotSupported - ); - - assert_noop!( - XcAssetConfig::remove_payment_asset( - RuntimeOrigin::root(), - Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), - ), - Error::::LocationNotSupported - ); - }) -} +// All things V2 are purged from polkadot-sdk +// #[test] +// fn incompatible_versioned_multilocations_are_not_ok() { +// ExternalityBuilder::build().execute_with(|| { +// // Location that cannot be converted from v2 to v4 +// // all v3 are compatible with v4 +// let incompatible_asset_location = xcm::v2::MultiLocation { +// parents: 1, +// interior: xcm::v2::Junctions::X1(xcm::v2::Junction::GeneralKey( +// WeakBoundedVec::<_, _>::force_from([123_u8; 33].to_vec(), None), +// )), +// }; +// let asset_id = 123; + +// assert_noop!( +// XcAssetConfig::register_asset_location( +// RuntimeOrigin::root(), +// Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), +// asset_id +// ), +// Error::::LocationNotSupported +// ); + +// assert_noop!( +// XcAssetConfig::set_asset_units_per_second( +// RuntimeOrigin::root(), +// Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), +// 12345, +// ), +// Error::::LocationNotSupported +// ); + +// assert_noop!( +// XcAssetConfig::change_existing_asset_location( +// RuntimeOrigin::root(), +// Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), +// 12345, +// ), +// Error::::LocationNotSupported +// ); + +// assert_noop!( +// XcAssetConfig::remove_payment_asset( +// RuntimeOrigin::root(), +// Box::new(VersionedLocation::V2(incompatible_asset_location.clone())), +// ), +// Error::::LocationNotSupported +// ); +// }) +// } From c70052c69afc4673baa86b40bb31912d782ebac2 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 26 May 2025 19:41:08 +0500 Subject: [PATCH 05/98] (WIP) fixing precompile utils and primitives --- precompiles/utils/src/evm/handle.rs | 8 ++++++++ precompiles/utils/src/precompile_set.rs | 8 ++++++++ precompiles/utils/src/solidity/codec/mod.rs | 4 +--- precompiles/utils/src/solidity/codec/native.rs | 4 ++-- precompiles/utils/src/solidity/codec/xcm.rs | 18 ------------------ precompiles/utils/src/substrate.rs | 5 +++-- precompiles/utils/src/testing/handle.rs | 12 ++++++++++++ precompiles/utils/src/tests.rs | 8 ++++---- runtime/common/src/lib.rs | 4 +++- runtime/common/src/payment.rs | 17 ++++++++++++++--- runtime/common/src/wrapper.rs | 15 ++++++++++----- 11 files changed, 65 insertions(+), 38 deletions(-) diff --git a/precompiles/utils/src/evm/handle.rs b/precompiles/utils/src/evm/handle.rs index 639d10225..429799686 100644 --- a/precompiles/utils/src/evm/handle.rs +++ b/precompiles/utils/src/evm/handle.rs @@ -193,6 +193,14 @@ mod tests { } fn refund_external_cost(&mut self, _ref_time: Option, _proof_size: Option) {} + + fn origin(&self) -> sp_core::H160 { + unimplemented!() + } + + fn is_contract_being_constructed(&self, address: sp_core::H160) -> bool { + unimplemented!() + } } #[test] diff --git a/precompiles/utils/src/precompile_set.rs b/precompiles/utils/src/precompile_set.rs index 6ea7db956..639bd6e47 100644 --- a/precompiles/utils/src/precompile_set.rs +++ b/precompiles/utils/src/precompile_set.rs @@ -477,6 +477,14 @@ impl<'a, H: PrecompileHandle> PrecompileHandle for RestrictiveHandle<'a, H> { fn refund_external_cost(&mut self, ref_time: Option, proof_size: Option) { self.handle.refund_external_cost(ref_time, proof_size) } + + fn origin(&self) -> H160 { + self.handle.origin() + } + + fn is_contract_being_constructed(&self, address: H160) -> bool { + self.handle.is_contract_being_constructed(address) + } } /// Allows to know if a precompile is active or not. diff --git a/precompiles/utils/src/solidity/codec/mod.rs b/precompiles/utils/src/solidity/codec/mod.rs index a32c4e503..94f0fc934 100644 --- a/precompiles/utils/src/solidity/codec/mod.rs +++ b/precompiles/utils/src/solidity/codec/mod.rs @@ -266,9 +266,7 @@ impl Writer { // array, which is corrected by `offset_shift`. let free_space_offset = output.len() - offset_chunk.offset_shift; - // Override dummy offset to the offset it will be in the final output. - U256::from(free_space_offset) - .to_big_endian(&mut output[offset_position..offset_position_end]); + output[offset_position..offset_position_end].copy_from_slice(U256::from(free_space_offset).to_big_endian().as_ref()); // Append this data at the end of the current output. output.append(&mut offset_chunk.data); diff --git a/precompiles/utils/src/solidity/codec/native.rs b/precompiles/utils/src/solidity/codec/native.rs index 07f7a180f..9af8e1462 100644 --- a/precompiles/utils/src/solidity/codec/native.rs +++ b/precompiles/utils/src/solidity/codec/native.rs @@ -173,8 +173,8 @@ impl Codec for U256 { } fn write(writer: &mut Writer, value: Self) { - let mut buffer = [0u8; 32]; - value.to_big_endian(&mut buffer); + let buffer: [u8; 32] = value.to_big_endian(); + // value.to_big_endian(&mut buffer); writer.data.extend_from_slice(&buffer); } diff --git a/precompiles/utils/src/solidity/codec/xcm.rs b/precompiles/utils/src/solidity/codec/xcm.rs index 8e08282d9..ed67785f0 100644 --- a/precompiles/utils/src/solidity/codec/xcm.rs +++ b/precompiles/utils/src/solidity/codec/xcm.rs @@ -70,21 +70,6 @@ pub(crate) fn network_id_to_bytes(network_id: Option) -> Vec { encoded.append(&mut block_hash.into()); encoded }, - Some(NetworkId::Westend) => { - encoded.push(5u8); - encoded.push(4u8); - encoded - }, - Some(NetworkId::Rococo) => { - encoded.push(6u8); - encoded.push(5u8); - encoded - }, - Some(NetworkId::Wococo) => { - encoded.push(7u8); - encoded.push(6u8); - encoded - }, Some(NetworkId::Ethereum { chain_id }) => { encoded.push(8u8); encoded.push(7u8); @@ -143,9 +128,6 @@ pub(crate) fn network_id_from_bytes(encoded_bytes: Vec) -> MayRevert Ok(Some(NetworkId::Westend)), - 6 => Ok(Some(NetworkId::Rococo)), - 7 => Ok(Some(NetworkId::Wococo)), 8 => { let mut chain_id: [u8; 8] = Default::default(); chain_id.copy_from_slice(encoded_network_id.read_raw_bytes(8)?); diff --git a/precompiles/utils/src/substrate.rs b/precompiles/utils/src/substrate.rs index d355c11e9..bd279c9b1 100644 --- a/precompiles/utils/src/substrate.rs +++ b/precompiles/utils/src/substrate.rs @@ -113,7 +113,8 @@ where let call = Runtime::RuntimeCall::from(call); let dispatch_info = call.get_dispatch_info(); - Self::reocrd_external_cost(handle, dispatch_info.weight, storage_growth) + // TODO call_weight vs extension_weight? + Self::reocrd_external_cost(handle, dispatch_info.call_weight, storage_growth) .map_err(TryDispatchError::Evm)?; // Dispatch call. @@ -124,7 +125,7 @@ where let post_dispatch_info = using_precompile_handle(handle, || call.dispatch(origin)) .map_err(|e| TryDispatchError::Substrate(e.error))?; - Self::refund_weight_v2_cost(handle, dispatch_info.weight, post_dispatch_info.actual_weight) + Self::refund_weight_v2_cost(handle, dispatch_info.call_weight, post_dispatch_info.actual_weight) .map_err(TryDispatchError::Evm)?; Ok(post_dispatch_info) diff --git a/precompiles/utils/src/testing/handle.rs b/precompiles/utils/src/testing/handle.rs index ffa937e6f..16d54f28d 100644 --- a/precompiles/utils/src/testing/handle.rs +++ b/precompiles/utils/src/testing/handle.rs @@ -201,4 +201,16 @@ impl PrecompileHandle for MockHandle { } fn refund_external_cost(&mut self, _ref_time: Option, _proof_size: Option) {} + + fn origin(&self) -> H160 { + // TODO address or caller? + self.context.address + } + + fn is_contract_being_constructed(&self, address: H160) -> bool { + // In the mock handle, we assume that no contract is being constructed. + // This can be overridden in tests if needed. + false + } + } diff --git a/precompiles/utils/src/tests.rs b/precompiles/utils/src/tests.rs index e68c0946a..d66310a4f 100644 --- a/precompiles/utils/src/tests.rs +++ b/precompiles/utils/src/tests.rs @@ -123,8 +123,7 @@ fn write_u256() { let writer_output = Writer::new().write(value).build(); - let mut expected_output = [0u8; 32]; - value.to_big_endian(&mut expected_output); + let expected_output = value.to_big_endian(); assert_eq!(writer_output, expected_output); } @@ -353,8 +352,9 @@ fn read_address_array_size_too_big() { ]; let mut writer_output = Writer::new().write(array).build(); - U256::from(6u32).to_big_endian(&mut writer_output[0x20..0x40]); - + let be_val = U256::from(6u32).to_big_endian(); + writer_output[0x20..0x40].copy_from_slice(&be_val); + let mut reader = Reader::new(&writer_output); match reader.read::>().in_field("field") { diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index 49983bf62..8cf4520bb 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -1,7 +1,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![recursion_limit = "256"] -use frame_support::{pallet_prelude::*, parameter_types}; +use frame_support::{pallet_prelude::*, parameter_types, traits::ExistenceRequirement}; use orml_traits::MultiCurrency; use sp_runtime::traits::Convert; use sp_std::{convert::TryFrom, fmt::Debug, marker::PhantomData, vec::Vec}; @@ -107,6 +107,7 @@ where amount .try_into() .map_err(|_| DispatchError::Other("convert amount in local transfer"))?, + ExistenceRequirement::KeepAlive, ) } @@ -153,6 +154,7 @@ where amount .try_into() .map_err(|_| DispatchError::Other("convert amount in local withdraw"))?, + ExistenceRequirement::AllowDeath )?; Ok(amount) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index e12f77cce..2dd13e6b0 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -132,6 +132,17 @@ where } Ok(()) } + + fn can_withdraw_fee( + who: &::AccountId, + call: &::RuntimeCall, + dispatch_info: &DispatchInfoOf<::RuntimeCall>, + fee: Self::Balance, + tip: Self::Balance, + ) -> Result<(), TransactionValidityError> { + // TODO what to do with this? + Ok(()) + } } /// Individual trait to handle payments in non-local currencies. The intention is to keep it as @@ -243,9 +254,9 @@ where { type LiquidityInfo = Option>; - fn can_withdraw(who: &H160, amount: U256) -> Result<(), pallet_evm::Error> { - EVMCurrencyAdapter::<::Currency, OU>::can_withdraw(who, amount) - } + // fn can_withdraw(who: &H160, amount: U256) -> Result<(), pallet_evm::Error> { + // EVMCurrencyAdapter::<::Currency, OU>::can_withdraw(who, amount) + // } fn withdraw_fee(who: &H160, fee: U256) -> Result> { EVMCurrencyAdapter::<::Currency, OU>::withdraw_fee(who, fee) diff --git a/runtime/common/src/wrapper.rs b/runtime/common/src/wrapper.rs index 29e738005..12e65e1f9 100644 --- a/runtime/common/src/wrapper.rs +++ b/runtime/common/src/wrapper.rs @@ -92,12 +92,13 @@ where from: &T::AccountId, to: &T::AccountId, amount: Self::Balance, + existense_requirement: ExistenceRequirement, ) -> DispatchResult { if amount.is_zero() || from == to { return Ok(()); } if asset_id == GetNativeAssetId::get() { - NativeCurrency::transfer(from, to, amount) + NativeCurrency::transfer(from, to, amount, existense_requirement) } else { // Keep alive setup as true let out = MultiCurrencies::transfer(asset_id, from, to, amount, Preservation::Preserve); @@ -133,17 +134,19 @@ where asset_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance, + existense_requirement: ExistenceRequirement ) -> DispatchResult { if amount.is_zero() { return Ok(()); } if asset_id == GetNativeAssetId::get() { - NativeCurrency::withdraw(who, amount) + NativeCurrency::withdraw(who, amount, existense_requirement) } else { let out = MultiCurrencies::burn_from( asset_id, who, amount, + Preservation::Protect, // TODO What does this do? Precision::Exact, Fortitude::Polite, ); @@ -173,7 +176,7 @@ where } else { // We cannot slash the token because it didn't implemnt that... // If error happens, will return 0 - MultiCurrencies::burn_from(asset_id, who, amount, Precision::Exact, Fortitude::Polite) + MultiCurrencies::burn_from(asset_id, who, amount, Preservation::Expendable, Precision::Exact, Fortitude::Polite) .unwrap_or(Zero::zero()) } } @@ -219,13 +222,14 @@ where Currency::ensure_can_withdraw(who, amount, WithdrawReasons::all(), new_balance) } - fn transfer(from: &AccountId, to: &AccountId, amount: Self::Balance) -> DispatchResult { + fn transfer(from: &AccountId, to: &AccountId, amount: Self::Balance, _existence_requirement: ExistenceRequirement) -> DispatchResult { log::debug!( "PeaqNativeCurrencyWrapper: transfer: from: {:?}, to: {:?}, amount: {:?}", from, to, amount ); + // TODO already set to KeepAlive, do we need to provide function argument also? Currency::transfer(from, to, amount, ExistenceRequirement::KeepAlive) } @@ -238,7 +242,8 @@ where Ok(()) } - fn withdraw(who: &AccountId, amount: Self::Balance) -> DispatchResult { + fn withdraw(who: &AccountId, amount: Self::Balance, _existence_requirement: ExistenceRequirement) -> DispatchResult { + // TODO already set to KeepAlive, do we need to provide function argument also? Currency::withdraw(who, amount, WithdrawReasons::all(), ExistenceRequirement::AllowDeath) .map(|_| ()) } From fb2e0931052c09542f37f63851f39cc26d8fd0e0 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Sat, 31 May 2025 19:59:56 +0500 Subject: [PATCH 06/98] (WIP) fixed tx wrapper --- pallets/address-unification/src/lib.rs | 2 +- runtime/common/src/payment.rs | 30 +++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pallets/address-unification/src/lib.rs b/pallets/address-unification/src/lib.rs index d25918349..aa8c57a89 100644 --- a/pallets/address-unification/src/lib.rs +++ b/pallets/address-unification/src/lib.rs @@ -286,7 +286,7 @@ impl Pallet { domain_seperator_msg.extend_from_slice(&keccak256!("Peaq EVM claim")); // name domain_seperator_msg.extend_from_slice(&keccak256!("1")); // version // TODO ensure this .into() converts into correct endian format - domain_seperator_msg.extend_from_slice(T::ChainId::get().into()); // chain id + domain_seperator_msg.extend_from_slice(&T::ChainId::get().encode()); // chain id domain_seperator_msg.extend_from_slice( frame_system::Pallet::::block_hash(BlockNumberFor::::zero()).as_ref(), ); // genesis block hash diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 2dd13e6b0..5bbe834e7 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -27,12 +27,14 @@ use peaq_primitives_xcm::AssetId as PeaqAssetId; use zenlink_protocol::{ AssetBalance, AssetId as ZenlinkAssetId, Config as ZenProtConfig, ExportZenlink, }; +use pallet_evm::{AccountIdOf as EVMAccountIdOf}; use crate::{log, log_icon, log_internal}; type BalanceOf = ::AccountId>>::Balance; type BalanceOfA = >::Balance; type NegativeImbalanceOf = ::AccountId>>::NegativeImbalance; +type EVMNegativeImbalanceOf = >>::NegativeImbalance; /// Peaq's Currency Adapter to apply EoT-Fee and to enable withdrawal from foreign currencies. pub struct PeaqMultiCurrenciesOnChargeTransaction( @@ -244,19 +246,19 @@ pub trait PeaqMultiCurrenciesPaymentConvert { } } -pub struct OnChargeEVMTransaction(sp_std::marker::PhantomData); -impl OnChargeEVMTransactionT for OnChargeEVMTransaction +pub struct OnChargeEVMTransaction(sp_std::marker::PhantomData<(C, OU)>); +impl OnChargeEVMTransactionT for OnChargeEVMTransaction where - T: pallet_evm::Config + frame_system::Config, - T::Currency: Balanced, - OU: OnUnbalanced>, - U256: UniqueSaturatedInto>, + T: pallet_evm::Config, + C: Currency>, + C::PositiveImbalance: + Imbalance<>>::Balance, Opposite = C::NegativeImbalance>, + C::NegativeImbalance: + Imbalance<>>::Balance, Opposite = C::PositiveImbalance>, + OU: OnUnbalanced>, + U256: UniqueSaturatedInto<>>::Balance>, { - type LiquidityInfo = Option>; - - // fn can_withdraw(who: &H160, amount: U256) -> Result<(), pallet_evm::Error> { - // EVMCurrencyAdapter::<::Currency, OU>::can_withdraw(who, amount) - // } + type LiquidityInfo = Option>; fn withdraw_fee(who: &H160, fee: U256) -> Result> { EVMCurrencyAdapter::<::Currency, OU>::withdraw_fee(who, fee) @@ -267,10 +269,8 @@ where corrected_fee: U256, base_fee: U256, already_withdrawn: Self::LiquidityInfo, - ) -> Result> { - ::Currency, OU> as OnChargeEVMTransactionT< - T, - >>::correct_and_deposit_fee(who, corrected_fee, base_fee, already_withdrawn) + ) -> Self::LiquidityInfo { + as OnChargeEVMTransactionT>::correct_and_deposit_fee(who, corrected_fee, base_fee, already_withdrawn) } fn pay_priority_fee(tip: Self::LiquidityInfo) { From 30b8d8de8874c55cb33541a875f63f7fae93f9c5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Sun, 1 Jun 2025 23:42:23 +0500 Subject: [PATCH 07/98] (WIP) temp fix to get peaq dev runtime workingish --- Cargo.lock | 3242 ++++++++++++--------------- runtime/peaq-dev/Cargo.toml | 44 +- runtime/peaq-dev/src/lib.rs | 2 +- runtime/peaq-dev/src/precompiles.rs | 144 +- 4 files changed, 1552 insertions(+), 1880 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3996e9c47..3501541e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,10 +46,10 @@ dependencies = [ "peaq-primitives-xcm", "precompile-utils", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -711,9 +711,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" dependencies = [ "async-lock 3.4.0", "cfg-if", @@ -721,8 +721,8 @@ dependencies = [ "futures-io", "futures-lite 2.6.0", "parking", - "polling 3.7.4", - "rustix 0.38.44", + "polling 3.8.0", + "rustix 1.0.7", "slab", "tracing", "windows-sys 0.59.0", @@ -765,7 +765,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io 2.4.0", + "async-io 2.4.1", "blocking", "futures-lite 2.6.0", ] @@ -789,12 +789,12 @@ dependencies = [ [[package]] name = "async-process" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" dependencies = [ "async-channel 2.3.1", - "async-io 2.4.0", + "async-io 2.4.1", "async-lock 3.4.0", "async-signal", "async-task", @@ -802,23 +802,23 @@ dependencies = [ "cfg-if", "event-listener 5.4.0", "futures-lite 2.6.0", - "rustix 0.38.44", + "rustix 1.0.7", "tracing", ] [[package]] name = "async-signal" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" dependencies = [ - "async-io 2.4.0", + "async-io 2.4.1", "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.44", + "rustix 1.0.7", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -984,17 +984,6 @@ dependencies = [ "serde", ] -[[package]] -name = "binary-merkle-tree" -version = "16.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181f5380e435b8ba6d901f8b16fc8908c6f0f8bea8973113d1c8718d89bb1809" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", -] - [[package]] name = "binary-merkle-tree" version = "16.0.0" @@ -1245,8 +1234,8 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", "staging-xcm", ] @@ -1376,9 +1365,9 @@ checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" [[package]] name = "cc" -version = "1.2.24" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "jobserver", "libc", @@ -1548,9 +1537,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -1558,9 +1547,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -1752,9 +1741,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1910,6 +1899,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -2022,15 +2026,15 @@ name = "cumulus-client-cli" version = "0.22.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.38", + "clap 4.5.39", "parity-scale-codec", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-service", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-runtime", "url", ] @@ -2044,16 +2048,16 @@ dependencies = [ "cumulus-primitives-core", "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-client-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", "tracing", ] @@ -2072,7 +2076,7 @@ dependencies = [ "cumulus-relay-chain-interface", "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -2086,19 +2090,19 @@ dependencies = [ "sc-telemetry", "sc-utils", "schnellru", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-state-machine", "sp-timestamp", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie", "substrate-prometheus-endpoint", "tokio", "tracing", @@ -2122,14 +2126,14 @@ dependencies = [ "sc-consensus", "sc-consensus-babe", "schnellru", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", "sp-timestamp", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie", + "sp-version", "substrate-prometheus-endpoint", "tracing", ] @@ -2142,10 +2146,10 @@ dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "thiserror 1.0.69", ] @@ -2159,15 +2163,15 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures 0.3.31", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-consensus", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -2182,19 +2186,19 @@ dependencies = [ "futures 0.3.31", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain-primitives", "polkadot-primitives", "sc-client-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-version", "tracing", ] @@ -2211,10 +2215,10 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-storage", "tracing", ] @@ -2236,11 +2240,11 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-consensus", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-version", "tracing", ] @@ -2272,12 +2276,12 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-io", + "sp-runtime", "sp-transaction-pool", ] @@ -2293,9 +2297,9 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -2319,15 +2323,15 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-parachains", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "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", @@ -2354,8 +2358,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", "staging-xcm", ] @@ -2376,9 +2380,9 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2389,7 +2393,7 @@ name = "cumulus-primitives-aura" version = "0.17.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-consensus-aura", ] @@ -2403,9 +2407,9 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-runtime", + "sp-trie", "staging-xcm", ] @@ -2418,9 +2422,9 @@ dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-trie", ] [[package]] @@ -2428,9 +2432,9 @@ name = "cumulus-primitives-proof-size-hostfunction" version = "0.12.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-runtime-interface", + "sp-trie", ] [[package]] @@ -2447,7 +2451,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -2456,7 +2460,7 @@ version = "0.19.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "cumulus-primitives-core", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", "sp-timestamp", ] @@ -2471,7 +2475,7 @@ dependencies = [ "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2494,11 +2498,11 @@ dependencies = [ "sc-sysinfo", "sc-telemetry", "sc-tracing", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -2513,10 +2517,10 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "sc-client-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-state-machine", + "sp-version", "thiserror 1.0.69", ] @@ -2545,11 +2549,11 @@ dependencies = [ "sc-service", "sc-tracing", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -2581,11 +2585,11 @@ dependencies = [ "smoldot-light 0.9.0", "sp-authority-discovery", "sp-consensus-babe", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-version", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -2602,9 +2606,9 @@ dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -2681,7 +2685,7 @@ version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f44296c8693e9ea226a48f6a122727f77aa9e9e338380cb021accaeeb7ee279" dependencies = [ - "clap 4.5.38", + "clap 4.5.39", "codespan-reporting", "proc-macro2", "quote", @@ -2751,7 +2755,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] [[package]] @@ -3425,7 +3429,7 @@ dependencies = [ "evm-gasometer", "evm-runtime", "parity-scale-codec", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface", ] [[package]] @@ -3511,8 +3515,8 @@ dependencies = [ "async-trait", "fp-storage", "parity-scale-codec", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -3524,10 +3528,10 @@ dependencies = [ "fp-consensus", "fp-rpc", "sc-consensus", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", + "sp-runtime", "thiserror 2.0.12", ] @@ -3543,13 +3547,13 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-db", "smallvec", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", ] [[package]] @@ -3564,13 +3568,13 @@ dependencies = [ "futures 0.3.31", "futures-timer", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-runtime", ] [[package]] @@ -3607,20 +3611,20 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "schnellru", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-storage", "sp-timestamp", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie", "substrate-prometheus-endpoint", "thiserror 2.0.12", "tokio", @@ -3652,10 +3656,10 @@ dependencies = [ "fp-storage", "parity-scale-codec", "sc-client-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-io", + "sp-runtime", + "sp-storage", ] [[package]] @@ -3728,7 +3732,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "scale-info", ] @@ -3820,10 +3824,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", "staging-xcm", ] @@ -3834,8 +3838,8 @@ source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stabl dependencies = [ "ethereum", "parity-scale-codec", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -3844,8 +3848,8 @@ version = "1.0.0" source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "async-trait", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", ] [[package]] @@ -3872,8 +3876,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -3886,10 +3890,10 @@ dependencies = [ "fp-evm", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -3901,7 +3905,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -3933,13 +3937,13 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-storage", "static_assertions", ] @@ -3951,7 +3955,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.5.38", + "clap 4.5.39", "comfy-table", "cumulus-client-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", @@ -3979,24 +3983,24 @@ dependencies = [ "sc-sysinfo", "serde", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-externalities", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage", "sp-timestamp", "sp-transaction-pool", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie", + "sp-version", + "sp-wasm-interface", "subxt", "subxt-signer", "thiserror 1.0.69", @@ -4038,10 +4042,10 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", "sp-npos-elections", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -4056,10 +4060,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", ] [[package]] @@ -4099,7 +4103,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -4109,7 +4113,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "aquamarine", "array-bytes", - "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "binary-merkle-tree", "bitflags 1.3.2", "docify", "environmental", @@ -4124,22 +4128,22 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-metadata-ir 0.10.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", + "sp-metadata-ir", + "sp-runtime", "sp-staking", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", + "sp-weights", "tt-call", ] @@ -4197,11 +4201,11 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-version", + "sp-weights", ] [[package]] @@ -4214,8 +4218,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -4225,7 +4229,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "docify", "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", ] [[package]] @@ -4235,8 +4239,8 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "frame-support", "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-runtime", ] [[package]] @@ -4435,6 +4439,20 @@ dependencies = [ "byteorder", ] +[[package]] +name = "generator" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.1", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -4551,7 +4569,7 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "portable-atomic", "quanta", "rand 0.8.5", @@ -4719,12 +4737,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - [[package]] name = "hermit-abi" version = "0.5.1" @@ -4784,7 +4796,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 1.0.69", "tinyvec", "tokio", @@ -4792,6 +4804,31 @@ dependencies = [ "url", ] +[[package]] +name = "hickory-proto" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.9.1", + "ring 0.17.14", + "thiserror 2.0.12", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "hickory-resolver" version = "0.24.4" @@ -4800,11 +4837,11 @@ checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" dependencies = [ "cfg-if", "futures-util", - "hickory-proto", + "hickory-proto 0.24.4", "ipconfig", "lru-cache", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "resolv-conf", "smallvec", @@ -4813,6 +4850,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "hickory-resolver" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto 0.25.2", + "ipconfig", + "moka", + "once_cell", + "parking_lot 0.12.4", + "rand 0.9.1", + "resolv-conf", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -4943,7 +5001,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -4991,19 +5049,20 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9f1e950e0d9d1d3c47184416723cf29c0d1f93bd8cccf37e4beb6b44f31710" +checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" dependencies = [ "bytes", "futures-channel", + "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", "libc", "pin-project-lite", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -5162,7 +5221,7 @@ version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ - "async-io 2.4.0", + "async-io 2.4.1", "core-foundation 0.9.4", "fnv", "futures 0.3.31", @@ -5176,7 +5235,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.53.0", ] [[package]] @@ -5307,10 +5366,10 @@ dependencies = [ "peaq-primitives-xcm", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -5363,7 +5422,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.9", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -5573,7 +5632,7 @@ dependencies = [ "futures-util", "hyper 0.14.32", "jsonrpsee-types 0.20.4", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rustc-hash 1.1.0", "serde", @@ -5599,7 +5658,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "jsonrpsee-types 0.23.2", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rustc-hash 1.1.0", "serde", @@ -5623,7 +5682,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "jsonrpsee-types 0.24.9", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rustc-hash 2.1.1", @@ -5859,7 +5918,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -5870,7 +5929,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "rocksdb", "smallvec", @@ -5910,9 +5969,9 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", "windows-targets 0.53.0", @@ -5998,7 +6057,7 @@ dependencies = [ "multihash 0.19.3", "multistream-select", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "quick-protobuf", "rand 0.8.5", @@ -6019,10 +6078,10 @@ checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ "async-trait", "futures 0.3.31", - "hickory-resolver", + "hickory-resolver 0.24.4", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "smallvec", "tracing", ] @@ -6105,14 +6164,14 @@ checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures 0.3.31", - "hickory-proto", + "hickory-proto 0.24.4", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tracing", "void", @@ -6193,12 +6252,12 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-tls", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "quinn", "rand 0.8.5", "ring 0.17.14", "rustls", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 1.0.69", "tokio", "tracing", @@ -6272,7 +6331,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tracing", ] @@ -6323,7 +6382,7 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "rw-stream-sink", "soketto 0.8.1", @@ -6510,9 +6569,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litep2p" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71056c23c896bb0e18113b2d2f1989be95135e6bdeedb0b757422ee21a073eb" +checksum = "14fb10e63363204b89d91e1292df83322fd9de5d7fa76c3d5c78ddc2f8f3efa9" dependencies = [ "async-trait", "bs58", @@ -6521,14 +6580,14 @@ dependencies = [ "ed25519-dalek", "futures 0.3.31", "futures-timer", - "hickory-resolver", + "hickory-resolver 0.25.2", "indexmap 2.9.0", "libc", "mockall", "multiaddr 0.17.1", "multihash 0.17.0", "network-interface", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "prost 0.13.5", "prost-build", @@ -6538,7 +6597,7 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 2.0.12", "tokio", "tokio-stream", @@ -6557,9 +6616,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -6571,6 +6630,19 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lru" version = "0.11.1" @@ -6807,13 +6879,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6832,7 +6904,7 @@ dependencies = [ "hashlink", "lioness", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", @@ -6851,13 +6923,13 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-offchain", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", "sp-consensus-beefy", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-mmr-primitives", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -6868,11 +6940,11 @@ dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", "sp-mmr-primitives", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -6901,6 +6973,25 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "moka" +version = "0.12.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "loom", + "parking_lot 0.12.4", + "portable-atomic", + "rustc_version 0.4.1", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "uuid", +] + [[package]] name = "multi-stash" version = "0.2.0" @@ -7308,11 +7399,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.5.1", "libc", ] @@ -7352,7 +7443,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 2.0.101", @@ -7402,6 +7493,10 @@ name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "once_cell_polyfill" @@ -7478,9 +7573,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -7495,9 +7590,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-runtime", + "sp-std", ] [[package]] @@ -7513,10 +7608,10 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", "staging-xcm", ] @@ -7529,10 +7624,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -7543,8 +7638,8 @@ dependencies = [ "frame-support", "orml-traits", "parity-scale-codec", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-executor", ] @@ -7563,9 +7658,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-executor", ] @@ -7587,11 +7682,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -7604,8 +7699,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -7620,9 +7715,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -7637,8 +7732,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -7652,9 +7747,9 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-aura", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -7667,9 +7762,9 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-authority-discovery", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -7682,7 +7777,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -7699,11 +7794,11 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-babe", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", "sp-staking", ] @@ -7723,10 +7818,10 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-tracing", ] [[package]] @@ -7741,8 +7836,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -7755,8 +7850,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -7773,7 +7868,7 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-staking", ] @@ -7784,7 +7879,7 @@ version = "41.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "array-bytes", - "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "binary-merkle-tree", "frame-benchmarking", "frame-support", "frame-system", @@ -7795,12 +7890,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-consensus-beefy", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -7818,10 +7913,10 @@ dependencies = [ "peaq-primitives-xcm", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -7836,9 +7931,9 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -7853,10 +7948,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-runtime", ] [[package]] @@ -7872,9 +7967,9 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -7892,7 +7987,7 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-staking", ] @@ -7908,9 +8003,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -7934,10 +8029,10 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "wasm-instrument", @@ -7977,8 +8072,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", ] [[package]] @@ -7991,8 +8086,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", "sp-staking", ] @@ -8008,9 +8103,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8027,11 +8122,11 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "strum 0.26.3", ] @@ -8045,7 +8140,7 @@ dependencies = [ "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -8059,10 +8154,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-staking", ] @@ -8084,9 +8179,9 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", + "sp-version", ] [[package]] @@ -8108,9 +8203,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8131,10 +8226,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8156,10 +8251,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8181,10 +8276,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8205,10 +8300,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8225,7 +8320,7 @@ version = "2.0.0-dev" source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "fp-evm", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "substrate-bn", ] @@ -8238,7 +8333,7 @@ dependencies = [ "frame-support", "pallet-evm", "parity-scale-codec", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -8273,10 +8368,10 @@ dependencies = [ "serde", "sha3", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8291,10 +8386,10 @@ dependencies = [ "parity-scale-codec", "peaq-pallet-did", "precompile-utils", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8309,10 +8404,10 @@ dependencies = [ "peaq-pallet-rbac", "peaq-primitives-xcm", "precompile-utils", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8326,10 +8421,10 @@ dependencies = [ "parity-scale-codec", "peaq-pallet-storage", "precompile-utils", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8348,7 +8443,7 @@ source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stabl dependencies = [ "fp-evm", "ripemd", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", ] [[package]] @@ -8369,10 +8464,10 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8396,11 +8491,11 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8430,11 +8525,11 @@ dependencies = [ "scale-info", "serde", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -8453,8 +8548,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", "sp-staking", ] @@ -8471,11 +8566,11 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", "sp-staking", ] @@ -8492,8 +8587,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", ] [[package]] @@ -8508,10 +8603,10 @@ dependencies = [ "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", "sp-staking", ] @@ -8525,9 +8620,9 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8552,9 +8647,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8569,11 +8664,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", ] [[package]] @@ -8588,10 +8683,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -8608,9 +8703,9 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8657,11 +8752,11 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "sp-staking", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing", ] [[package]] @@ -8679,8 +8774,8 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-runtime-interface", "sp-staking", ] @@ -8691,7 +8786,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", ] [[package]] @@ -8705,7 +8800,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-staking", ] @@ -8728,7 +8823,7 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-staking", ] @@ -8745,8 +8840,8 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -8760,9 +8855,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8787,10 +8882,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8803,8 +8898,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", ] [[package]] @@ -8820,9 +8915,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-io", + "sp-runtime", ] [[package]] @@ -8834,9 +8929,9 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8851,9 +8946,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", + "sp-weights", ] [[package]] @@ -8868,13 +8963,13 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "sp-session", "sp-staking", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -8889,7 +8984,7 @@ dependencies = [ "pallet-staking", "parity-scale-codec", "rand 0.8.5", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", ] @@ -8905,9 +9000,9 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-io", + "sp-runtime", ] [[package]] @@ -8926,9 +9021,9 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-io", + "sp-runtime", "sp-staking", ] @@ -8938,7 +9033,7 @@ version = "22.0.1" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "log", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", ] [[package]] @@ -8947,7 +9042,7 @@ version = "26.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-staking", ] @@ -8962,9 +9057,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -8978,8 +9073,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", ] [[package]] @@ -8994,10 +9089,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-storage", "sp-timestamp", ] @@ -9014,9 +9109,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -9030,9 +9125,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -9043,12 +9138,12 @@ dependencies = [ "jsonrpsee 0.24.9", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-weights", ] [[package]] @@ -9058,9 +9153,9 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "pallet-transaction-payment", "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-runtime", + "sp-weights", ] [[package]] @@ -9078,8 +9173,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -9092,9 +9187,9 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] @@ -9107,10 +9202,10 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", ] [[package]] @@ -9124,7 +9219,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -9150,9 +9245,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9170,8 +9265,8 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -9195,11 +9290,11 @@ dependencies = [ "scale-info", "serde", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", ] [[package]] @@ -9223,9 +9318,9 @@ dependencies = [ "polkadot-primitives", "scale-info", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -9258,7 +9353,7 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "siphasher 0.3.11", "snap", @@ -9319,12 +9414,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] [[package]] @@ -9343,9 +9438,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -9399,7 +9494,7 @@ dependencies = [ "peaq-rpc-primitives-debug", "serde", "serde_json", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", ] [[package]] @@ -9445,23 +9540,12 @@ dependencies = [ "pallet-contracts", "pallet-ethereum", "pallet-evm", - "pallet-evm-precompile-assets-erc20", - "pallet-evm-precompile-assets-factory", - "pallet-evm-precompile-balances-erc20", - "pallet-evm-precompile-batch", "pallet-evm-precompile-blake2", "pallet-evm-precompile-bn128", "pallet-evm-precompile-dispatch", "pallet-evm-precompile-modexp", - "pallet-evm-precompile-parachain-staking", - "pallet-evm-precompile-peaq-did", - "pallet-evm-precompile-peaq-rbac", - "pallet-evm-precompile-peaq-storage", "pallet-evm-precompile-sha3fips", "pallet-evm-precompile-simple", - "pallet-evm-precompile-vesting", - "pallet-evm-precompile-xcm-utils", - "pallet-evm-precompile-xtokens", "pallet-insecure-randomness-collective-flip", "pallet-message-queue", "pallet-multisig", @@ -9500,19 +9584,19 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", + "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -9536,10 +9620,10 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "peaq-primitives-ext", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -9639,19 +9723,19 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", + "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -9667,7 +9751,7 @@ name = "peaq-node" version = "4.0.0-polkadot-v1.7.2" dependencies = [ "async-trait", - "clap 4.5.38", + "clap 4.5.39", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -9751,17 +9835,17 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-timestamp", "sp-transaction-pool", @@ -9790,11 +9874,11 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-rpc", + "sp-runtime", + "sp-std", ] [[package]] @@ -9807,11 +9891,11 @@ dependencies = [ "peaq-pallet-did", "peaq-pallet-did-runtime-api", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", ] [[package]] @@ -9821,8 +9905,8 @@ source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-pol dependencies = [ "parity-scale-codec", "peaq-pallet-did", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-std", ] [[package]] @@ -9839,10 +9923,10 @@ dependencies = [ "peaq-pallet-did", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -9859,10 +9943,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -9874,10 +9958,10 @@ dependencies = [ "parity-scale-codec", "peaq-pallet-rbac", "peaq-pallet-rbac-runtime-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-runtime", + "sp-std", ] [[package]] @@ -9887,8 +9971,8 @@ source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-po dependencies = [ "parity-scale-codec", "peaq-pallet-rbac", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-std", ] [[package]] @@ -9902,10 +9986,10 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -9918,11 +10002,11 @@ dependencies = [ "peaq-pallet-storage", "peaq-pallet-storage-runtime-api", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", ] [[package]] @@ -9932,8 +10016,8 @@ source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq dependencies = [ "parity-scale-codec", "peaq-pallet-storage", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-std", ] [[package]] @@ -9947,10 +10031,10 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -9960,9 +10044,9 @@ dependencies = [ "ethereum-types", "evm-tracing-events", "parity-scale-codec", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-runtime-interface", + "sp-std", ] [[package]] @@ -9982,9 +10066,9 @@ dependencies = [ "serde", "serde_json", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -10003,7 +10087,7 @@ dependencies = [ "peaq-rpc-core-types", "serde", "serde_json", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", ] [[package]] @@ -10061,12 +10145,12 @@ dependencies = [ "peaq-rpc-primitives-debug", "sc-client-api", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-io", + "sp-runtime", "tokio", ] @@ -10081,11 +10165,11 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -10095,10 +10179,10 @@ dependencies = [ "ethereum", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -10124,12 +10208,12 @@ dependencies = [ "sc-utils", "serde", "sha3", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-std", "sp-transaction-pool", "substrate-prometheus-endpoint", "tokio", @@ -10151,11 +10235,11 @@ dependencies = [ "sc-transaction-pool-api", "serde", "sha3", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -10254,19 +10338,19 @@ dependencies = [ "scale-info", "sha3", "smallvec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", "sp-consensus-aura", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", + "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -10473,8 +10557,8 @@ dependencies = [ "rand 0.8.5", "sc-network", "schnellru", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-keystore", "thiserror 1.0.69", "tracing-gum", ] @@ -10517,7 +10601,7 @@ name = "polkadot-cli" version = "23.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.38", + "clap 4.5.39", "frame-benchmarking-cli", "futures 0.3.31", "log", @@ -10529,9 +10613,9 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-keyring", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "substrate-build-script-utils", "thiserror 1.0.69", ] @@ -10551,9 +10635,9 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "schnellru", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror 1.0.69", "tokio-util", "tracing-gum", @@ -10566,8 +10650,8 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", ] [[package]] @@ -10586,8 +10670,8 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sc-network", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-keystore", "thiserror 1.0.69", "tracing-gum", ] @@ -10601,8 +10685,8 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-trie", "thiserror 1.0.69", ] @@ -10620,10 +10704,10 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "tracing-gum", ] @@ -10638,14 +10722,14 @@ dependencies = [ "fatality", "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-network", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", "thiserror 1.0.69", "tracing-gum", ] @@ -10663,7 +10747,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "schnellru", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "thiserror 1.0.69", "tracing-gum", ] @@ -10692,10 +10776,10 @@ dependencies = [ "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-consensus", "sp-consensus-slots", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "thiserror 1.0.69", "tracing-gum", ] @@ -10720,7 +10804,7 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "sc-keystore", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", "tracing-gum", ] @@ -10738,7 +10822,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", "thiserror 1.0.69", "tracing-gum", ] @@ -10759,7 +10843,7 @@ dependencies = [ "polkadot-primitives", "polkadot-statement-table", "schnellru", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "thiserror 1.0.69", "tracing-gum", ] @@ -10773,7 +10857,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "thiserror 1.0.69", "tracing-gum", "wasm-timer", @@ -10796,8 +10880,8 @@ dependencies = [ "polkadot-overseer", "polkadot-parachain-primitives", "polkadot-primitives", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-keystore", "tracing-gum", ] @@ -10860,8 +10944,8 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-inherents", "thiserror 1.0.69", "tracing-gum", ] @@ -10917,7 +11001,7 @@ dependencies = [ "rand 0.8.5", "sc-tracing", "slotmap", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "strum 0.26.3", "tempfile", "thiserror 1.0.69", @@ -10934,7 +11018,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "tracing-gum", ] @@ -10955,11 +11039,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-io", + "sp-tracing", "thiserror 1.0.69", "tracing-gum", ] @@ -11015,7 +11099,7 @@ dependencies = [ "sc-authority-discovery", "sc-network", "sc-network-types", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "strum 0.26.3", "thiserror 1.0.69", "tracing-gum", @@ -11036,10 +11120,10 @@ dependencies = [ "sc-keystore", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-babe", "sp-consensus-slots", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "sp-maybe-compressed-blob", "thiserror 1.0.69", "zstd 0.12.4", @@ -11073,11 +11157,11 @@ dependencies = [ "sc-network-types", "sc-transaction-pool-api", "smallvec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-authority-discovery", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", "sp-consensus-babe", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -11093,7 +11177,7 @@ dependencies = [ "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-erasure-coding", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -11106,9 +11190,9 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "schnellru", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror 1.0.69", "tracing-gum", ] @@ -11128,7 +11212,7 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -11144,9 +11228,9 @@ dependencies = [ "polkadot-core-primitives", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] @@ -11162,18 +11246,18 @@ dependencies = [ "polkadot-parachain-primitives", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", "thiserror 1.0.69", ] @@ -11197,15 +11281,15 @@ dependencies = [ "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", "sp-consensus-beefy", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", + "sp-runtime", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -11245,13 +11329,13 @@ dependencies = [ "scale-info", "serde", "slot-range-helper", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", "sp-keyring", "sp-npos-elections", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-staking", "staging-xcm", @@ -11269,7 +11353,7 @@ dependencies = [ "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing", ] [[package]] @@ -11303,17 +11387,17 @@ dependencies = [ "rand_chacha 0.3.1", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-std", "staging-xcm", "staging-xcm-executor", "static_assertions", @@ -11345,22 +11429,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-arithmetic", "sp-block-builder", "sp-consensus-aura", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", "sp-keyring", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", ] [[package]] @@ -11383,7 +11467,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -11442,27 +11526,27 @@ dependencies = [ "sc-transaction-pool-api", "serde", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-authority-discovery", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", "sp-keyring", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-timestamp", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", + "sp-weights", "staging-xcm", "substrate-prometheus-endpoint", "thiserror 1.0.69", @@ -11488,7 +11572,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", "sp-staking", "thiserror 1.0.69", "tracing-gum", @@ -11607,15 +11691,15 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.4" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.4.0", + "hermit-abi 0.5.1", "pin-project-lite", - "rustix 0.38.44", + "rustix 1.0.7", "tracing", "windows-sys 0.59.0", ] @@ -11692,11 +11776,11 @@ dependencies = [ "scale-info", "serde", "similar-asserts", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", "staging-xcm", ] @@ -11713,8 +11797,8 @@ dependencies = [ "proc-macro2", "quote", "sha3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-std", "syn 1.0.109", "trybuild", ] @@ -11747,9 +11831,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" dependencies = [ "proc-macro2", "syn 2.0.101", @@ -11881,7 +11965,7 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "thiserror 1.0.69", ] @@ -11893,7 +11977,7 @@ checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus-client-derive-encode", ] @@ -11950,7 +12034,7 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.5.0", + "heck 0.4.1", "itertools 0.14.0", "log", "multimap", @@ -12059,7 +12143,7 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 2.0.12", "tokio", "tracing", @@ -12096,7 +12180,7 @@ dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.5.9", + "socket2 0.5.10", "tracing", "windows-sys 0.59.0", ] @@ -12477,7 +12561,7 @@ name = "rococo-runtime" version = "22.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "binary-merkle-tree", "bitvec", "frame-benchmarking", "frame-executive", @@ -12543,26 +12627,26 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", "sp-keyring", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-staking", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12579,9 +12663,9 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-weights", "staging-xcm", "staging-xcm-builder", ] @@ -12648,9 +12732,9 @@ dependencies = [ "parity-scale-codec", "peaq-primitives-xcm", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12806,7 +12890,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", @@ -12934,8 +13018,8 @@ version = "31.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "log", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-wasm-interface", "thiserror 1.0.69", ] @@ -12957,12 +13041,12 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-types", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-authority-discovery", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -12979,12 +13063,12 @@ dependencies = [ "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", "substrate-prometheus-endpoint", ] @@ -12994,13 +13078,13 @@ version = "0.44.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-trie", ] [[package]] @@ -13019,14 +13103,14 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", "sp-genesis-builder", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-tracing", ] [[package]] @@ -13047,7 +13131,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "array-bytes", "chrono", - "clap 4.5.38", + "clap 4.5.39", "fdlimit", "futures 0.3.31", "itertools 0.11.0", @@ -13071,13 +13155,13 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", "sp-keyring", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", "thiserror 1.0.69", "tokio", ] @@ -13091,20 +13175,20 @@ dependencies = [ "futures 0.3.31", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-executor", "sc-transaction-pool-api", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-trie", "substrate-prometheus-endpoint", ] @@ -13121,17 +13205,17 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -13143,16 +13227,16 @@ dependencies = [ "futures 0.3.31", "log", "mockall", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network-types", "sc-utils", "serde", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -13171,17 +13255,17 @@ dependencies = [ "sc-consensus", "sc-consensus-slots", "sc-telemetry", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -13199,25 +13283,25 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", "sc-telemetry", "sc-transaction-pool-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -13233,14 +13317,14 @@ dependencies = [ "sc-consensus-epochs", "sc-rpc-api", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror 1.0.69", ] @@ -13255,7 +13339,7 @@ dependencies = [ "futures 0.3.31", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-consensus", "sc-network", @@ -13263,15 +13347,15 @@ dependencies = [ "sc-network-sync", "sc-network-types", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", "sp-consensus-beefy", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -13287,14 +13371,14 @@ dependencies = [ "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-consensus-beefy", "sc-rpc", "serde", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", "sp-consensus-beefy", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", "thiserror 1.0.69", ] @@ -13307,8 +13391,8 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-consensus", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-runtime", ] [[package]] @@ -13326,7 +13410,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -13341,16 +13425,16 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] @@ -13369,9 +13453,9 @@ dependencies = [ "sc-consensus-grandpa", "sc-rpc", "serde", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-runtime", "thiserror 1.0.69", ] @@ -13395,16 +13479,16 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror 1.0.69", @@ -13423,14 +13507,14 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -13439,20 +13523,20 @@ version = "0.42.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", + "sp-trie", + "sp-version", + "sp-wasm-interface", "tracing", ] @@ -13464,7 +13548,7 @@ dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface", "thiserror 1.0.69", "wasm-instrument", ] @@ -13477,7 +13561,7 @@ dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-wasm-interface", ] [[package]] @@ -13487,12 +13571,12 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "anyhow", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime-interface", + "sp-wasm-interface", "wasmtime", ] @@ -13508,8 +13592,8 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-sync", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-runtime", ] [[package]] @@ -13518,11 +13602,11 @@ version = "35.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "array-bytes", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "serde_json", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror 1.0.69", ] @@ -13540,17 +13624,17 @@ dependencies = [ "log", "mixnet", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network", "sc-network-types", "sc-transaction-pool-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-consensus", + "sp-core", + "sp-keystore", "sp-mixnet", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "thiserror 1.0.69", ] @@ -13576,7 +13660,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "partial_sort", "pin-project", "prost 0.12.6", @@ -13590,10 +13674,10 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -13611,7 +13695,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "bitflags 1.3.2", "parity-scale-codec", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -13628,7 +13712,7 @@ dependencies = [ "sc-network-sync", "sc-network-types", "schnellru", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "substrate-prometheus-endpoint", "tracing", ] @@ -13648,9 +13732,9 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-types", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-runtime", "thiserror 1.0.69", ] @@ -13677,12 +13761,12 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", @@ -13703,8 +13787,8 @@ dependencies = [ "sc-network-sync", "sc-network-types", "sc-utils", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-consensus", + "sp-runtime", "substrate-prometheus-endpoint", ] @@ -13743,7 +13827,7 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rustls", "sc-client-api", @@ -13751,12 +13835,12 @@ dependencies = [ "sc-network-types", "sc-transaction-pool-api", "sc-utils", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-externalities", + "sp-keystore", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "threadpool", "tracing", ] @@ -13779,7 +13863,7 @@ dependencies = [ "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -13789,16 +13873,16 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-keystore", "sp-offchain", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-rpc", + "sp-runtime", "sp-session", "sp-statement-store", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", "tokio", ] @@ -13815,10 +13899,10 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-version", "thiserror 1.0.69", ] @@ -13859,7 +13943,7 @@ dependencies = [ "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "sc-chain-spec", "sc-client-api", @@ -13867,12 +13951,12 @@ dependencies = [ "sc-transaction-pool-api", "schnellru", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-version", "thiserror 1.0.69", "tokio", "tokio-stream", @@ -13886,10 +13970,10 @@ dependencies = [ "parity-scale-codec", "sc-executor", "sc-executor-common", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine", + "sp-wasm-interface", "thiserror 1.0.69", ] @@ -13906,7 +13990,7 @@ dependencies = [ "jsonrpsee 0.24.9", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "sc-chain-spec", @@ -13934,20 +14018,20 @@ dependencies = [ "schnellru", "serde", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime", "sp-session", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-state-machine", + "sp-storage", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-trie", + "sp-version", "static_init", "substrate-prometheus-endpoint", "tempfile", @@ -13964,8 +14048,8 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "parking_lot 0.12.4", + "sp-core", ] [[package]] @@ -13973,10 +14057,10 @@ name = "sc-storage-monitor" version = "0.24.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "clap 4.5.38", + "clap 4.5.39", "fs4", "log", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "thiserror 1.0.69", "tokio", ] @@ -13995,8 +14079,8 @@ dependencies = [ "sc-consensus-grandpa", "serde", "serde_json", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-runtime", "thiserror 1.0.69", ] @@ -14015,9 +14099,9 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", ] [[package]] @@ -14029,7 +14113,7 @@ dependencies = [ "futures 0.3.31", "libp2p", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "sc-utils", @@ -14050,17 +14134,17 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rustc-hash 1.1.0", "sc-client-api", "sc-tracing-proc-macro", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-rpc 34.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", "thiserror 1.0.69", "tracing", "tracing-log", @@ -14091,17 +14175,17 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-transaction-pool-api", "sc-utils", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-blockchain", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-tracing", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror 1.0.69", @@ -14121,9 +14205,9 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-runtime", "thiserror 1.0.69", ] @@ -14136,9 +14220,9 @@ dependencies = [ "futures 0.3.31", "futures-timer", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", ] [[package]] @@ -14345,6 +14429,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -14474,7 +14564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ "bitflags 2.9.1", - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -14758,7 +14848,7 @@ dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -14802,10 +14892,10 @@ dependencies = [ "async-channel 2.3.1", "async-executor", "async-fs 2.1.2", - "async-io 2.4.0", + "async-io 2.4.1", "async-lock 3.4.0", "async-net 2.0.0", - "async-process 2.3.0", + "async-process 2.3.1", "blocking", "futures-lite 2.6.0", ] @@ -14941,7 +15031,7 @@ dependencies = [ "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -14977,7 +15067,7 @@ dependencies = [ "itertools 0.13.0", "log", "lru 0.12.5", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -15025,9 +15115,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -15065,29 +15155,6 @@ dependencies = [ "sha1", ] -[[package]] -name = "sp-api" -version = "36.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541da427f47dfb97f3dd0556fa3272bdc5dfa0d4c1ad53a22670a9bae4db63d7" -dependencies = [ - "docify", - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 22.0.1", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-metadata-ir 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-version 39.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", -] - [[package]] name = "sp-api" version = "36.0.1" @@ -15098,15 +15165,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro 22.0.0", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-metadata-ir 0.10.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api-proc-macro", + "sp-core", + "sp-externalities", + "sp-metadata-ir", + "sp-runtime", + "sp-runtime-interface", + "sp-state-machine", + "sp-trie", + "sp-version", "thiserror 1.0.69", ] @@ -15124,34 +15191,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "sp-api-proc-macro" -version = "22.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cedafdeaf15c774433ad8f5b00883bdf7d86e7c8b8e050e3439d4ae422114096" -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - -[[package]] -name = "sp-application-crypto" -version = "40.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba375ab65a76f7413d1bfe48122fd347ce7bd2047e36ecbbd78f12f5adaed121" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-io 40.0.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-application-crypto" version = "40.1.0" @@ -15160,23 +15199,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-arithmetic" -version = "26.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9971b30935cea3858664965039dabd80f67aca74cc6cc6dd42ff1ab14547bc53" -dependencies = [ - "docify", - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "static_assertions", + "sp-core", + "sp-io", ] [[package]] @@ -15200,9 +15224,9 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-runtime", ] [[package]] @@ -15210,29 +15234,9 @@ name = "sp-block-builder" version = "36.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-blockchain" -version = "39.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afbe184cfe66895497cdfac1ab2927d85294b9c3bcc2c734798994d08b95db6" -dependencies = [ - "futures 0.3.31", - "parity-scale-codec", - "parking_lot 0.12.3", - "schnellru", - "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-consensus 0.42.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-database 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", - "tracing", + "sp-api", + "sp-inherents", + "sp-runtime", ] [[package]] @@ -15242,33 +15246,18 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "futures 0.3.31", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "schnellru", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-consensus 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-database 10.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-consensus", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", "thiserror 1.0.69", "tracing", ] -[[package]] -name = "sp-consensus" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5fed2e52d0cbf8ddc39a5bb7211f19a26f15f70a6c8d964ee05fc73b64e6c3" -dependencies = [ - "async-trait", - "futures 0.3.31", - "log", - "sp-inherents 36.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", -] - [[package]] name = "sp-consensus" version = "0.42.0" @@ -15277,9 +15266,9 @@ dependencies = [ "async-trait", "futures 0.3.31", "log", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "thiserror 1.0.69", ] @@ -15291,11 +15280,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-consensus-slots", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-runtime", "sp-timestamp", ] @@ -15308,12 +15297,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", "sp-consensus-slots", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-inherents", + "sp-runtime", "sp-timestamp", ] @@ -15325,15 +15314,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-io", + "sp-keystore", "sp-mmr-primitives", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-weights", "strum 0.26.3", ] @@ -15347,11 +15336,11 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", ] [[package]] @@ -15368,8 +15357,7 @@ dependencies = [ [[package]] name = "sp-core" version = "36.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cdbb58c21e6b27f2aadf3ff0c8b20a8ead13b9dfe63f46717fd59334517f3b4" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "ark-vrf", "array-bytes", @@ -15390,7 +15378,7 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", "primitive-types", "rand 0.8.5", @@ -15399,14 +15387,14 @@ dependencies = [ "secp256k1 0.28.2", "secrecy 0.8.0", "serde", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", "ss58-registry", - "substrate-bip39 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-bip39", "thiserror 1.0.69", "tracing", "w3f-bls", @@ -15414,57 +15402,23 @@ dependencies = [ ] [[package]] -name = "sp-core" -version = "36.1.0" +name = "sp-crypto-hashing" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.9", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -dependencies = [ - "ark-vrf", - "array-bytes", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58", - "dyn-clonable", - "ed25519-zebra", - "futures 0.3.31", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.11.0", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand 0.8.5", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1 0.28.2", - "secrecy 0.8.0", - "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "ss58-registry", - "substrate-bip39 0.6.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "thiserror 1.0.69", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", @@ -15474,30 +15428,6 @@ dependencies = [ "twox-hash", ] -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.9", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" -dependencies = [ - "quote", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.101", -] - [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" @@ -15508,34 +15438,13 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "sp-database" -version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "722cbecdbf5b94578137dbd07feb51e95f7de221be0c1ff4dcfe0bb4cd986929" -dependencies = [ - "kvdb", - "parking_lot 0.12.3", -] - [[package]] name = "sp-database" version = "10.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "kvdb", - "parking_lot 0.12.3", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", + "parking_lot 0.12.4", ] [[package]] @@ -15548,17 +15457,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "sp-externalities" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-externalities" version = "0.30.0" @@ -15566,7 +15464,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage", ] [[package]] @@ -15577,22 +15475,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-inherents" -version = "36.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb09ff07946f3e1ecdd4bfb40b2cceba60188215ceb941b5b07230294d7aee1" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", + "sp-api", + "sp-runtime", ] [[package]] @@ -15604,37 +15488,10 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "thiserror 1.0.69", ] -[[package]] -name = "sp-io" -version = "40.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e41d010bcc515d119901ff7ac83150c335d543c7f6c03be5c8fe08430b8a03b" -dependencies = [ - "bytes", - "docify", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive", - "rustversion", - "secp256k1 0.28.2", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-keystore 0.42.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime-interface 29.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-state-machine 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-tracing 17.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing", - "tracing-core", -] - [[package]] name = "sp-io" version = "40.0.1" @@ -15649,14 +15506,14 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1 0.28.2", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-tracing", + "sp-trie", "tracing", "tracing-core", ] @@ -15666,32 +15523,20 @@ name = "sp-keyring" version = "41.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", "strum 0.26.3", ] -[[package]] -name = "sp-keystore" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f893398a5330e28f219662c7a0afa174fb068d8f82d2a9990016c4b0bc4369" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-keystore" version = "0.42.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "parking_lot 0.12.4", + "sp-core", + "sp-externalities", ] [[package]] @@ -15703,17 +15548,6 @@ dependencies = [ "zstd 0.12.4", ] -[[package]] -name = "sp-metadata-ir" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d1db25e362edbf5531b427d4bdfc2562bec6a031c3eb2a9145c0a0a01a572d" -dependencies = [ - "frame-metadata 20.0.0", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "sp-metadata-ir" version = "0.10.0" @@ -15731,8 +15565,8 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", ] [[package]] @@ -15745,10 +15579,10 @@ dependencies = [ "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-runtime", "thiserror 1.0.69", ] @@ -15760,9 +15594,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-runtime", ] [[package]] @@ -15770,19 +15604,9 @@ name = "sp-offchain" version = "36.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b52e69a577cbfdea62bfaf16f59eb884422ce98f78b5cd8d9bf668776bced1" -dependencies = [ - "backtrace", - "regex", + "sp-api", + "sp-core", + "sp-runtime", ] [[package]] @@ -15794,17 +15618,6 @@ dependencies = [ "regex", ] -[[package]] -name = "sp-rpc" -version = "34.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acde213e9f08065dcc407a934e9ffd5388bef51347326195405efb62c7a0e4a" -dependencies = [ - "rustc-hash 1.1.0", - "serde", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-rpc" version = "34.0.0" @@ -15812,37 +15625,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "rustc-hash 1.1.0", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-runtime" -version = "41.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3864101a28faba3d8eca026e3f56ea20dd1d979ce1bcc20152e86c9d82be52bf" -dependencies = [ - "binary-merkle-tree 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "num-traits", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 40.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-arithmetic 26.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-io 40.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 31.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing", - "tuplex", + "sp-core", ] [[package]] @@ -15850,7 +15633,7 @@ name = "sp-runtime" version = "41.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "binary-merkle-tree", "docify", "either", "hash256-std-hasher", @@ -15863,37 +15646,17 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", + "sp-trie", + "sp-weights", "tracing", "tuplex", ] -[[package]] -name = "sp-runtime-interface" -version = "29.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99db36a7aff44c335f5d5b36c182a3e0cac61de2fefbe2eeac6af5fb13f63bf" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime-interface-proc-macro 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 22.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-tracing 17.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-wasm-interface 21.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions", -] - [[package]] name = "sp-runtime-interface" version = "29.0.1" @@ -15904,29 +15667,15 @@ dependencies = [ "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface-proc-macro 18.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-wasm-interface 21.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", "static_assertions", ] -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" -dependencies = [ - "Inflector", - "expander", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" @@ -15947,10 +15696,10 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-keystore 0.42.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-core", + "sp-keystore", + "sp-runtime", "sp-staking", ] @@ -15963,29 +15712,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-state-machine" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206508475c01ae2e14f171d35d7fc3eaa7278140d7940416591d49a784792ed6" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "smallvec", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-panic-handler 13.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 39.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", - "tracing", - "trie-db", + "sp-core", + "sp-runtime", ] [[package]] @@ -15996,13 +15724,13 @@ dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "smallvec", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-panic-handler 13.0.2 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-trie", "thiserror 1.0.69", "tracing", "trie-db", @@ -16021,41 +15749,22 @@ dependencies = [ "rand 0.8.5", "scale-info", "sha2 0.10.9", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-core", "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime-interface 29.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-externalities", + "sp-runtime", + "sp-runtime-interface", "thiserror 1.0.69", "x25519-dalek", ] -[[package]] -name = "sp-std" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" - [[package]] name = "sp-std" version = "14.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" -[[package]] -name = "sp-storage" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3b70ca340e41cde9d2e069d354508a6e37a6573d66f7cc38f11549002f64ec" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-storage" version = "22.0.0" @@ -16065,7 +15774,7 @@ dependencies = [ "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-debug-derive", ] [[package]] @@ -16075,23 +15784,11 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-runtime", "thiserror 1.0.69", ] -[[package]] -name = "sp-tracing" -version = "17.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6147a5b8c98b9ed4bf99dc033fab97a468b4645515460974c8784daeb7c35433" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber", -] - [[package]] name = "sp-tracing" version = "17.1.0" @@ -16108,8 +15805,8 @@ name = "sp-transaction-pool" version = "36.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-runtime", ] [[package]] @@ -16120,33 +15817,10 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", -] - -[[package]] -name = "sp-trie" -version = "39.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a555bf4c42ca89e2e7bf2f11308806dad13cdbd7f8fd60cf2649f12b6ee809bf" -dependencies = [ - "ahash", - "hash-db", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 36.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", - "tracing", - "trie-db", - "trie-root", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-trie", ] [[package]] @@ -16159,36 +15833,18 @@ dependencies = [ "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", "schnellru", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-externalities 0.30.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-externalities", "thiserror 1.0.69", "tracing", "trie-db", "trie-root", ] -[[package]] -name = "sp-version" -version = "39.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd736a15ff2ea0a67c5a3bbdfd842d88f11f0774d7701a8d8a316f8deba276c5" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-version-proc-macro 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 1.0.69", -] - [[package]] name = "sp-version" version = "39.0.0" @@ -16199,26 +15855,13 @@ dependencies = [ "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version-proc-macro 15.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-crypto-hashing-proc-macro", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", "thiserror 1.0.69", ] -[[package]] -name = "sp-version-proc-macro" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cabc8279e835cd9c608d70cb00e693bddec94fe8478e9f3104dad1da5f93ca" -dependencies = [ - "parity-scale-codec", - "proc-macro-warning", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "sp-version-proc-macro" version = "15.0.0" @@ -16231,18 +15874,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "sp-wasm-interface" -version = "21.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b066baa6d57951600b14ffe1243f54c47f9c23dd89c262e17ca00ae8dca58be9" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", -] - [[package]] name = "sp-wasm-interface" version = "21.0.1" @@ -16255,21 +15886,6 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sp-weights" -version = "31.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515aa194eabac059041df2dbee75b059b99981213ec680e9de85b45b6988346a" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 26.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sp-weights" version = "31.1.0" @@ -16280,8 +15896,8 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-debug-derive 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-debug-derive", ] [[package]] @@ -16349,7 +15965,7 @@ dependencies = [ "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", ] [[package]] @@ -16368,8 +15984,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", + "sp-weights", "xcm-procedural", ] @@ -16387,11 +16003,11 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", "staging-xcm", "staging-xcm-executor", "tracing", @@ -16408,11 +16024,11 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-weights", "staging-xcm", "tracing", ] @@ -16432,8 +16048,8 @@ dependencies = [ "bitflags 1.3.2", "cfg_aliases 0.2.1", "libc", - "parking_lot 0.12.3", - "parking_lot_core 0.9.10", + "parking_lot 0.12.4", + "parking_lot_core 0.9.11", "static_init_macro", "winapi", ] @@ -16539,19 +16155,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "substrate-bip39" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" -dependencies = [ - "hmac 0.12.1", - "pbkdf2", - "schnorrkel 0.11.4", - "sha2 0.10.9", - "zeroize", -] - [[package]] name = "substrate-bip39" version = "0.6.0" @@ -16595,11 +16198,11 @@ dependencies = [ "parity-scale-codec", "sc-rpc-api", "sc-transaction-pool-api", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", "sp-block-builder", - "sp-blockchain 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] @@ -16626,10 +16229,10 @@ dependencies = [ "sc-client-api", "sc-rpc-api", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-state-machine 0.45.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-trie 39.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-trie", "trie-db", ] @@ -16651,11 +16254,11 @@ dependencies = [ "polkavm-linker", "sc-executor", "shlex", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", "sp-maybe-compressed-blob", - "sp-tracing 17.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-tracing", + "sp-version", "strum 0.26.3", "tempfile", "toml 0.8.22", @@ -16916,6 +16519,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "tap" version = "1.0.1" @@ -17154,18 +16763,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", "libc", "mio", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.9", + "socket2 0.5.10", "tokio-macros", "windows-sys 0.52.0", ] @@ -17412,7 +17021,7 @@ dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "sharded-slab", "smallvec", @@ -17663,6 +17272,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.1" @@ -18279,7 +17899,7 @@ name = "westend-runtime" version = "22.1.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "binary-merkle-tree 16.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "binary-merkle-tree", "bitvec", "frame-benchmarking", "frame-election-provider-support", @@ -18353,28 +17973,28 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-application-crypto 40.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", "sp-genesis-builder", - "sp-inherents 36.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-inherents", + "sp-io", "sp-keyring", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-runtime", "sp-session", "sp-staking", - "sp-storage 22.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-storage", "sp-transaction-pool", - "sp-version 39.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-version", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -18392,9 +18012,9 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-runtime", + "sp-weights", "staging-xcm", "staging-xcm-builder", ] @@ -18456,6 +18076,28 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -18479,6 +18121,17 @@ dependencies = [ "windows-strings", ] +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link", + "windows-threading", +] + [[package]] name = "windows-implement" version = "0.60.0" @@ -18507,6 +18160,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link", +] + [[package]] name = "windows-result" version = "0.1.2" @@ -18632,6 +18295,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -18914,10 +18586,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-io 40.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-executor", ] @@ -18941,8 +18613,8 @@ dependencies = [ "frame-support", "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-weights 31.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-api", + "sp-weights", "staging-xcm", "staging-xcm-executor", ] @@ -18971,7 +18643,7 @@ dependencies = [ "futures 0.3.31", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "static_assertions", @@ -18986,7 +18658,7 @@ dependencies = [ "futures 0.3.31", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.9.1", "static_assertions", @@ -19035,7 +18707,7 @@ dependencies = [ [[package]] name = "zenlink-protocol" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -19048,10 +18720,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 26.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-core 36.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-runtime 41.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", - "sp-std 14.0.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", "staging-xcm", "staging-xcm-executor", ] @@ -19059,16 +18731,16 @@ dependencies = [ [[package]] name = "zenlink-protocol-rpc" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" dependencies = [ "jsonrpsee 0.23.2", "parity-scale-codec", "scale-info", "serde", - "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-blockchain 39.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-rpc 34.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 41.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-api", + "sp-blockchain", + "sp-rpc", + "sp-runtime", "tower", "zenlink-protocol", "zenlink-protocol-runtime-api", @@ -19077,12 +18749,12 @@ dependencies = [ [[package]] name = "zenlink-protocol-runtime-api" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e1548c0bc454d031000e76f14afbdf6f5084e44b" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 36.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-api", + "sp-std", "zenlink-protocol", ] diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index ace378226..c5a7022d1 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -112,16 +112,16 @@ parachain-staking = { path = "../../pallets/parachain-staking", default-features pallet-block-reward = { path = "../../pallets/block-reward", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } precompile-utils = { path = "../../precompiles/utils", default-features = false } -pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } -pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } -pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} -pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } -pallet-evm-precompile-peaq-did = { path = "../../precompiles/peaq-did", default-features = false } -pallet-evm-precompile-peaq-storage = { path = "../../precompiles/peaq-storage", default-features = false } -pallet-evm-precompile-xtokens = { path = "../../precompiles/xtokens", default-features = false } -pallet-evm-precompile-xcm-utils = { path = "../../precompiles/xcm-utils", default-features = false } -pallet-evm-precompile-parachain-staking = { path = "../../precompiles/parachain-staking", default-features = false } -pallet-evm-precompile-vesting = { path = "../../precompiles/vesting", default-features = false } +# pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } +# pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } +# pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} +# pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } +# pallet-evm-precompile-peaq-did = { path = "../../precompiles/peaq-did", default-features = false } +# pallet-evm-precompile-peaq-storage = { path = "../../precompiles/peaq-storage", default-features = false } +# pallet-evm-precompile-xtokens = { path = "../../precompiles/xtokens", default-features = false } +# pallet-evm-precompile-xcm-utils = { path = "../../precompiles/xcm-utils", default-features = false } +# pallet-evm-precompile-parachain-staking = { path = "../../precompiles/parachain-staking", default-features = false } +# pallet-evm-precompile-vesting = { path = "../../precompiles/vesting", default-features = false } runtime-common = { path = "../common", default-features = false } peaq-pallet-mor = { workspace = true, default-features = false } xc-asset-config = { path = "../../pallets/xc-asset-config", default-features = false } @@ -137,7 +137,7 @@ frame-try-runtime = { workspace = true, default-features = false, optional = tru log = {workspace = true, default-features = false} ethereum = {workspace = true, default-features = false} -pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } +# pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } [features] default = ["std", "aura"] @@ -282,17 +282,17 @@ std = [ "precompile-utils/std", "runtime-common/std", - "pallet-evm-precompile-assets-erc20/std", - "pallet-evm-precompile-assets-factory/std", - "pallet-evm-precompile-balances-erc20/std", - "pallet-evm-precompile-batch/std", - "pallet-evm-precompile-peaq-did/std", - "pallet-evm-precompile-peaq-storage/std", - "pallet-evm-precompile-xtokens/std", - "pallet-evm-precompile-xcm-utils/std", - "pallet-evm-precompile-peaq-rbac/std", - "pallet-evm-precompile-parachain-staking/std", - "pallet-evm-precompile-vesting/std", + # "pallet-evm-precompile-assets-erc20/std", + # "pallet-evm-precompile-assets-factory/std", + # "pallet-evm-precompile-balances-erc20/std", + # "pallet-evm-precompile-batch/std", + # "pallet-evm-precompile-peaq-did/std", + # "pallet-evm-precompile-peaq-storage/std", + # "pallet-evm-precompile-xtokens/std", + # "pallet-evm-precompile-xcm-utils/std", + # "pallet-evm-precompile-peaq-rbac/std", + # "pallet-evm-precompile-parachain-staking/std", + # "pallet-evm-precompile-vesting/std", "pallet-xcm/std", "inflation-manager/std", "pallet-message-queue/std", diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 5d2063f95..4c180c8b6 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -698,7 +698,7 @@ impl pallet_evm::Config for Runtime { type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; - type OnChargeTransaction = OnChargeEVMTransaction; + type OnChargeTransaction = OnChargeEVMTransaction; type OnCreate = (); type FindAuthor = FindAuthorTruncated; type GasLimitPovSizeRatio = GasLimitPovSizeRatio; diff --git a/runtime/peaq-dev/src/precompiles.rs b/runtime/peaq-dev/src/precompiles.rs index 38d9c4d6c..0a8470637 100644 --- a/runtime/peaq-dev/src/precompiles.rs +++ b/runtime/peaq-dev/src/precompiles.rs @@ -1,21 +1,21 @@ use crate::xcm_config::XcmConfig; use frame_support::parameter_types; -use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; -use pallet_evm_precompile_assets_factory::AssetsFactoryPrecompile; -use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; -use pallet_evm_precompile_batch::BatchPrecompile; +// use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; +// use pallet_evm_precompile_assets_factory::AssetsFactoryPrecompile; +// use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; +// use pallet_evm_precompile_batch::BatchPrecompile; use pallet_evm_precompile_blake2::Blake2F; use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; use pallet_evm_precompile_modexp::Modexp; -use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; -use pallet_evm_precompile_peaq_did::PeaqDIDPrecompile; -use pallet_evm_precompile_peaq_rbac::PeaqRbacPrecompile; -use pallet_evm_precompile_peaq_storage::PeaqStoragePrecompile; +// use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; +// use pallet_evm_precompile_peaq_did::PeaqDIDPrecompile; +// use pallet_evm_precompile_peaq_rbac::PeaqRbacPrecompile; +// use pallet_evm_precompile_peaq_storage::PeaqStoragePrecompile; use pallet_evm_precompile_sha3fips::Sha3FIPS256; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; -use pallet_evm_precompile_vesting::VestingPrecompile; -use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; -use pallet_evm_precompile_xtokens::XtokensPrecompile; +// use pallet_evm_precompile_vesting::VestingPrecompile; +// use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; +// use pallet_evm_precompile_xtokens::XtokensPrecompile; use precompile_utils::precompile_set::*; type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); @@ -84,68 +84,68 @@ pub type PeaqPrecompiles = PrecompileSetBuilder< ECRecoverPublicKey, (CallableByContract, CallableByPrecompile), >, - PrecompileAt< - AddressU64<2048>, - PeaqDIDPrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2049>, - PeaqStoragePrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2050>, - PeaqRbacPrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2051>, - XtokensPrecompile, - (SubcallWithMaxNesting<1>, CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2052>, - XcmUtilsPrecompile, - CallableByContract< - pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, - >, - >, - PrecompileAt< - AddressU64<2053>, - BatchPrecompile, - ( - SubcallWithMaxNesting<2>, - // Batch is the only precompile allowed to call Batch. - CallableByPrecompile>>, - ), - >, - PrecompileAt< - AddressU64<2054>, - AssetsFactoryPrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2055>, - ParachainStakingPrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2056>, - VestingPrecompile, - (CallableByPrecompile, CallableByContract), - >, - PrecompileAt< - AddressU64<2057>, - Erc20BalancesPrecompile, - (CallableByPrecompile, CallableByContract), - >, + // PrecompileAt< + // AddressU64<2048>, + // PeaqDIDPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2049>, + // PeaqStoragePrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2050>, + // PeaqRbacPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2051>, + // XtokensPrecompile, + // (SubcallWithMaxNesting<1>, CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2052>, + // XcmUtilsPrecompile, + // CallableByContract< + // pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, + // >, + // >, + // PrecompileAt< + // AddressU64<2053>, + // BatchPrecompile, + // ( + // SubcallWithMaxNesting<2>, + // // Batch is the only precompile allowed to call Batch. + // CallableByPrecompile>>, + // ), + // >, + // PrecompileAt< + // AddressU64<2054>, + // AssetsFactoryPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2055>, + // ParachainStakingPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2056>, + // VestingPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, + // PrecompileAt< + // AddressU64<2057>, + // Erc20BalancesPrecompile, + // (CallableByPrecompile, CallableByContract), + // >, ), >, - PrecompileSetStartingWith< - EVMAssetPrefix, - Erc20AssetsPrecompileSet, - (CallableByContract, CallableByPrecompile), - >, + // PrecompileSetStartingWith< + // EVMAssetPrefix, + // Erc20AssetsPrecompileSet, + // (CallableByContract, CallableByPrecompile), + // >, ), >; From 8c89d102e0659f7058213f8f29ad4f9519342749 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 2 Jun 2025 00:32:34 +0500 Subject: [PATCH 08/98] fixed pallet address unification --- pallets/address-unification/src/mock.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pallets/address-unification/src/mock.rs b/pallets/address-unification/src/mock.rs index 174888e73..a3dbfbdf3 100644 --- a/pallets/address-unification/src/mock.rs +++ b/pallets/address-unification/src/mock.rs @@ -68,6 +68,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); + type PreInherents = (); } impl pallet_balances::Config for Runtime { @@ -86,6 +92,8 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + + type DoneSlashHandler = (); } impl Config for Runtime { @@ -114,7 +122,7 @@ impl ExtBuilder { pub fn build(self) -> sp_io::TestExternalities { let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - pallet_balances::GenesisConfig:: { balances: vec![(bob_account_id(), 100000)] } + pallet_balances::GenesisConfig:: { balances: vec![(bob_account_id(), 100000)], ..Default::default() } .assimilate_storage(&mut t) .unwrap(); From 168b2ba167704581ecd0039e148d8ed0e1eb83de Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 2 Jun 2025 15:21:01 +0500 Subject: [PATCH 09/98] (WIP) fixed frame pallet and xcm runtime configs --- runtime/peaq-dev/src/lib.rs | 62 +++++++++++++++------- runtime/peaq-dev/src/precompiles.rs | 42 +++++++-------- runtime/peaq-dev/src/weights/pallet_xcm.rs | 4 ++ runtime/peaq-dev/src/xcm_config.rs | 19 +++++-- 4 files changed, 84 insertions(+), 43 deletions(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 4c180c8b6..7ec772058 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -188,7 +188,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -351,6 +351,13 @@ impl frame_system::Config for Runtime { type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type RuntimeTask = RuntimeTask; + + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type SingleBlockMigrations = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); } impl pallet_aura::Config for Runtime { @@ -416,6 +423,11 @@ impl pallet_contracts::Config for Runtime { type Debug = (); type Environment = (); type Xcm = (); + + type ApiVersion = (); + type InstantiateOrigin = EnsureSigned<::AccountId>; + type MaxTransientStorageSize = (); + type UploadOrigin = EnsureSigned<::AccountId>; } parameter_types! { @@ -455,6 +467,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; + type DoneSlashHandler = (); } parameter_types! { @@ -518,6 +531,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = (); } impl pallet_sudo::Config for Runtime { @@ -569,6 +583,9 @@ impl pallet_collective::Config for Runtime { type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; type MaxProposalWeight = MaxProposalWeight; + type DisapproveOrigin = EnsureRoot; + type Consideration = (); + type KillOrigin = EnsureRoot; } // Config the treasyry in pallets/treasury @@ -590,19 +607,19 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; + // type ApproveOrigin = EitherOfDiverse< + // EnsureRoot, + // pallet_collective::EnsureProportionAtLeast, + // >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; //type RuntimeEvent = RuntimeEvent; - type OnSlash = (); - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); + // type OnSlash = (); + // type ProposalBond = ProposalBond; + // type ProposalBondMinimum = ProposalBondMinimum; + // type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); @@ -618,6 +635,8 @@ impl pallet_treasury::Config for Runtime { type Paymaster = PayFromAccount; type BalanceConverter = UnityAssetBalanceConversion; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + + type BlockNumberProvider = System; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -630,7 +649,7 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -705,7 +724,11 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - type SuicideQuickClearLimit = ConstU32<0>; + // type SuicideQuickClearLimit = ConstU32<0>; + // TODO verify this + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -714,7 +737,7 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot; + type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } @@ -765,6 +788,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); + type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; } type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -803,6 +827,7 @@ impl pallet_session::Config for Runtime { type SessionHandler = ::KeyTypeIdProviders; type Keys = opaque::SessionKeys; type WeightInfo = pallet_session::weights::SubstrateWeight; + type DisablingStrategy = (); } pub mod staking { @@ -1072,6 +1097,7 @@ impl pallet_scheduler::Config for Runtime { type WeightInfo = pallet_scheduler::weights::SubstrateWeight; type OriginPrivilegeCmp = EqualPrivilegeOnly; type Preimages = Preimage; + type BlockNumberProvider = System; } parameter_types! { @@ -1119,7 +1145,7 @@ construct_runtime!( // Parachain InflationManager: inflation_manager::{Pallet, Call, Storage, Config, Event} = 15, Authorship: pallet_authorship::{Pallet, Storage} = 20, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, AuraExt: cumulus_pallet_aura_ext = 22, ParachainStaking: parachain_staking = 23, ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 24, @@ -1284,7 +1310,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1413,7 +1439,7 @@ impl_runtime_apis! { } fn authorities() -> Vec { - Aura::authorities().to_vec() + pallet_aura::Authorities::::get().to_vec() } } @@ -1577,9 +1603,7 @@ impl_runtime_apis! { } 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[..])) + pallet_evm::AccountStorages::::get(address, H256::from_slice(&index.to_big_endian())) } fn call( @@ -2137,6 +2161,7 @@ impl pallet_multisig::Config for Runtime { type DepositFactor = DepositFactor; type MaxSignatories = MaxSignatories; type WeightInfo = (); + type BlockNumberProvider = System; } cumulus_pallet_parachain_system::register_validate_block! { @@ -2191,6 +2216,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<1000>; type AssetIdParameter = StorageAssetId; type CallbackHandle = EvmRevertCodeHandler; + type Holder = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } diff --git a/runtime/peaq-dev/src/precompiles.rs b/runtime/peaq-dev/src/precompiles.rs index 0a8470637..c99d9ced0 100644 --- a/runtime/peaq-dev/src/precompiles.rs +++ b/runtime/peaq-dev/src/precompiles.rs @@ -20,31 +20,31 @@ use precompile_utils::precompile_set::*; type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); -/// ERC20 metadata for the native token. -pub struct NativeErc20Metadata; +// /// ERC20 metadata for the native token. +// pub struct NativeErc20Metadata; -impl Erc20Metadata for NativeErc20Metadata { - /// Returns the name of the token. - fn name() -> &'static str { - "Agung token" - } +// impl Erc20Metadata for NativeErc20Metadata { +// /// Returns the name of the token. +// fn name() -> &'static str { +// "Agung token" +// } - /// Returns the symbol of the token. - fn symbol() -> &'static str { - "AGNG" - } +// /// Returns the symbol of the token. +// fn symbol() -> &'static str { +// "AGNG" +// } - /// Returns the decimals places of the token. - fn decimals() -> u8 { - 18 - } +// /// Returns the decimals places of the token. +// fn decimals() -> u8 { +// 18 +// } - /// Must return `true` only if it represents the main native currency of - /// the network. It must be the currency used in `pallet_evm`. - fn is_native_currency() -> bool { - true - } -} +// /// Must return `true` only if it represents the main native currency of +// /// the network. It must be the currency used in `pallet_evm`. +// fn is_native_currency() -> bool { +// true +// } +// } const ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; parameter_types! { diff --git a/runtime/peaq-dev/src/weights/pallet_xcm.rs b/runtime/peaq-dev/src/weights/pallet_xcm.rs index 17f55b5b0..6e4ee7b70 100644 --- a/runtime/peaq-dev/src/weights/pallet_xcm.rs +++ b/runtime/peaq-dev/src/weights/pallet_xcm.rs @@ -318,6 +318,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + + fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } + fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } } #[cfg(test)] diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index f719dc985..faaf3c143 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -26,7 +26,7 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::latest::{prelude::*, Asset}; +use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, @@ -35,7 +35,7 @@ use xcm_builder::{ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, SendXcmFeeToAccount, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -45,7 +45,7 @@ use sp_std::marker::PhantomData; use xcm_executor::traits::MatchesFungibles; parameter_types! { - pub const RelayNetwork: NetworkId = NetworkId::Rococo; + pub RelayNetwork: NetworkId = OldNetworkId::Rococo.into(); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); @@ -293,9 +293,10 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = ConstU32<64>; type AssetLocker = (); type AssetExchanger = (); + // TODO Verify generics to SendXcmFeeToAccount type FeeManager = XcmFeeManagerFromComponents< (), - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; @@ -303,6 +304,12 @@ impl xcm_executor::Config for XcmConfig { type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type HrmpNewChannelOpenRequestHandler = (); + type XcmEventEmitter = (); + type XcmRecorder = (); } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -348,6 +355,7 @@ impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); + type AuthorizedAliasConsideration = (); } impl cumulus_pallet_xcm::Config for Runtime { @@ -365,6 +373,8 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); + type MaxActiveOutboundChannels = (); + type MaxPageSize = (); } parameter_types! { @@ -473,4 +483,5 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } From 6941f4f1a629d163342517a1b5948cab818e97d2 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 3 Jun 2025 01:39:56 +0500 Subject: [PATCH 10/98] (WIP) minor fix --- runtime/peaq-dev/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 7ec772058..6248e8b4f 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1809,7 +1809,7 @@ impl_runtime_apis! { } fn initialize_pending_block(header: &::Header) { - Executive::initialize_block(header) + Executive::initialize_block(header); } } From 697d7366ccc1f7790f2afa88907c00d4ca259156 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 3 Jun 2025 13:31:09 +0500 Subject: [PATCH 11/98] (WIP) runtime api fix --- runtime/peaq-dev/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 6248e8b4f..e7e18824c 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1817,7 +1817,7 @@ impl_runtime_apis! { fn convert_transaction( transaction: pallet_ethereum::Transaction ) -> ::Extrinsic { - UncheckedExtrinsic::new_unsigned( + UncheckedExtrinsic::new_bare( pallet_ethereum::Call::::transact { transaction }.into(), ) } From 245deb5298610ad3d15872883243b2678ef4a3f5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 3 Jun 2025 13:39:47 +0500 Subject: [PATCH 12/98] (WIP) fixed TaggedTransasctionQueue --- runtime/peaq-dev/src/lib.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index e7e18824c..c2688102e 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -35,7 +35,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::traits::IdentityLookup; +use sp_runtime::{traits::IdentityLookup, generic::Preamble}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -1387,13 +1387,15 @@ impl_runtime_apis! { RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, _ => { - let tip = match xt.0.signature { - None => 0, - Some((_, _, ref signed_extra)) => { - // Yuck, this depends on the index of charge transaction in Signed Extra - let charge_transaction = &signed_extra.7; - charge_transaction.tip() - } + let tip = match &xt.0.preamble { + Preamble::Bare(_) => 0, + Preamble::Signed(_, _, signed_extra) => { + // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra + // Get the 7th item from the tuple + let charge_transaction_payment = &signed_extra.7; + charge_transaction_payment.tip() + }, + Preamble::General(_, _) => 0, }; // Calculate the fee that will be taken by pallet transaction payment @@ -1406,7 +1408,7 @@ impl_runtime_apis! { // Calculate how much gas this effectively uses according to the existing mapping let effective_gas = ::GasWeightMapping::weight_to_gas( - dispatch_info.weight + dispatch_info.total_weight() ); // Here we calculate an ethereum-style effective gas price using the From ef38471c3907794d84f393857d955c180bef5f37 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 3 Jun 2025 14:02:17 +0500 Subject: [PATCH 13/98] removed deprecated methods --- pallets/block-reward/src/migrations.rs | 2 +- pallets/inflation-manager/src/migrations.rs | 2 +- primitives/xcm/src/evm.rs | 2 +- runtime/common/src/payment.rs | 14 +++++++------- runtime/peaq-dev/src/lib.rs | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pallets/block-reward/src/migrations.rs b/pallets/block-reward/src/migrations.rs index 05da51309..055c06103 100644 --- a/pallets/block-reward/src/migrations.rs +++ b/pallets/block-reward/src/migrations.rs @@ -46,7 +46,7 @@ mod v2 { let mut weight_writes = 0; let mut weight_reads = 2; - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); let onchain_version = Pallet::::on_chain_storage_version(); if onchain_version < current { diff --git a/pallets/inflation-manager/src/migrations.rs b/pallets/inflation-manager/src/migrations.rs index 7c12dfe35..0a82f6b79 100644 --- a/pallets/inflation-manager/src/migrations.rs +++ b/pallets/inflation-manager/src/migrations.rs @@ -71,7 +71,7 @@ mod upgrade { let onchain_storage_version = Pallet::::on_chain_storage_version(); weight_reads += 1; // That should be 2 - let current = Pallet::::current_storage_version(); + let current = Pallet::::in_code_storage_version(); if onchain_storage_version < current { // Just keep the total issuance number consistent if it is not set diff --git a/primitives/xcm/src/evm.rs b/primitives/xcm/src/evm.rs index 9ad133820..dd8dc01a5 100644 --- a/primitives/xcm/src/evm.rs +++ b/primitives/xcm/src/evm.rs @@ -1,7 +1,7 @@ use crate::AccountId; use frame_support::ensure; use pallet_assets::AssetsCallback; -use sp_core::{H160, U256}; +use sp_core::H160; use sp_std::marker::PhantomData; /// Evm Address. diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 5bbe834e7..ae019b02d 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -4,7 +4,7 @@ use frame_support::{ InvalidTransaction, MaxEncodedLen, MaybeSerializeDeserialize, TransactionValidityError, }, traits::{ - fungible::Balanced, Currency, ExistenceRequirement, Get, Imbalance, OnUnbalanced, + Currency, ExistenceRequirement, Get, Imbalance, OnUnbalanced, WithdrawReasons, }, Parameter, @@ -136,14 +136,14 @@ where } fn can_withdraw_fee( - who: &::AccountId, - call: &::RuntimeCall, - dispatch_info: &DispatchInfoOf<::RuntimeCall>, - fee: Self::Balance, - tip: Self::Balance, + _who: &::AccountId, + _call: &::RuntimeCall, + _dispatch_info: &DispatchInfoOf<::RuntimeCall>, + _fee: Self::Balance, + _tip: Self::Balance, ) -> Result<(), TransactionValidityError> { // TODO what to do with this? - Ok(()) + todo!() } } diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index c2688102e..435b10b15 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -46,7 +46,7 @@ use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, H256, U256}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, DispatchInfoOf, Dispatchable, OpaqueKeys, PostDispatchInfoOf, SaturatedConversion, @@ -57,7 +57,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec}; +use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -176,8 +176,8 @@ pub mod opaque { // https://docs.substrate.io/v3/runtime/origins#runtime-versioning #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("peaq-node-dev"), - impl_name: create_runtime_str!("peaq-node-dev"), + spec_name: Cow::Borrowed("peaq-node-dev"), + impl_name: Cow::Borrowed("peaq-node-dev"), authoring_version: 1, // The version of the runtime specification. A full node will not attempt to use its native // runtime in substitute for the on-chain Wasm runtime unless all of `spec_name`, From e6ea76adea67efb3f434c82046c43a790b51dc85 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 10 Jun 2025 17:37:54 +0500 Subject: [PATCH 14/98] (WIP) fixed assets erc20 precompule for peaq dev runtime --- Cargo.lock | 1 + precompiles/assets-erc20/src/lib.rs | 2 ++ precompiles/assets-erc20/src/mock.rs | 15 +++++++++++++-- precompiles/utils/src/testing/account.rs | 3 +++ runtime/peaq-dev/Cargo.toml | 4 ++-- runtime/peaq-dev/src/precompiles.rs | 12 ++++++------ 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3501541e3..6f3ba7ac2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9540,6 +9540,7 @@ dependencies = [ "pallet-contracts", "pallet-ethereum", "pallet-evm", + "pallet-evm-precompile-assets-erc20", "pallet-evm-precompile-blake2", "pallet-evm-precompile-bn128", "pallet-evm-precompile-dispatch", diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index 6e1917aaa..6263b9016 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -141,6 +141,8 @@ where BalanceOf: TryFrom + Into + solidity::Codec, Runtime: EVMAddressToAssetId>, <::RuntimeCall as Dispatchable>::RuntimeOrigin: OriginTrait, + ::AddressMapping: AddressMapping, + { /// PrecompileSet discriminant. Allows to knows if the address maps to an asset id, /// and if this is the case which one. diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 8f3c09fab..99d4381d3 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -113,6 +113,13 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); + } parameter_types! { @@ -146,6 +153,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; @@ -190,7 +198,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } // These parameters dont matter much as this will only be called by root with the forced arguments @@ -223,6 +233,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<0>; type AssetIdParameter = AssetId; type CallbackHandle = (); + type Holder = (); } // Configure a mock runtime to test the pallet. @@ -254,7 +265,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); diff --git a/precompiles/utils/src/testing/account.rs b/precompiles/utils/src/testing/account.rs index 2b382d9c7..cd9a1e263 100644 --- a/precompiles/utils/src/testing/account.rs +++ b/precompiles/utils/src/testing/account.rs @@ -15,6 +15,7 @@ // along with Moonbeam. If not, see . use pallet_evm::AddressMapping; +use parity_scale_codec::DecodeWithMemTracking; use peaq_primitives_xcm::AssetId as PeaqAssetId; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; @@ -203,6 +204,7 @@ mock_account!(SiblingParachainAccount(u32), |v: SiblingParachainAccount| { Deserialize, derive_more::Display, TypeInfo, + DecodeWithMemTracking )] pub struct MockAssetId(pub u128); @@ -263,6 +265,7 @@ impl peaq_primitives_xcm::AssetIdExt for MockAssetId { Deserialize, derive_more::Display, TypeInfo, + DecodeWithMemTracking )] pub enum MockPeaqAccount { Alice, diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index c5a7022d1..8af598193 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -112,7 +112,7 @@ parachain-staking = { path = "../../pallets/parachain-staking", default-features pallet-block-reward = { path = "../../pallets/block-reward", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } precompile-utils = { path = "../../precompiles/utils", default-features = false } -# pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } +pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } # pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } # pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} # pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } @@ -282,7 +282,7 @@ std = [ "precompile-utils/std", "runtime-common/std", - # "pallet-evm-precompile-assets-erc20/std", + "pallet-evm-precompile-assets-erc20/std", # "pallet-evm-precompile-assets-factory/std", # "pallet-evm-precompile-balances-erc20/std", # "pallet-evm-precompile-batch/std", diff --git a/runtime/peaq-dev/src/precompiles.rs b/runtime/peaq-dev/src/precompiles.rs index c99d9ced0..094cae409 100644 --- a/runtime/peaq-dev/src/precompiles.rs +++ b/runtime/peaq-dev/src/precompiles.rs @@ -1,6 +1,6 @@ use crate::xcm_config::XcmConfig; use frame_support::parameter_types; -// use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; +use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; // use pallet_evm_precompile_assets_factory::AssetsFactoryPrecompile; // use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; // use pallet_evm_precompile_batch::BatchPrecompile; @@ -142,10 +142,10 @@ pub type PeaqPrecompiles = PrecompileSetBuilder< // >, ), >, - // PrecompileSetStartingWith< - // EVMAssetPrefix, - // Erc20AssetsPrecompileSet, - // (CallableByContract, CallableByPrecompile), - // >, + PrecompileSetStartingWith< + EVMAssetPrefix, + Erc20AssetsPrecompileSet, + (CallableByContract, CallableByPrecompile), + >, ), >; From c31c6d176a5eac3f446960c5e6c47e8c2c1cd7d1 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 10 Jun 2025 18:12:13 +0500 Subject: [PATCH 15/98] (WIP) fixed some precompile trait bouds --- precompiles/assets-factory/src/lib.rs | 1 + precompiles/assets-factory/src/mock.rs | 14 ++++++++++++-- precompiles/balances-erc20/src/eip2612.rs | 1 + precompiles/balances-erc20/src/lib.rs | 1 + precompiles/balances-erc20/src/mock.rs | 13 +++++++++++-- precompiles/batch/src/mock.rs | 16 +++++++++++++--- precompiles/parachain-staking/src/lib.rs | 1 + precompiles/parachain-staking/src/mock.rs | 16 +++++++++++++--- precompiles/parachain-staking/src/tests.rs | 18 +++++++++--------- precompiles/peaq-did/src/lib.rs | 1 + precompiles/peaq-rbac/src/lib.rs | 1 + precompiles/peaq-storage/src/lib.rs | 1 + precompiles/utils/src/testing/account.rs | 1 + precompiles/vesting/src/lib.rs | 2 ++ precompiles/vesting/src/mock.rs | 13 +++++++++++-- precompiles/xcm-utils/src/lib.rs | 2 ++ precompiles/xcm-utils/src/mock.rs | 19 +++++++++++++++++-- precompiles/xtokens/src/lib.rs | 1 + 18 files changed, 99 insertions(+), 23 deletions(-) diff --git a/precompiles/assets-factory/src/lib.rs b/precompiles/assets-factory/src/lib.rs index d695b3ff7..c49ce42a2 100644 --- a/precompiles/assets-factory/src/lib.rs +++ b/precompiles/assets-factory/src/lib.rs @@ -67,6 +67,7 @@ where AssetIdParameterOf: TryFrom, Runtime: EVMAddressToAssetId>, <::RuntimeCall as Dispatchable>::RuntimeOrigin: OriginTrait, + ::AddressMapping: AddressMapping, { #[precompile::public("convertAssetIdToAddress(uint64)")] #[precompile::public("convert_asset_id_to_address(uint64)")] diff --git a/precompiles/assets-factory/src/mock.rs b/precompiles/assets-factory/src/mock.rs index 7959dae59..d1dda71eb 100644 --- a/precompiles/assets-factory/src/mock.rs +++ b/precompiles/assets-factory/src/mock.rs @@ -102,6 +102,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -135,6 +141,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; @@ -182,7 +189,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } // These parameters dont matter much as this will only be called by root with the forced arguments @@ -215,6 +224,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<0>; type AssetIdParameter = AssetId; type CallbackHandle = (); + type Holder = (); } // Configure a mock runtime to test the pallet. @@ -246,7 +256,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); diff --git a/precompiles/balances-erc20/src/eip2612.rs b/precompiles/balances-erc20/src/eip2612.rs index cd0397388..0db62f57b 100644 --- a/precompiles/balances-erc20/src/eip2612.rs +++ b/precompiles/balances-erc20/src/eip2612.rs @@ -45,6 +45,7 @@ where BalanceOf: TryFrom + Into, Metadata: Erc20Metadata, Instance: InstanceToPrefix + 'static, + ::AddressMapping: AddressMapping, { pub fn compute_domain_separator(address: H160) -> [u8; 32] { let name: H256 = keccak_256(Metadata::name().as_bytes()).into(); diff --git a/precompiles/balances-erc20/src/lib.rs b/precompiles/balances-erc20/src/lib.rs index 0bc4b3b37..362552576 100644 --- a/precompiles/balances-erc20/src/lib.rs +++ b/precompiles/balances-erc20/src/lib.rs @@ -191,6 +191,7 @@ where BalanceOf: TryFrom + Into, Metadata: Erc20Metadata, Instance: InstanceToPrefix + 'static, + ::AddressMapping: AddressMapping, { #[precompile::public("totalSupply()")] #[precompile::view] diff --git a/precompiles/balances-erc20/src/mock.rs b/precompiles/balances-erc20/src/mock.rs index 190eccb7b..3fbd0d0db 100644 --- a/precompiles/balances-erc20/src/mock.rs +++ b/precompiles/balances-erc20/src/mock.rs @@ -60,6 +60,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -93,6 +99,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } pub type Precompiles = PrecompileSetBuilder< @@ -142,7 +149,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } // Configure a mock runtime to test the pallet. @@ -200,7 +209,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); diff --git a/precompiles/batch/src/mock.rs b/precompiles/batch/src/mock.rs index f11d2e2f8..77dece541 100644 --- a/precompiles/batch/src/mock.rs +++ b/precompiles/batch/src/mock.rs @@ -70,6 +70,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -92,6 +98,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } pub type Precompiles = PrecompileSetBuilder< @@ -152,7 +159,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -182,16 +191,17 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default()} .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| { System::set_block_number(1); - pallet_evm::Pallet::::create_account( + let _ = pallet_evm::Pallet::::create_account( MockPeaqAccount::EVMu2Account.into(), hex_literal::hex!("1460006000fd").to_vec(), + None ); }); ext diff --git a/precompiles/parachain-staking/src/lib.rs b/precompiles/parachain-staking/src/lib.rs index 83894f78a..b24710155 100644 --- a/precompiles/parachain-staking/src/lib.rs +++ b/precompiles/parachain-staking/src/lib.rs @@ -64,6 +64,7 @@ where AccountIdOf: From<[u8; 32]>, [u8; 32]: From>, H256: From<[u8; 32]>, + ::AddressMapping: AddressMapping, { #[precompile::public("getCollatorList()")] #[precompile::public("get_collator_list()")] diff --git a/precompiles/parachain-staking/src/mock.rs b/precompiles/parachain-staking/src/mock.rs index 738f8738a..babe3aac5 100644 --- a/precompiles/parachain-staking/src/mock.rs +++ b/precompiles/parachain-staking/src/mock.rs @@ -102,6 +102,12 @@ impl frame_system::Config for Test { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -123,6 +129,7 @@ impl pallet_balances::Config for Test { type MaxFreezes = (); type RuntimeHoldReason = (); type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } impl pallet_aura::Config for Test { @@ -185,7 +192,9 @@ impl pallet_evm::Config for Test { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -250,6 +259,7 @@ impl pallet_session::Config for Test { type SessionHandler = ::KeyTypeIdProviders; type Keys = MockSessionKeys; type WeightInfo = (); + type DisablingStrategy = (); } parameter_types! { @@ -318,7 +328,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances.clone() } + pallet_balances::GenesisConfig:: { balances: self.balances.clone(), ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); @@ -347,7 +357,7 @@ impl ExtBuilder { // NOTE: this will initialize the aura authorities // through OneSessionHandler::on_genesis_session - pallet_session::GenesisConfig:: { keys: session_keys } + pallet_session::GenesisConfig:: { keys: session_keys, ..Default::default() } .assimilate_storage(&mut t) .expect("Session Pallet's storage can be assimilated"); diff --git a/precompiles/parachain-staking/src/tests.rs b/precompiles/parachain-staking/src/tests.rs index de1b2c92d..667e19a41 100644 --- a/precompiles/parachain-staking/src/tests.rs +++ b/precompiles/parachain-staking/src/tests.rs @@ -138,7 +138,7 @@ fn unlock_unstaked() { assert_ok!(unstaking.try_insert(3, 100)); let lock = BalanceLock { id: STAKING_ID, amount: 100, reasons: Reasons::All }; assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); // shouldn't be able to unlock anything precompiles() .prepare_test( @@ -149,7 +149,7 @@ fn unlock_unstaked() { .expect_no_logs() .execute_returns(()); assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); // join delegators and revoke again --> consume unstaking at block 3 roll_to(2, vec![]); @@ -171,8 +171,8 @@ fn unlock_unstaked() { )); unstaking.remove(&3); assert_ok!(unstaking.try_insert(4, 100)); - assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(StakePallet::unstaking(&MockPeaqAccount::Bob), unstaking); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); // shouldn't be able to unlock anything precompiles() .prepare_test( @@ -183,12 +183,12 @@ fn unlock_unstaked() { .expect_no_logs() .execute_returns(()); assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); // should reduce unlocking but not unlock anything roll_to(3, vec![]); assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); // shouldn't be able to unlock anything precompiles() .prepare_test( @@ -199,11 +199,11 @@ fn unlock_unstaked() { .expect_no_logs() .execute_returns(()); assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock.clone()]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock.clone()]); roll_to(4, vec![]); unstaking.remove(&4); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![lock]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![lock]); // shouldn't be able to unlock anything precompiles() .prepare_test( @@ -214,7 +214,7 @@ fn unlock_unstaked() { .expect_no_logs() .execute_returns(()); assert_eq!(StakePallet::unstaking(MockPeaqAccount::Bob), unstaking); - assert_eq!(Balances::locks(MockPeaqAccount::Bob), vec![]); + assert_eq!(Balances::locks(&MockPeaqAccount::Bob), vec![]); }); } diff --git a/precompiles/peaq-did/src/lib.rs b/precompiles/peaq-did/src/lib.rs index 9a8d625a4..8bef133d7 100644 --- a/precompiles/peaq-did/src/lib.rs +++ b/precompiles/peaq-did/src/lib.rs @@ -71,6 +71,7 @@ where AccountIdOf: From<[u8; 32]>, BlockNumberFor: Into, sp_core::U256: From>, + ::AddressMapping: AddressMapping, { #[precompile::public("readAttribute(address,bytes)")] #[precompile::public("read_attribute(address,bytes)")] diff --git a/precompiles/peaq-rbac/src/lib.rs b/precompiles/peaq-rbac/src/lib.rs index 0786a519b..d559c862b 100644 --- a/precompiles/peaq-rbac/src/lib.rs +++ b/precompiles/peaq-rbac/src/lib.rs @@ -68,6 +68,7 @@ where // peaq-primitives-xcm::RbacEntityId is EntityIdOf: From, H256: From<::EntityId>, + ::AddressMapping: AddressMapping, { #[precompile::public("fetchRole(address,bytes32)")] #[precompile::public("fetch_role(address,bytes32)")] diff --git a/precompiles/peaq-storage/src/lib.rs b/precompiles/peaq-storage/src/lib.rs index 83fd8b86c..6a53f000b 100644 --- a/precompiles/peaq-storage/src/lib.rs +++ b/precompiles/peaq-storage/src/lib.rs @@ -46,6 +46,7 @@ where Runtime::RuntimeCall: From>, ::RuntimeOrigin: From>>, AccountIdOf: From<[u8; 32]> + AsRef<[u8]>, + ::AddressMapping: AddressMapping, { #[precompile::public("getItem(address,bytes)")] #[precompile::public("get_item(address,bytes)")] diff --git a/precompiles/utils/src/testing/account.rs b/precompiles/utils/src/testing/account.rs index cd9a1e263..b05b226ae 100644 --- a/precompiles/utils/src/testing/account.rs +++ b/precompiles/utils/src/testing/account.rs @@ -35,6 +35,7 @@ use sp_core::{Decode, Encode, MaxEncodedLen, H160, H256}; Serialize, Deserialize, derive_more::Display, + DecodeWithMemTracking )] pub struct MockAccount(pub H160); diff --git a/precompiles/vesting/src/lib.rs b/precompiles/vesting/src/lib.rs index 93f145b8f..ac912e04b 100644 --- a/precompiles/vesting/src/lib.rs +++ b/precompiles/vesting/src/lib.rs @@ -52,6 +52,8 @@ where AccountIdOf: From<[u8; 32]>, [u8; 32]: From>, H256: From<[u8; 32]>, + ::AddressMapping: AddressMapping, + { #[precompile::public("vest()")] fn vest(handle: &mut impl PrecompileHandle) -> EvmResult { diff --git a/precompiles/vesting/src/mock.rs b/precompiles/vesting/src/mock.rs index 858a11609..12b559904 100644 --- a/precompiles/vesting/src/mock.rs +++ b/precompiles/vesting/src/mock.rs @@ -82,6 +82,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -115,6 +121,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } pub type Precompiles = @@ -162,7 +169,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -211,7 +220,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); diff --git a/precompiles/xcm-utils/src/lib.rs b/precompiles/xcm-utils/src/lib.rs index ec10a70e6..1b1682ba1 100644 --- a/precompiles/xcm-utils/src/lib.rs +++ b/precompiles/xcm-utils/src/lib.rs @@ -54,6 +54,7 @@ where <::RuntimeCall as Dispatchable>::RuntimeOrigin: From>, ::RuntimeCall: From>, + ::AddressMapping: AddressMapping, { fn is_allowed(_caller: H160, selector: Option) -> bool { match selector { @@ -82,6 +83,7 @@ where <::RuntimeCall as Dispatchable>::RuntimeOrigin: From>, ::RuntimeCall: From>, + ::AddressMapping: AddressMapping, { // Remove multilocationToAddress diff --git a/precompiles/xcm-utils/src/mock.rs b/precompiles/xcm-utils/src/mock.rs index 8db30305e..4a7fdcc3f 100644 --- a/precompiles/xcm-utils/src/mock.rs +++ b/precompiles/xcm-utils/src/mock.rs @@ -124,6 +124,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { pub const ExistentialDeposit: u128 = 1; @@ -145,6 +151,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } #[cfg(feature = "runtime-benchmarks")] @@ -182,6 +189,7 @@ impl pallet_xcm::Config for Runtime { type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; + type AuthorizedAliasConsideration = (); #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; } @@ -250,7 +258,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -398,6 +408,11 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type HrmpNewChannelOpenRequestHandler = (); + type XcmEventEmitter = (); + type XcmRecorder = (); } #[derive(Default)] @@ -417,7 +432,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); diff --git a/precompiles/xtokens/src/lib.rs b/precompiles/xtokens/src/lib.rs index 1e76a194b..36ab1efb6 100644 --- a/precompiles/xtokens/src/lib.rs +++ b/precompiles/xtokens/src/lib.rs @@ -80,6 +80,7 @@ where Runtime: EVMAddressToAssetId>, ::CurrencyId: From<::AssetId>, + ::AddressMapping: AddressMapping, { #[precompile::public("transfer(address,uint256,(uint8,bytes[]),uint64)")] fn transfer( From 361a78d717706d4bb720fd1be4232ebc74ba110b Mon Sep 17 00:00:00 2001 From: jaypan Date: Wed, 11 Jun 2025 07:10:15 +0200 Subject: [PATCH 16/98] Fix the build fail Copy from the preivous fix on the branch, peaq-polkadot-stable2407 --- runtime/peaq-dev/src/xcm_config.rs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index faaf3c143..0c3429707 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -4,12 +4,13 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury}; +use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin}, + traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, }; +use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -243,8 +244,24 @@ pub type PeaqXcmFungibleFeeHandler = XcmFungibleFeeHandler< PeaqPotAccount, >; +// Make the wrapper for the BlockReward +// Put here because NegativeImbalance::new is not implemented in the standard NegativeImbalance +// trait +pub struct BlockRewardWrapper; +impl OnUnbalanced> for BlockRewardWrapper { + fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { + if let Some(fees) = fees_then_tips.next() { + >::on_unbalanced(NegativeImbalance::new(fees.peek())); + } + } + + fn on_unbalanced(amount: Credit) { + Self::on_unbalanceds(Some(amount).into_iter()); + } +} + pub type Trader = ( - UsingComponents, + UsingComponents, FixedRateOfForeignAsset, ); From 64a9c1546c490e1150711fe0b84efe6676402100 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 11 Jun 2025 13:53:43 +0500 Subject: [PATCH 17/98] (WIP) fixed all build issues in precompiles and pallets --- precompiles/xcm-utils/src/tests.rs | 14 +++++++------- precompiles/xtokens/src/lib.rs | 20 ++++++++++---------- precompiles/xtokens/src/mock.rs | 20 ++++++++++++++++++-- 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/precompiles/xcm-utils/src/tests.rs b/precompiles/xcm-utils/src/tests.rs index 5c509965f..76a449c4f 100644 --- a/precompiles/xcm-utils/src/tests.rs +++ b/precompiles/xcm-utils/src/tests.rs @@ -60,7 +60,7 @@ fn modifiers() { #[test] fn test_weight_message() { ExtBuilder::default().build().execute_with(|| { - let message: Vec = xcm::VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + let message: Vec = xcm::VersionedXcm::<()>::V5(Xcm(vec![ClearOrigin])).encode(); let input = PCall::weight_message { message: message.into() }; @@ -88,7 +88,7 @@ fn test_get_units_per_second() { #[test] fn test_executor_clear_origin() { ExtBuilder::default().build().execute_with(|| { - let xcm_to_execute = VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + let xcm_to_execute = VersionedXcm::<()>::V5(Xcm(vec![ClearOrigin])).encode(); let input = PCall::xcm_execute { message: xcm_to_execute.into(), max_weight: 10000u64 }; @@ -104,7 +104,7 @@ fn test_executor_clear_origin() { fn test_executor_send() { ExtBuilder::default().build().execute_with(|| { let withdrawn_asset: Asset = (Location::parent(), 1u128).into(); - let xcm_to_execute = VersionedXcm::<()>::V4(Xcm(vec![ + let xcm_to_execute = VersionedXcm::<()>::V5(Xcm(vec![ WithdrawAsset(vec![withdrawn_asset].into()), InitiateReserveWithdraw { assets: AssetFilter::Wild(All), @@ -151,9 +151,9 @@ fn test_executor_transact() { .encode(); encoded.append(&mut call_bytes); - let xcm_to_execute = VersionedXcm::<()>::V4(Xcm(vec![Transact { + let xcm_to_execute = VersionedXcm::<()>::V5(Xcm(vec![Transact { origin_kind: OriginKind::SovereignAccount, - require_weight_at_most: Weight::from_parts(1_000_000_000u64, 5206u64), + fallback_max_weight: None, call: encoded.into(), }])) .encode(); @@ -175,7 +175,7 @@ fn test_executor_transact() { #[test] fn test_send_clear_origin() { ExtBuilder::default().build().execute_with(|| { - let xcm_to_send = VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + let xcm_to_send = VersionedXcm::<()>::V5(Xcm(vec![ClearOrigin])).encode(); let input = PCall::xcm_send { dest: Location::parent(), message: xcm_to_send.into() }; @@ -205,7 +205,7 @@ fn execute_fails_if_called_by_smart_contract() { vec![10u8], ); - let xcm_to_execute = VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + let xcm_to_execute = VersionedXcm::<()>::V5(Xcm(vec![ClearOrigin])).encode(); let input = PCall::xcm_execute { message: xcm_to_execute.into(), max_weight: 10000u64 }; diff --git a/precompiles/xtokens/src/lib.rs b/precompiles/xtokens/src/lib.rs index 36ab1efb6..101a766ff 100644 --- a/precompiles/xtokens/src/lib.rs +++ b/precompiles/xtokens/src/lib.rs @@ -110,7 +110,7 @@ where let call = orml_xtokens::Call::::transfer { currency_id: asset_id.into(), amount, - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; @@ -157,7 +157,7 @@ where currency_id: asset_id.into(), amount, fee, - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; @@ -187,11 +187,11 @@ where }; let call = orml_xtokens::Call::::transfer_multiasset { - asset: Box::new(VersionedAsset::V4(Asset { + asset: Box::new(VersionedAsset::from(Asset { id: AssetId(asset), fun: Fungibility::Fungible(to_balance), })), - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; @@ -229,15 +229,15 @@ where }; let call = orml_xtokens::Call::::transfer_multiasset_with_fee { - asset: Box::new(VersionedAsset::V4(Asset { + asset: Box::new(VersionedAsset::from(Asset { id: AssetId(asset.clone()), fun: Fungibility::Fungible(amount), })), - fee: Box::new(VersionedAsset::V4(Asset { + fee: Box::new(VersionedAsset::from(Asset { id: AssetId(asset), fun: Fungibility::Fungible(fee), })), - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; @@ -296,7 +296,7 @@ where let call = orml_xtokens::Call::::transfer_multicurrencies { currencies, fee_item, - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; @@ -348,9 +348,9 @@ where }; let call = orml_xtokens::Call::::transfer_multiassets { - assets: Box::new(VersionedAssets::V4(assets)), + assets: Box::new(VersionedAssets::from(assets)), fee_item, - dest: Box::new(VersionedLocation::V4(destination)), + dest: Box::new(VersionedLocation::from(destination)), dest_weight_limit, }; diff --git a/precompiles/xtokens/src/mock.rs b/precompiles/xtokens/src/mock.rs index d3b07b2c7..d8c2c3d58 100644 --- a/precompiles/xtokens/src/mock.rs +++ b/precompiles/xtokens/src/mock.rs @@ -109,6 +109,12 @@ impl frame_system::Config for Runtime { type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; type RuntimeTask = (); + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); } parameter_types! { @@ -142,6 +148,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = (); + type DoneSlashHandler = (); } pub type Precompiles = @@ -189,7 +196,9 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; - type SuicideQuickClearLimit = (); + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } // These parameters dont matter much as this will only be called by root with the forced arguments @@ -222,6 +231,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<0>; type AssetIdParameter = AssetId; type CallbackHandle = (); + type Holder = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -306,6 +316,7 @@ impl pallet_xcm::Config for Runtime { type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); type AdminOrigin = frame_system::EnsureRoot; + type AuthorizedAliasConsideration = (); #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; } @@ -337,6 +348,11 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type HrmpNewChannelOpenRequestHandler = (); + type XcmEventEmitter = (); + type XcmRecorder = (); } pub struct CurrencyIdToLocation; @@ -443,7 +459,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances } + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); From 356c165c9a598e130eb87760aa3f4cf699362d89 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 11 Jun 2025 14:05:30 +0500 Subject: [PATCH 18/98] reintroduce precompiles into peaq dev runtime --- Cargo.lock | 10 ++ runtime/peaq-dev/Cargo.toml | 40 +++---- runtime/peaq-dev/src/precompiles.rs | 174 ++++++++++++++-------------- 3 files changed, 117 insertions(+), 107 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f3ba7ac2..99bb41e42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9541,12 +9541,22 @@ dependencies = [ "pallet-ethereum", "pallet-evm", "pallet-evm-precompile-assets-erc20", + "pallet-evm-precompile-assets-factory", + "pallet-evm-precompile-balances-erc20", + "pallet-evm-precompile-batch", "pallet-evm-precompile-blake2", "pallet-evm-precompile-bn128", "pallet-evm-precompile-dispatch", "pallet-evm-precompile-modexp", + "pallet-evm-precompile-parachain-staking", + "pallet-evm-precompile-peaq-did", + "pallet-evm-precompile-peaq-rbac", + "pallet-evm-precompile-peaq-storage", "pallet-evm-precompile-sha3fips", "pallet-evm-precompile-simple", + "pallet-evm-precompile-vesting", + "pallet-evm-precompile-xcm-utils", + "pallet-evm-precompile-xtokens", "pallet-insecure-randomness-collective-flip", "pallet-message-queue", "pallet-multisig", diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 8af598193..ace378226 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -113,15 +113,15 @@ pallet-block-reward = { path = "../../pallets/block-reward", default-features = peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } precompile-utils = { path = "../../precompiles/utils", default-features = false } pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } -# pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } -# pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} -# pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } -# pallet-evm-precompile-peaq-did = { path = "../../precompiles/peaq-did", default-features = false } -# pallet-evm-precompile-peaq-storage = { path = "../../precompiles/peaq-storage", default-features = false } -# pallet-evm-precompile-xtokens = { path = "../../precompiles/xtokens", default-features = false } -# pallet-evm-precompile-xcm-utils = { path = "../../precompiles/xcm-utils", default-features = false } -# pallet-evm-precompile-parachain-staking = { path = "../../precompiles/parachain-staking", default-features = false } -# pallet-evm-precompile-vesting = { path = "../../precompiles/vesting", default-features = false } +pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } +pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} +pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } +pallet-evm-precompile-peaq-did = { path = "../../precompiles/peaq-did", default-features = false } +pallet-evm-precompile-peaq-storage = { path = "../../precompiles/peaq-storage", default-features = false } +pallet-evm-precompile-xtokens = { path = "../../precompiles/xtokens", default-features = false } +pallet-evm-precompile-xcm-utils = { path = "../../precompiles/xcm-utils", default-features = false } +pallet-evm-precompile-parachain-staking = { path = "../../precompiles/parachain-staking", default-features = false } +pallet-evm-precompile-vesting = { path = "../../precompiles/vesting", default-features = false } runtime-common = { path = "../common", default-features = false } peaq-pallet-mor = { workspace = true, default-features = false } xc-asset-config = { path = "../../pallets/xc-asset-config", default-features = false } @@ -137,7 +137,7 @@ frame-try-runtime = { workspace = true, default-features = false, optional = tru log = {workspace = true, default-features = false} ethereum = {workspace = true, default-features = false} -# pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } +pallet-evm-precompile-peaq-rbac = { path = "../../precompiles/peaq-rbac", default-features = false } [features] default = ["std", "aura"] @@ -283,16 +283,16 @@ std = [ "runtime-common/std", "pallet-evm-precompile-assets-erc20/std", - # "pallet-evm-precompile-assets-factory/std", - # "pallet-evm-precompile-balances-erc20/std", - # "pallet-evm-precompile-batch/std", - # "pallet-evm-precompile-peaq-did/std", - # "pallet-evm-precompile-peaq-storage/std", - # "pallet-evm-precompile-xtokens/std", - # "pallet-evm-precompile-xcm-utils/std", - # "pallet-evm-precompile-peaq-rbac/std", - # "pallet-evm-precompile-parachain-staking/std", - # "pallet-evm-precompile-vesting/std", + "pallet-evm-precompile-assets-factory/std", + "pallet-evm-precompile-balances-erc20/std", + "pallet-evm-precompile-batch/std", + "pallet-evm-precompile-peaq-did/std", + "pallet-evm-precompile-peaq-storage/std", + "pallet-evm-precompile-xtokens/std", + "pallet-evm-precompile-xcm-utils/std", + "pallet-evm-precompile-peaq-rbac/std", + "pallet-evm-precompile-parachain-staking/std", + "pallet-evm-precompile-vesting/std", "pallet-xcm/std", "inflation-manager/std", "pallet-message-queue/std", diff --git a/runtime/peaq-dev/src/precompiles.rs b/runtime/peaq-dev/src/precompiles.rs index 094cae409..38d9c4d6c 100644 --- a/runtime/peaq-dev/src/precompiles.rs +++ b/runtime/peaq-dev/src/precompiles.rs @@ -1,50 +1,50 @@ use crate::xcm_config::XcmConfig; use frame_support::parameter_types; use pallet_evm_precompile_assets_erc20::Erc20AssetsPrecompileSet; -// use pallet_evm_precompile_assets_factory::AssetsFactoryPrecompile; -// use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; -// use pallet_evm_precompile_batch::BatchPrecompile; +use pallet_evm_precompile_assets_factory::AssetsFactoryPrecompile; +use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; +use pallet_evm_precompile_batch::BatchPrecompile; use pallet_evm_precompile_blake2::Blake2F; use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; use pallet_evm_precompile_modexp::Modexp; -// use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; -// use pallet_evm_precompile_peaq_did::PeaqDIDPrecompile; -// use pallet_evm_precompile_peaq_rbac::PeaqRbacPrecompile; -// use pallet_evm_precompile_peaq_storage::PeaqStoragePrecompile; +use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; +use pallet_evm_precompile_peaq_did::PeaqDIDPrecompile; +use pallet_evm_precompile_peaq_rbac::PeaqRbacPrecompile; +use pallet_evm_precompile_peaq_storage::PeaqStoragePrecompile; use pallet_evm_precompile_sha3fips::Sha3FIPS256; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; -// use pallet_evm_precompile_vesting::VestingPrecompile; -// use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; -// use pallet_evm_precompile_xtokens::XtokensPrecompile; +use pallet_evm_precompile_vesting::VestingPrecompile; +use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; +use pallet_evm_precompile_xtokens::XtokensPrecompile; use precompile_utils::precompile_set::*; type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); -// /// ERC20 metadata for the native token. -// pub struct NativeErc20Metadata; +/// ERC20 metadata for the native token. +pub struct NativeErc20Metadata; -// impl Erc20Metadata for NativeErc20Metadata { -// /// Returns the name of the token. -// fn name() -> &'static str { -// "Agung token" -// } +impl Erc20Metadata for NativeErc20Metadata { + /// Returns the name of the token. + fn name() -> &'static str { + "Agung token" + } -// /// Returns the symbol of the token. -// fn symbol() -> &'static str { -// "AGNG" -// } + /// Returns the symbol of the token. + fn symbol() -> &'static str { + "AGNG" + } -// /// Returns the decimals places of the token. -// fn decimals() -> u8 { -// 18 -// } + /// Returns the decimals places of the token. + fn decimals() -> u8 { + 18 + } -// /// Must return `true` only if it represents the main native currency of -// /// the network. It must be the currency used in `pallet_evm`. -// fn is_native_currency() -> bool { -// true -// } -// } + /// Must return `true` only if it represents the main native currency of + /// the network. It must be the currency used in `pallet_evm`. + fn is_native_currency() -> bool { + true + } +} const ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; parameter_types! { @@ -84,62 +84,62 @@ pub type PeaqPrecompiles = PrecompileSetBuilder< ECRecoverPublicKey, (CallableByContract, CallableByPrecompile), >, - // PrecompileAt< - // AddressU64<2048>, - // PeaqDIDPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2049>, - // PeaqStoragePrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2050>, - // PeaqRbacPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2051>, - // XtokensPrecompile, - // (SubcallWithMaxNesting<1>, CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2052>, - // XcmUtilsPrecompile, - // CallableByContract< - // pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, - // >, - // >, - // PrecompileAt< - // AddressU64<2053>, - // BatchPrecompile, - // ( - // SubcallWithMaxNesting<2>, - // // Batch is the only precompile allowed to call Batch. - // CallableByPrecompile>>, - // ), - // >, - // PrecompileAt< - // AddressU64<2054>, - // AssetsFactoryPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2055>, - // ParachainStakingPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2056>, - // VestingPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, - // PrecompileAt< - // AddressU64<2057>, - // Erc20BalancesPrecompile, - // (CallableByPrecompile, CallableByContract), - // >, + PrecompileAt< + AddressU64<2048>, + PeaqDIDPrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2049>, + PeaqStoragePrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2050>, + PeaqRbacPrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2051>, + XtokensPrecompile, + (SubcallWithMaxNesting<1>, CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2052>, + XcmUtilsPrecompile, + CallableByContract< + pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, + >, + >, + PrecompileAt< + AddressU64<2053>, + BatchPrecompile, + ( + SubcallWithMaxNesting<2>, + // Batch is the only precompile allowed to call Batch. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2054>, + AssetsFactoryPrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2055>, + ParachainStakingPrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2056>, + VestingPrecompile, + (CallableByPrecompile, CallableByContract), + >, + PrecompileAt< + AddressU64<2057>, + Erc20BalancesPrecompile, + (CallableByPrecompile, CallableByContract), + >, ), >, PrecompileSetStartingWith< From aecb104c40bc28d14061a27272fca2174be8f033 Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 09:02:46 +0200 Subject: [PATCH 19/98] Update runtime --- runtime/krest/src/lib.rs | 96 ++++++++++++++++--------- runtime/krest/src/weights/pallet_xcm.rs | 4 ++ runtime/krest/src/xcm_config.rs | 41 +++++++++-- runtime/peaq/src/lib.rs | 94 +++++++++++++++--------- runtime/peaq/src/weights/pallet_xcm.rs | 4 ++ runtime/peaq/src/xcm_config.rs | 41 +++++++++-- 6 files changed, 199 insertions(+), 81 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index ba481f95c..234d7b27a 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -36,7 +36,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::traits::IdentityLookup; +use sp_runtime::{traits::IdentityLookup, generic::Preamble}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -47,7 +47,7 @@ use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, H256, U256}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, DispatchInfoOf, Dispatchable, OpaqueKeys, PostDispatchInfoOf, SaturatedConversion, @@ -58,7 +58,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec}; +use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -175,8 +175,8 @@ pub mod opaque { // https://docs.substrate.io/v3/runtime/origins#runtime-versioning #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("peaq-node-krest"), - impl_name: create_runtime_str!("peaq-node-krest"), + spec_name: Cow::Borrowed("peaq-node-krest"), + impl_name: Cow::Borrowed("peaq-node-krest"), authoring_version: 1, // The version of the runtime specification. A full node will not attempt to use its native // runtime in substitute for the on-chain Wasm runtime unless all of `spec_name`, @@ -187,7 +187,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -346,6 +346,13 @@ impl frame_system::Config for Runtime { type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type RuntimeTask = RuntimeTask; + + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type SingleBlockMigrations = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); } impl pallet_aura::Config for Runtime { @@ -411,6 +418,11 @@ impl pallet_contracts::Config for Runtime { type Debug = (); type Environment = (); type Xcm = (); + + type ApiVersion = (); + type InstantiateOrigin = EnsureSigned<::AccountId>; + type MaxTransientStorageSize = (); + type UploadOrigin = EnsureSigned<::AccountId>; } parameter_types! { @@ -450,6 +462,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; + type DoneSlashHandler = (); } parameter_types! { @@ -513,6 +526,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = (); } impl pallet_sudo::Config for Runtime { @@ -564,6 +578,9 @@ impl pallet_collective::Config for Runtime { type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; type MaxProposalWeight = MaxProposalWeight; + type DisapproveOrigin = EnsureRoot; + type Consideration = (); + type KillOrigin = EnsureRoot; } // Config the treasyry in pallets/treasury @@ -585,19 +602,19 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; + // type ApproveOrigin = EitherOfDiverse< + // EnsureRoot, + // pallet_collective::EnsureProportionAtLeast, + // >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; //type RuntimeEvent = RuntimeEvent; - type OnSlash = (); - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); + // type OnSlash = (); + // type ProposalBond = ProposalBond; + // type ProposalBondMinimum = ProposalBondMinimum; + // type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); @@ -613,6 +630,8 @@ impl pallet_treasury::Config for Runtime { type Paymaster = PayFromAccount; type BalanceConverter = UnityAssetBalanceConversion; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + + type BlockNumberProvider = System; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -625,7 +644,7 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -693,14 +712,18 @@ impl pallet_evm::Config for Runtime { type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; - type OnChargeTransaction = OnChargeEVMTransaction; + type OnChargeTransaction = OnChargeEVMTransaction; type OnCreate = (); type FindAuthor = FindAuthorTruncated; type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - type SuicideQuickClearLimit = ConstU32<0>; + // type SuicideQuickClearLimit = ConstU32<0>; + // TODO verify this + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -709,7 +732,7 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot; + type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } @@ -760,6 +783,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); + type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; } type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -798,6 +822,7 @@ impl pallet_session::Config for Runtime { type SessionHandler = ::KeyTypeIdProviders; type Keys = opaque::SessionKeys; type WeightInfo = pallet_session::weights::SubstrateWeight; + type DisablingStrategy = (); } pub mod staking { @@ -1059,6 +1084,7 @@ impl pallet_scheduler::Config for Runtime { type WeightInfo = pallet_scheduler::weights::SubstrateWeight; type OriginPrivilegeCmp = EqualPrivilegeOnly; type Preimages = Preimage; + type BlockNumberProvider = System; } parameter_types! { @@ -1106,7 +1132,7 @@ construct_runtime!( // Parachain InflationManager: inflation_manager::{Pallet, Call, Storage, Config, Event} = 15, Authorship: pallet_authorship::{Pallet, Storage} = 20, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, AuraExt: cumulus_pallet_aura_ext = 22, ParachainStaking: parachain_staking = 23, ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 24, @@ -1269,7 +1295,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1346,13 +1372,15 @@ impl_runtime_apis! { RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, _ => { - let tip = match xt.0.signature { - None => 0, - Some((_, _, ref signed_extra)) => { - // Yuck, this depends on the index of charge transaction in Signed Extra - let charge_transaction = &signed_extra.7; - charge_transaction.tip() - } + let tip = match &xt.0.preamble { + Preamble::Bare(_) => 0, + Preamble::Signed(_, _, signed_extra) => { + // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra + // Get the 7th item from the tuple + let charge_transaction_payment = &signed_extra.7; + charge_transaction_payment.tip() + }, + Preamble::General(_, _) => 0, }; // Calculate the fee that will be taken by pallet transaction payment @@ -1365,7 +1393,7 @@ impl_runtime_apis! { // Calculate how much gas this effectively uses according to the existing mapping let effective_gas = ::GasWeightMapping::weight_to_gas( - dispatch_info.weight + dispatch_info.total_weight() ); // Here we calculate an ethereum-style effective gas price using the @@ -1398,7 +1426,7 @@ impl_runtime_apis! { } fn authorities() -> Vec { - Aura::authorities().to_vec() + pallet_aura::Authorities::::get().to_vec() } } @@ -1562,9 +1590,7 @@ impl_runtime_apis! { } 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[..])) + pallet_evm::AccountStorages::::get(address, H256::from_slice(&index.to_big_endian())) } fn call( @@ -1770,7 +1796,7 @@ impl_runtime_apis! { } fn initialize_pending_block(header: &::Header) { - Executive::initialize_block(header) + Executive::initialize_block(header); } } @@ -1778,7 +1804,7 @@ impl_runtime_apis! { fn convert_transaction( transaction: pallet_ethereum::Transaction ) -> ::Extrinsic { - UncheckedExtrinsic::new_unsigned( + UncheckedExtrinsic::new_bare( pallet_ethereum::Call::::transact { transaction }.into(), ) } @@ -2122,6 +2148,7 @@ impl pallet_multisig::Config for Runtime { type DepositFactor = DepositFactor; type MaxSignatories = MaxSignatories; type WeightInfo = (); + type BlockNumberProvider = System; } cumulus_pallet_parachain_system::register_validate_block! { @@ -2176,6 +2203,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<1000>; type AssetIdParameter = StorageAssetId; type CallbackHandle = EvmRevertCodeHandler; + type Holder = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } diff --git a/runtime/krest/src/weights/pallet_xcm.rs b/runtime/krest/src/weights/pallet_xcm.rs index dc075e182..560166c25 100644 --- a/runtime/krest/src/weights/pallet_xcm.rs +++ b/runtime/krest/src/weights/pallet_xcm.rs @@ -318,6 +318,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + + fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } + fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } } #[cfg(test)] diff --git a/runtime/krest/src/xcm_config.rs b/runtime/krest/src/xcm_config.rs index 306d2bcb7..fadd594f8 100644 --- a/runtime/krest/src/xcm_config.rs +++ b/runtime/krest/src/xcm_config.rs @@ -4,12 +4,13 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury}; +use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin}, + traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, }; +use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -26,7 +27,7 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::latest::{prelude::*, Asset}; +use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, @@ -35,7 +36,7 @@ use xcm_builder::{ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, SendXcmFeeToAccount, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -45,7 +46,7 @@ use sp_std::marker::PhantomData; use xcm_executor::traits::MatchesFungibles; parameter_types! { - pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub RelayNetwork: NetworkId = NetworkId::Kusama.into(); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); @@ -243,8 +244,24 @@ pub type PeaqXcmFungibleFeeHandler = XcmFungibleFeeHandler< PeaqPotAccount, >; +// Make the wrapper for the BlockReward +// Put here because NegativeImbalance::new is not implemented in the standard NegativeImbalance +// trait +pub struct BlockRewardWrapper; +impl OnUnbalanced> for BlockRewardWrapper { + fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { + if let Some(fees) = fees_then_tips.next() { + >::on_unbalanced(NegativeImbalance::new(fees.peek())); + } + } + + fn on_unbalanced(amount: Credit) { + Self::on_unbalanceds(Some(amount).into_iter()); + } +} + pub type Trader = ( - UsingComponents, + UsingComponents, FixedRateOfForeignAsset, ); @@ -295,7 +312,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< (), - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; @@ -303,6 +320,12 @@ impl xcm_executor::Config for XcmConfig { type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type HrmpNewChannelOpenRequestHandler = (); + type XcmEventEmitter = (); + type XcmRecorder = (); } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -348,6 +371,7 @@ impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); + type AuthorizedAliasConsideration = (); } impl cumulus_pallet_xcm::Config for Runtime { @@ -365,6 +389,8 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); + type MaxActiveOutboundChannels = (); + type MaxPageSize = (); } parameter_types! { @@ -473,4 +499,5 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index e7b562876..6a7486bfc 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -36,7 +36,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::traits::IdentityLookup; +use sp_runtime::{traits::IdentityLookup, generic::Preamble}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -59,7 +59,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, FixedPointNumber, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec}; +use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -202,8 +202,8 @@ pub mod opaque { // https://docs.substrate.io/v3/runtime/origins#runtime-versioning #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("peaq-node"), - impl_name: create_runtime_str!("peaq-node"), + spec_name: Cow::Borrowed("peaq-node"), + impl_name: Cow::Borrowed("peaq-node"), authoring_version: 1, // The version of the runtime specification. A full node will not attempt to use its native // runtime in substitute for the on-chain Wasm runtime unless all of `spec_name`, @@ -214,7 +214,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, - state_version: 1, + system_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -373,6 +373,13 @@ impl frame_system::Config for Runtime { type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; type RuntimeTask = RuntimeTask; + + type ExtensionsWeightInfo = (); + type MultiBlockMigrator = (); + type SingleBlockMigrations = (); + type PostInherents = (); + type PreInherents = (); + type PostTransactions = (); } impl pallet_aura::Config for Runtime { @@ -438,6 +445,11 @@ impl pallet_contracts::Config for Runtime { type Debug = (); type Environment = (); type Xcm = (); + + type ApiVersion = (); + type InstantiateOrigin = EnsureSigned<::AccountId>; + type MaxTransientStorageSize = (); + type UploadOrigin = EnsureSigned<::AccountId>; } parameter_types! { @@ -477,6 +489,7 @@ impl pallet_balances::Config for Runtime { type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; + type DoneSlashHandler = (); } parameter_types! { @@ -540,6 +553,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type WeightInfo = (); } impl pallet_sudo::Config for Runtime { @@ -591,6 +605,9 @@ impl pallet_collective::Config for Runtime { type WeightInfo = pallet_collective::weights::SubstrateWeight; type SetMembersOrigin = EnsureRoot; type MaxProposalWeight = MaxProposalWeight; + type DisapproveOrigin = EnsureRoot; + type Consideration = (); + type KillOrigin = EnsureRoot; } // Config the treasyry in pallets/treasury @@ -612,19 +629,19 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type ApproveOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionAtLeast, - >; + // type ApproveOrigin = EitherOfDiverse< + // EnsureRoot, + // pallet_collective::EnsureProportionAtLeast, + // >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; //type RuntimeEvent = RuntimeEvent; - type OnSlash = (); - type ProposalBond = ProposalBond; - type ProposalBondMinimum = ProposalBondMinimum; - type ProposalBondMaximum = (); + // type OnSlash = (); + // type ProposalBond = ProposalBond; + // type ProposalBondMinimum = ProposalBondMinimum; + // type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); @@ -640,6 +657,8 @@ impl pallet_treasury::Config for Runtime { type Paymaster = PayFromAccount; type BalanceConverter = UnityAssetBalanceConversion; type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + + type BlockNumberProvider = System; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -652,7 +671,7 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = Aura::authorities()[author_index as usize].clone(); + let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -742,14 +761,18 @@ impl pallet_evm::Config for Runtime { type PrecompilesValue = PrecompilesValue; type ChainId = EvmChainId; type BlockGasLimit = BlockGasLimit; - type OnChargeTransaction = OnChargeEVMTransaction; + type OnChargeTransaction = OnChargeEVMTransaction; type OnCreate = (); type FindAuthor = FindAuthorTruncated; type GasLimitPovSizeRatio = GasLimitPovSizeRatio; type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - type SuicideQuickClearLimit = ConstU32<0>; + // type SuicideQuickClearLimit = ConstU32<0>; + // TODO verify this + type AccountProvider = pallet_evm::FrameSystemAccountProvider; + type CreateInnerOriginFilter = (); + type CreateOriginFilter = (); } parameter_types! { @@ -758,7 +781,7 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot; + type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } @@ -784,6 +807,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = ConsensusHook; type CheckAssociatedRelayNumber = RelayNumberMonotonicallyIncreases; type WeightInfo = (); + type SelectCore = cumulus_pallet_parachain_system::DefaultCoreSelector; } type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< @@ -822,6 +846,7 @@ impl pallet_session::Config for Runtime { type SessionHandler = ::KeyTypeIdProviders; type Keys = opaque::SessionKeys; type WeightInfo = pallet_session::weights::SubstrateWeight; + type DisablingStrategy = (); } pub mod staking { @@ -1092,6 +1117,7 @@ impl pallet_scheduler::Config for Runtime { type WeightInfo = pallet_scheduler::weights::SubstrateWeight; type OriginPrivilegeCmp = EqualPrivilegeOnly; type Preimages = Preimage; + type BlockNumberProvider = System; } parameter_types! { @@ -1139,7 +1165,7 @@ construct_runtime!( // Parachain InflationManager: inflation_manager::{Pallet, Call, Storage, Config, Event} = 15, Authorship: pallet_authorship::{Pallet, Storage} = 20, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 21, AuraExt: cumulus_pallet_aura_ext = 22, ParachainStaking: parachain_staking = 23, ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 24, @@ -1302,7 +1328,7 @@ impl_runtime_apis! { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -1379,13 +1405,15 @@ impl_runtime_apis! { RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, _ => { - let tip = match xt.0.signature { - None => 0, - Some((_, _, ref signed_extra)) => { - // Yuck, this depends on the index of charge transaction in Signed Extra - let charge_transaction = &signed_extra.7; - charge_transaction.tip() - } + let tip = match &xt.0.preamble { + Preamble::Bare(_) => 0, + Preamble::Signed(_, _, signed_extra) => { + // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra + // Get the 7th item from the tuple + let charge_transaction_payment = &signed_extra.7; + charge_transaction_payment.tip() + }, + Preamble::General(_, _) => 0, }; // Calculate the fee that will be taken by pallet transaction payment @@ -1398,7 +1426,7 @@ impl_runtime_apis! { // Calculate how much gas this effectively uses according to the existing mapping let effective_gas = ::GasWeightMapping::weight_to_gas( - dispatch_info.weight + dispatch_info.total_weight() ); // Here we calculate an ethereum-style effective gas price using the @@ -1431,7 +1459,7 @@ impl_runtime_apis! { } fn authorities() -> Vec { - Aura::authorities().to_vec() + pallet_aura::Authorities::::get().to_vec() } } @@ -1595,9 +1623,7 @@ impl_runtime_apis! { } 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[..])) + pallet_evm::AccountStorages::::get(address, H256::from_slice(&index.to_big_endian())) } fn call( @@ -1803,7 +1829,7 @@ impl_runtime_apis! { } fn initialize_pending_block(header: &::Header) { - Executive::initialize_block(header) + Executive::initialize_block(header); } } @@ -1811,7 +1837,7 @@ impl_runtime_apis! { fn convert_transaction( transaction: pallet_ethereum::Transaction ) -> ::Extrinsic { - UncheckedExtrinsic::new_unsigned( + UncheckedExtrinsic::new_bare( pallet_ethereum::Call::::transact { transaction }.into(), ) } @@ -2155,6 +2181,7 @@ impl pallet_multisig::Config for Runtime { type DepositFactor = DepositFactor; type MaxSignatories = MaxSignatories; type WeightInfo = (); + type BlockNumberProvider = System; } cumulus_pallet_parachain_system::register_validate_block! { @@ -2209,6 +2236,7 @@ impl pallet_assets::Config for Runtime { type RemoveItemsLimit = ConstU32<1000>; type AssetIdParameter = StorageAssetId; type CallbackHandle = EvmRevertCodeHandler; + type Holder = (); #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } diff --git a/runtime/peaq/src/weights/pallet_xcm.rs b/runtime/peaq/src/weights/pallet_xcm.rs index dc075e182..560166c25 100644 --- a/runtime/peaq/src/weights/pallet_xcm.rs +++ b/runtime/peaq/src/weights/pallet_xcm.rs @@ -318,6 +318,10 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } + + fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } + fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } } #[cfg(test)] diff --git a/runtime/peaq/src/xcm_config.rs b/runtime/peaq/src/xcm_config.rs index 5ede40d2b..81f1fde74 100644 --- a/runtime/peaq/src/xcm_config.rs +++ b/runtime/peaq/src/xcm_config.rs @@ -4,12 +4,13 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury}; +use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin}, + traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, }; +use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -26,7 +27,7 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::latest::{prelude::*, Asset}; +use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, @@ -35,7 +36,7 @@ use xcm_builder::{ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, SendXcmFeeToAccount, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -45,7 +46,7 @@ use sp_std::marker::PhantomData; use xcm_executor::traits::MatchesFungibles; parameter_types! { - pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub RelayNetwork: NetworkId = OldNetworkId::Polkadot.into(); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); @@ -243,8 +244,24 @@ pub type PeaqXcmFungibleFeeHandler = XcmFungibleFeeHandler< PeaqPotAccount, >; +// Make the wrapper for the BlockReward +// Put here because NegativeImbalance::new is not implemented in the standard NegativeImbalance +// trait +pub struct BlockRewardWrapper; +impl OnUnbalanced> for BlockRewardWrapper { + fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { + if let Some(fees) = fees_then_tips.next() { + >::on_unbalanced(NegativeImbalance::new(fees.peek())); + } + } + + fn on_unbalanced(amount: Credit) { + Self::on_unbalanceds(Some(amount).into_iter()); + } +} + pub type Trader = ( - UsingComponents, + UsingComponents, FixedRateOfForeignAsset, ); @@ -295,7 +312,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< (), - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; @@ -303,6 +320,12 @@ impl xcm_executor::Config for XcmConfig { type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); + type HrmpNewChannelOpenRequestHandler = (); + type XcmEventEmitter = (); + type XcmRecorder = (); } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -348,6 +371,7 @@ impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); + type AuthorizedAliasConsideration = (); } impl cumulus_pallet_xcm::Config for Runtime { @@ -365,6 +389,8 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); + type MaxActiveOutboundChannels = (); + type MaxPageSize = (); } parameter_types! { @@ -473,4 +499,5 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } From 6b869f40b22faf950fa6cbcca3b563bebb42a00d Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 09:23:38 +0200 Subject: [PATCH 20/98] Add primitives from moonbeam --- primitives/rpc/debug/src/lib.rs | 19 ++++- primitives/rpc/evm-tracing-events/src/evm.rs | 80 ++++++++++++++--- .../rpc/evm-tracing-events/src/gasometer.rs | 59 ++++++++++--- primitives/rpc/evm-tracing-events/src/lib.rs | 8 +- .../rpc/evm-tracing-events/src/runtime.rs | 85 ++++++++++++++----- primitives/rpc/txpool/src/lib.rs | 9 +- 6 files changed, 204 insertions(+), 56 deletions(-) diff --git a/primitives/rpc/debug/src/lib.rs b/primitives/rpc/debug/src/lib.rs index abc4c1931..c6613b2c2 100644 --- a/primitives/rpc/debug/src/lib.rs +++ b/primitives/rpc/debug/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -17,7 +17,7 @@ #![cfg_attr(not(feature = "std"), no_std)] use ethereum::{TransactionV0 as LegacyTransaction, TransactionV2 as Transaction}; -use ethereum_types::H256; +use ethereum_types::{H160, H256, U256}; use parity_scale_codec::{Decode, Encode}; use sp_std::vec::Vec; @@ -30,7 +30,7 @@ sp_api::decl_runtime_apis! { // In order to be able to use ApiExt as part of the RPC handler logic we need to be always // above the version that exists on chain for this Api, even if this Api is only meant // to be used overridden. - #[api_version(5)] + #[api_version(6)] pub trait DebugRuntimeApi { #[changed_in(5)] fn trace_transaction( @@ -61,6 +61,19 @@ sp_api::decl_runtime_apis! { known_transactions: Vec, header: &Block::Header, ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_call( + header: &Block::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError>; } } diff --git a/primitives/rpc/evm-tracing-events/src/evm.rs b/primitives/rpc/evm-tracing-events/src/evm.rs index a957f37a1..50ef242eb 100644 --- a/primitives/rpc/evm-tracing-events/src/evm.rs +++ b/primitives/rpc/evm-tracing-events/src/evm.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -33,7 +33,11 @@ pub struct Transfer { impl From for Transfer { fn from(i: evm_runtime::Transfer) -> Self { - Self { source: i.source, target: i.target, value: i.value } + Self { + source: i.source, + target: i.target, + value: i.value, + } } } @@ -61,8 +65,15 @@ impl From for CreateScheme { fn from(i: evm_runtime::CreateScheme) -> Self { match i { evm_runtime::CreateScheme::Legacy { caller } => Self::Legacy { caller }, - evm_runtime::CreateScheme::Create2 { caller, code_hash, salt } => - Self::Create2 { caller, code_hash, salt }, + evm_runtime::CreateScheme::Create2 { + caller, + code_hash, + salt, + } => Self::Create2 { + caller, + code_hash, + salt, + }, evm_runtime::CreateScheme::Fixed(address) => Self::Fixed(address), } } @@ -125,6 +136,11 @@ pub enum EvmEvent { is_static: bool, context: super::Context, }, + Log { + address: H160, + topics: Vec, + data: Vec, + }, } #[cfg(feature = "evm-tracing")] @@ -140,7 +156,11 @@ impl<'a> From> for EvmEvent { context, } => Self::Call { code_address, - transfer: transfer.as_ref().map(|transfer| transfer.clone().into()), + transfer: if let Some(transfer) = transfer { + Some(transfer.clone().into()) + } else { + None + }, input: input.to_vec(), target_gas, is_static, @@ -161,12 +181,35 @@ impl<'a> From> for EvmEvent { init_code: init_code.to_vec(), target_gas, }, - evm::tracing::Event::Suicide { address, target, balance } => - Self::Suicide { address, target, balance }, - evm::tracing::Event::Exit { reason, return_value } => - Self::Exit { reason: reason.clone(), return_value: return_value.to_vec() }, - evm::tracing::Event::TransactCall { caller, address, value, data, gas_limit } => - Self::TransactCall { caller, address, value, data: data.to_vec(), gas_limit }, + evm::tracing::Event::Suicide { + address, + target, + balance, + } => Self::Suicide { + address, + target, + balance, + }, + evm::tracing::Event::Exit { + reason, + return_value, + } => Self::Exit { + reason: reason.clone(), + return_value: return_value.to_vec(), + }, + evm::tracing::Event::TransactCall { + caller, + address, + value, + data, + gas_limit, + } => Self::TransactCall { + caller, + address, + value, + data: data.to_vec(), + gas_limit, + }, evm::tracing::Event::TransactCreate { caller, value, @@ -204,12 +247,25 @@ impl<'a> From> for EvmEvent { context, } => Self::PrecompileSubcall { code_address, - transfer: transfer.as_ref().map(|transfer| transfer.clone().into()), + transfer: if let Some(transfer) = transfer { + Some(transfer.clone().into()) + } else { + None + }, input: input.to_vec(), target_gas, is_static, context: context.clone().into(), }, + evm::tracing::Event::Log { + address, + topics, + data, + } => Self::Log { + address, + topics: topics.to_vec(), + data: data.to_vec(), + }, } } } diff --git a/primitives/rpc/evm-tracing-events/src/gasometer.rs b/primitives/rpc/evm-tracing-events/src/gasometer.rs index d1fbb453e..3b12bad61 100644 --- a/primitives/rpc/evm-tracing-events/src/gasometer.rs +++ b/primitives/rpc/evm-tracing-events/src/gasometer.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -48,23 +48,50 @@ impl From> for Snapshot { #[derive(Debug, Copy, Clone, Encode, Decode, PartialEq, Eq)] pub enum GasometerEvent { - RecordCost { cost: u64, snapshot: Snapshot }, - RecordRefund { refund: i64, snapshot: Snapshot }, - RecordStipend { stipend: u64, snapshot: Snapshot }, - RecordDynamicCost { gas_cost: u64, memory_gas: u64, gas_refund: i64, snapshot: Snapshot }, - RecordTransaction { cost: u64, snapshot: Snapshot }, + RecordCost { + cost: u64, + snapshot: Snapshot, + }, + RecordRefund { + refund: i64, + snapshot: Snapshot, + }, + RecordStipend { + stipend: u64, + snapshot: Snapshot, + }, + RecordDynamicCost { + gas_cost: u64, + memory_gas: u64, + gas_refund: i64, + snapshot: Snapshot, + }, + RecordTransaction { + cost: u64, + snapshot: Snapshot, + }, } #[cfg(feature = "evm-tracing")] impl From for GasometerEvent { fn from(i: evm_gasometer::tracing::Event) -> Self { match i { - evm_gasometer::tracing::Event::RecordCost { cost, snapshot } => - Self::RecordCost { cost, snapshot: snapshot.into() }, - evm_gasometer::tracing::Event::RecordRefund { refund, snapshot } => - Self::RecordRefund { refund, snapshot: snapshot.into() }, - evm_gasometer::tracing::Event::RecordStipend { stipend, snapshot } => - Self::RecordStipend { stipend, snapshot: snapshot.into() }, + evm_gasometer::tracing::Event::RecordCost { cost, snapshot } => Self::RecordCost { + cost, + snapshot: snapshot.into(), + }, + evm_gasometer::tracing::Event::RecordRefund { refund, snapshot } => { + Self::RecordRefund { + refund, + snapshot: snapshot.into(), + } + } + evm_gasometer::tracing::Event::RecordStipend { stipend, snapshot } => { + Self::RecordStipend { + stipend, + snapshot: snapshot.into(), + } + } evm_gasometer::tracing::Event::RecordDynamicCost { gas_cost, memory_gas, @@ -76,8 +103,12 @@ impl From for GasometerEvent { gas_refund, snapshot: snapshot.into(), }, - evm_gasometer::tracing::Event::RecordTransaction { cost, snapshot } => - Self::RecordTransaction { cost, snapshot: snapshot.into() }, + evm_gasometer::tracing::Event::RecordTransaction { cost, snapshot } => { + Self::RecordTransaction { + cost, + snapshot: snapshot.into(), + } + } } } } diff --git a/primitives/rpc/evm-tracing-events/src/lib.rs b/primitives/rpc/evm-tracing-events/src/lib.rs index 6a0e5923c..a390ad8a8 100644 --- a/primitives/rpc/evm-tracing-events/src/lib.rs +++ b/primitives/rpc/evm-tracing-events/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -107,6 +107,10 @@ pub struct Context { impl From for Context { fn from(i: evm_runtime::Context) -> Self { - Self { address: i.address, caller: i.caller, apparent_value: i.apparent_value } + Self { + address: i.address, + caller: i.caller, + apparent_value: i.apparent_value, + } } } diff --git a/primitives/rpc/evm-tracing-events/src/runtime.rs b/primitives/rpc/evm-tracing-events/src/runtime.rs index 7222de948..1f4b03574 100644 --- a/primitives/rpc/evm-tracing-events/src/runtime.rs +++ b/primitives/rpc/evm-tracing-events/src/runtime.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -30,7 +30,10 @@ pub struct Stack { impl From<&evm::Stack> for Stack { fn from(i: &evm::Stack) -> Self { - Self { data: i.data().clone(), limit: i.limit() as u64 } + Self { + data: i.data().clone(), + limit: i.limit() as u64, + } } } @@ -43,7 +46,11 @@ pub struct Memory { impl From<&evm::Memory> for Memory { fn from(i: &evm::Memory) -> Self { - Self { data: i.data().clone(), effective_len: i.effective_len(), limit: i.limit() as u64 } + Self { + data: i.data().clone(), + effective_len: i.effective_len(), + limit: i.limit() as u64, + } } } @@ -64,7 +71,7 @@ pub enum RuntimeEvent { context: Context, // This needs to be marshalled in the runtime no matter what. opcode: Vec, - // We can use ExitReason with `with-parity_scale_codec` feature, + // We can use ExitReason with `with-codec` feature, position: Result, stack: Option, memory: Option, @@ -87,20 +94,39 @@ pub enum RuntimeEvent { #[cfg(feature = "evm-tracing")] impl RuntimeEvent { - pub fn from_evm_event(i: evm_runtime::tracing::Event, filter: crate::StepEventFilter) -> Self { + pub fn from_evm_event<'a>( + i: evm_runtime::tracing::Event<'a>, + filter: crate::StepEventFilter, + ) -> Self { match i { - evm_runtime::tracing::Event::Step { context, opcode, position, stack, memory } => - Self::Step { - context: context.clone().into(), - opcode: opcodes_string(opcode), - position: match position { - Ok(position) => Ok(*position as u64), - Err(e) => Err(e.clone()), - }, - stack: if filter.enable_stack { Some(stack.into()) } else { None }, - memory: if filter.enable_memory { Some(memory.into()) } else { None }, + evm_runtime::tracing::Event::Step { + context, + opcode, + position, + stack, + memory, + } => Self::Step { + context: context.clone().into(), + opcode: opcodes_string(opcode), + position: match position { + Ok(position) => Ok(*position as u64), + Err(e) => Err(e.clone()), + }, + stack: if filter.enable_stack { + Some(stack.into()) + } else { + None + }, + memory: if filter.enable_memory { + Some(memory.into()) + } else { + None }, - evm_runtime::tracing::Event::StepResult { result, return_value } => Self::StepResult { + }, + evm_runtime::tracing::Event::StepResult { + result, + return_value, + } => Self::StepResult { result: match result { Ok(_) => Ok(()), Err(capture) => match capture { @@ -110,10 +136,24 @@ impl RuntimeEvent { }, return_value: return_value.to_vec(), }, - evm_runtime::tracing::Event::SLoad { address, index, value } => - Self::SLoad { address, index, value }, - evm_runtime::tracing::Event::SStore { address, index, value } => - Self::SStore { address, index, value }, + evm_runtime::tracing::Event::SLoad { + address, + index, + value, + } => Self::SLoad { + address, + index, + value, + }, + evm_runtime::tracing::Event::SStore { + address, + index, + value, + } => Self::SStore { + address, + index, + value, + }, } } } @@ -185,6 +225,9 @@ pub fn opcodes_string(opcode: Opcode) -> Vec { Opcode(89) => "MSize", Opcode(90) => "Gas", Opcode(91) => "JumpDest", + Opcode(92) => "TLoad", + Opcode(93) => "TStore", + Opcode(94) => "MCopy", Opcode(96) => "Push1", Opcode(97) => "Push2", Opcode(98) => "Push3", @@ -280,7 +323,7 @@ pub fn opcodes_string(opcode: Opcode) -> Vec { Opcode(n) => { tmp = alloc::format!("Unknown({})", n); &tmp - }, + } }; out.as_bytes().to_vec() } diff --git a/primitives/rpc/txpool/src/lib.rs b/primitives/rpc/txpool/src/lib.rs index 1ebac5d26..edf937a67 100644 --- a/primitives/rpc/txpool/src/lib.rs +++ b/primitives/rpc/txpool/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -21,11 +21,12 @@ pub use ethereum::{TransactionV0 as LegacyTransaction, TransactionV2 as Transaction}; use parity_scale_codec::{Decode, Encode}; -use scale_info::TypeInfo; -use sp_runtime::{traits::Block as BlockT, RuntimeDebug}; +use sp_runtime::scale_info::TypeInfo; +use sp_runtime::traits::Block as BlockT; +use sp_runtime::RuntimeDebug; use sp_std::vec::Vec; -#[derive(Eq, PartialEq, Clone, Encode, Decode, sp_runtime::RuntimeDebug)] +#[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] pub struct TxPoolResponseLegacy { pub ready: Vec, pub future: Vec, From 866451e048d4c3663afd6e515a03fbb5f11dec6c Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 10:33:16 +0200 Subject: [PATCH 21/98] Template checkin --- Cargo.lock | 51 +- Cargo.toml | 3 +- client/evm-tracing/Cargo.toml | 2 + .../evm-tracing/src/formatters/blockscout.rs | 19 +- .../evm-tracing/src/formatters/call_tracer.rs | 164 +++-- client/evm-tracing/src/formatters/raw.rs | 7 +- .../src/formatters/trace_filter.rs | 55 +- client/evm-tracing/src/listeners/call_list.rs | 306 +++++++-- client/evm-tracing/src/listeners/raw.rs | 82 ++- client/evm-tracing/src/types/block.rs | 19 +- client/evm-tracing/src/types/serialization.rs | 5 +- client/evm-tracing/src/types/single.rs | 50 +- client/rpc-core/debug/Cargo.toml | 2 + client/rpc-core/debug/src/lib.rs | 47 +- client/rpc/debug/Cargo.toml | 2 + client/rpc/debug/src/lib.rs | 647 +++++++++++++++--- client/rpc/trace/src/lib.rs | 330 ++++++--- client/rpc/txpool/Cargo.toml | 31 - client/rpc/txpool/src/lib.rs | 162 ----- node/Cargo.toml | 2 +- node/src/rpc.rs | 4 +- primitives/rpc/evm-tracing-events/src/evm.rs | 19 +- runtime/krest/src/lib.rs | 22 +- runtime/peaq-dev/src/lib.rs | 22 +- runtime/peaq/src/lib.rs | 22 +- 25 files changed, 1414 insertions(+), 661 deletions(-) delete mode 100644 client/rpc/txpool/Cargo.toml delete mode 100644 client/rpc/txpool/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 99bb41e42..d8d1822f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9490,10 +9490,12 @@ dependencies = [ "ethereum-types", "evm-tracing-events", "hex", + "log", "parity-scale-codec", "peaq-rpc-primitives-debug", "serde", "serde_json", + "sp-runtime", "sp-std", ] @@ -9798,7 +9800,7 @@ dependencies = [ "futures 0.3.31", "hex-literal 0.3.4", "inflation-manager", - "jsonrpsee 0.20.4", + "jsonrpsee 0.24.9", "log", "orml-xtokens", "pallet-base-fee", @@ -9819,7 +9821,6 @@ dependencies = [ "peaq-rpc-primitives-debug", "peaq-rpc-primitives-txpool", "peaq-rpc-trace", - "peaq-rpc-txpool", "peaq-runtime", "polkadot-cli", "polkadot-parachain-primitives", @@ -10091,9 +10092,11 @@ dependencies = [ name = "peaq-rpc-core-debug" version = "0.1.0" dependencies = [ + "ethereum", "ethereum-types", + "fc-rpc-core", "futures 0.3.31", - "jsonrpsee 0.20.4", + "jsonrpsee 0.24.9", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -10107,25 +10110,13 @@ version = "0.6.0" dependencies = [ "ethereum-types", "futures 0.3.31", - "jsonrpsee 0.20.4", + "jsonrpsee 0.24.9", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", "serde_json", ] -[[package]] -name = "peaq-rpc-core-txpool" -version = "0.6.0" -dependencies = [ - "ethereum", - "ethereum-types", - "fc-rpc-core", - "jsonrpsee 0.20.4", - "serde", - "serde_json", -] - [[package]] name = "peaq-rpc-core-types" version = "0.1.0" @@ -10149,7 +10140,8 @@ dependencies = [ "fp-rpc", "futures 0.3.31", "hex-literal 0.3.4", - "jsonrpsee 0.20.4", + "jsonrpsee 0.24.9", + "log", "peaq-client-evm-tracing", "peaq-rpc-core-debug", "peaq-rpc-core-types", @@ -10162,6 +10154,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-trie", "tokio", ] @@ -10208,7 +10201,7 @@ dependencies = [ "fc-storage", "fp-rpc", "futures 0.3.31", - "jsonrpsee 0.20.4", + "jsonrpsee 0.24.9", "log", "peaq-client-evm-tracing", "peaq-rpc-core-trace", @@ -10231,28 +10224,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "peaq-rpc-txpool" -version = "0.6.0" -dependencies = [ - "ethereum-types", - "fc-rpc", - "frame-system", - "jsonrpsee 0.20.4", - "peaq-rpc-core-txpool", - "peaq-rpc-primitives-txpool", - "rlp", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sha3", - "sp-api", - "sp-blockchain", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "peaq-runtime" version = "4.0.0-polkadot-v1.7.2" diff --git a/Cargo.toml b/Cargo.toml index 5e2d0e4b1..f9d602442 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ flume = "0.10" hex = { version = "0.4.3", default-features = false } hex-literal = { version = "0.3.4", default-features = false } impl-trait-for-tuples = "0.2.2" -jsonrpsee = { version = "0.20.3", default-features = false } +jsonrpsee = { version = "0.24.9", default-features = false } libsecp256k1 = { version = "0.7", default-features = false } log = { version = "0.4.17", default-features = false } macrotest = { version = "1.0.9", default-features = false } @@ -149,6 +149,7 @@ polkadot-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = " # Substrate frame-support = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } # sp-genesis-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-trie = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-externalities = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-runtime-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } diff --git a/client/evm-tracing/Cargo.toml b/client/evm-tracing/Cargo.toml index 2d955bdca..870249497 100644 --- a/client/evm-tracing/Cargo.toml +++ b/client/evm-tracing/Cargo.toml @@ -12,6 +12,7 @@ ethereum-types = { workspace = true, default-features = true } hex = { workspace = true, default-features = true, features = [ "serde" ] } serde = { workspace = true, default-features = true, features = [ "derive" ] } serde_json = { workspace = true, default-features = true } +log = { workspace = true } evm-tracing-events = { path = "../../primitives/rpc/evm-tracing-events" } peaq-rpc-primitives-debug = { path = "../../primitives/rpc/debug" } @@ -19,3 +20,4 @@ peaq-rpc-primitives-debug = { path = "../../primitives/rpc/debug" } # Substrate parity-scale-codec = { workspace = true, default-features = true } sp-std = { workspace = true, default-features = true } +sp-runtime = { workspace = true, default-features = true } diff --git a/client/evm-tracing/src/formatters/blockscout.rs b/client/evm-tracing/src/formatters/blockscout.rs index d87add89e..7ef0d0756 100644 --- a/client/evm-tracing/src/formatters/blockscout.rs +++ b/client/evm-tracing/src/formatters/blockscout.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -14,13 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::{ - listeners::call_list::Listener, - types::{ - serialization::*, - single::{Call, TransactionTrace}, - CallResult, CallType, CreateResult, - }, +use crate::listeners::call_list::Listener; +use crate::types::serialization::*; +use crate::types::{ + single::{Call, TransactionTrace}, + CallResult, CallType, CreateResult, }; use ethereum_types::{H160, U256}; use parity_scale_codec::{Decode, Encode}; @@ -36,8 +34,8 @@ impl super::ResponseFormatter for Formatter { if let Some(entry) = listener.entries.last() { return Some(TransactionTrace::CallList( entry - .iter() - .map(|(_, value)| Call::Blockscout(Box::new(value.clone()))) + .into_iter() + .map(|(_, value)| Call::Blockscout(value.clone())) .collect(), )); } @@ -91,4 +89,5 @@ pub struct BlockscoutCall { pub gas_used: U256, #[serde(flatten)] pub inner: BlockscoutCallInner, + pub logs: Vec, } diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index f50c19684..a2a42ac47 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ use super::blockscout::BlockscoutCallInner; use crate::types::{ - single::{Call, TransactionTrace}, + single::{Call, Log, TransactionTrace}, CallResult, CallType, CreateResult, }; @@ -25,6 +25,7 @@ use crate::listeners::call_list::Listener; use crate::types::serialization::*; use serde::Serialize; +use crate::types::block::BlockTransactionTrace; use ethereum_types::{H160, U256}; use parity_scale_codec::{Decode, Encode}; use sp_std::{cmp::Ordering, vec::Vec}; @@ -33,16 +34,22 @@ pub struct Formatter; impl super::ResponseFormatter for Formatter { type Listener = Listener; - type Response = Vec; + type Response = Vec; - fn format(mut listener: Listener) -> Option> { - // Remove empty BTreeMaps pushed to `entries`. - // I.e. InvalidNonce or other pallet_evm::runner exits - listener.entries.retain(|x| !x.is_empty()); + fn format(listener: Listener) -> Option> { let mut traces = Vec::new(); - for entry in listener.entries.iter() { + for (eth_tx_index, entry) in listener.entries.iter().enumerate() { + // Skip empty BTreeMaps pushed to `entries`. + // I.e. InvalidNonce or other pallet_evm::runner exits + if entry.is_empty() { + log::debug!( + target: "tracing", + "Empty trace entry with transaction index {}, skipping...", eth_tx_index + ); + continue; + } let mut result: Vec = entry - .iter() + .into_iter() .map(|(_, it)| { let from = it.from; let trace_address = it.trace_address.clone(); @@ -51,25 +58,32 @@ impl super::ResponseFormatter for Formatter { let gas_used = it.gas_used; let inner = it.inner.clone(); Call::CallTracer(CallTracerCall { - from, - gas, - gas_used, - trace_address: Some(trace_address), - inner: match inner { - BlockscoutCallInner::Call { input, to, res, call_type } => - CallTracerInner::Call { - call_type: match call_type { - CallType::Call => "CALL".as_bytes().to_vec(), - CallType::CallCode => "CALLCODE".as_bytes().to_vec(), - CallType::DelegateCall => - "DELEGATECALL".as_bytes().to_vec(), - CallType::StaticCall => "STATICCALL".as_bytes().to_vec(), - }, - to, - input, - res, - value: Some(value), + from: from, + gas: gas, + gas_used: gas_used, + trace_address: Some(trace_address.clone()), + inner: match inner.clone() { + BlockscoutCallInner::Call { + input, + to, + res, + call_type, + } => CallTracerInner::Call { + call_type: match call_type { + CallType::Call => "CALL".as_bytes().to_vec(), + CallType::CallCode => "CALLCODE".as_bytes().to_vec(), + CallType::DelegateCall => "DELEGATECALL".as_bytes().to_vec(), + CallType::StaticCall => "STATICCALL".as_bytes().to_vec(), }, + to, + input, + res: res.clone(), + value: Some(value), + logs: match res { + CallResult::Output { .. } => it.logs.clone(), + CallResult::Error { .. } => Vec::new(), + }, + }, BlockscoutCallInner::Create { init, res } => CallTracerInner::Create { input: init, error: match res { @@ -78,24 +92,28 @@ impl super::ResponseFormatter for Formatter { }, to: match res { CreateResult::Success { - created_contract_address_hash, .. + created_contract_address_hash, + .. } => Some(created_contract_address_hash), CreateResult::Error { .. } => None, }, output: match res { - CreateResult::Success { created_contract_code, .. } => - Some(created_contract_code), + CreateResult::Success { + created_contract_code, + .. + } => Some(created_contract_code), CreateResult::Error { .. } => None, }, - value, + value: value, call_type: "CREATE".as_bytes().to_vec(), }, - BlockscoutCallInner::SelfDestruct { balance, to } => + BlockscoutCallInner::SelfDestruct { balance, to } => { CallTracerInner::SelfDestruct { value: balance, to, call_type: "SELFDESTRUCT".as_bytes().to_vec(), - }, + } + } }, calls: Vec::new(), }) @@ -146,30 +164,38 @@ impl super::ResponseFormatter for Formatter { // // We consider an item to be `Ordering::Less` when: // - Is closer to the root or - // - Is greater than its sibling. + // - Is greater than its sibling. result.sort_by(|a, b| match (a, b) { ( - Call::CallTracer(CallTracerCall { trace_address: Some(a), .. }), - Call::CallTracer(CallTracerCall { trace_address: Some(b), .. }), + Call::CallTracer(CallTracerCall { + trace_address: Some(a), + .. + }), + Call::CallTracer(CallTracerCall { + trace_address: Some(b), + .. + }), ) => { let a_len = a.len(); let b_len = b.len(); let sibling_greater_than = |a: &Vec, b: &Vec| -> bool { for (i, a_value) in a.iter().enumerate() { - match a_value.cmp(&b[i]) { - Ordering::Greater => return true, - Ordering::Less => return false, - Ordering::Equal => continue, + if a_value > &b[i] { + return true; + } else if a_value < &b[i] { + return false; + } else { + continue; } } - false + return false; }; - if b_len > a_len || (a_len == b_len && sibling_greater_than(a, b)) { + if b_len > a_len || (a_len == b_len && sibling_greater_than(&a, &b)) { Ordering::Less } else { Ordering::Greater } - }, + } _ => unreachable!(), }); // Stack pop-and-push. @@ -179,15 +205,31 @@ impl super::ResponseFormatter for Formatter { .expect("result.len() > 1, so pop() necessarily returns an element"); // Find the parent index. if let Some(index) = - result.iter().position(|current| match (last.clone(), current) { - ( - Call::CallTracer(CallTracerCall { trace_address: Some(a), .. }), - Call::CallTracer(CallTracerCall { trace_address: Some(b), .. }), - ) => b[..] == a[0..a.len() - 1], - _ => unreachable!(), - }) { + result + .iter() + .position(|current| match (last.clone(), current) { + ( + Call::CallTracer(CallTracerCall { + trace_address: Some(a), + .. + }), + Call::CallTracer(CallTracerCall { + trace_address: Some(b), + .. + }), + ) => { + &b[..] + == a.get(0..a.len() - 1).expect( + "non-root element while traversing trace result", + ) + } + _ => unreachable!(), + }) { // Remove `trace_address` from result. - if let Call::CallTracer(CallTracerCall { ref mut trace_address, .. }) = last + if let Call::CallTracer(CallTracerCall { + ref mut trace_address, + .. + }) = last { *trace_address = None; } @@ -206,17 +248,22 @@ impl super::ResponseFormatter for Formatter { *trace_address = None; } if result.len() == 1 { - traces.push(TransactionTrace::CallListNested( - result - .pop() - .expect("result.len() == 1, so pop() necessarily returns this element"), - )); + traces.push(BlockTransactionTrace { + tx_position: eth_tx_index as u32, + // Use default, the correct value will be set upstream + tx_hash: Default::default(), + result: TransactionTrace::CallListNested( + result + .pop() + .expect("result.len() == 1, so pop() necessarily returns this element"), + ), + }); } } if traces.is_empty() { return None; } - Some(traces) + return Some(traces); } } @@ -256,6 +303,9 @@ pub enum CallTracerInner { #[serde(skip_serializing_if = "Option::is_none")] value: Option, + + #[serde(skip_serializing_if = "Vec::is_empty")] + logs: Vec, }, Create { #[serde(rename = "type", serialize_with = "opcode_serialize")] diff --git a/client/evm-tracing/src/formatters/raw.rs b/client/evm-tracing/src/formatters/raw.rs index 8f47b9ebc..464cfcc5d 100644 --- a/client/evm-tracing/src/formatters/raw.rs +++ b/client/evm-tracing/src/formatters/raw.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -14,7 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::{listeners::raw::Listener, types::single::TransactionTrace}; +use crate::listeners::raw::Listener; +use crate::types::single::TransactionTrace; pub struct Formatter; @@ -27,7 +28,7 @@ impl super::ResponseFormatter for Formatter { None } else { Some(TransactionTrace::Raw { - step_logs: listener.step_logs, + struct_logs: listener.struct_logs, gas: listener.final_gas.into(), return_value: listener.return_value, }) diff --git a/client/evm-tracing/src/formatters/trace_filter.rs b/client/evm-tracing/src/formatters/trace_filter.rs index f8844c8fd..f3ae3307f 100644 --- a/client/evm-tracing/src/formatters/trace_filter.rs +++ b/client/evm-tracing/src/formatters/trace_filter.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -15,15 +15,12 @@ // along with Moonbeam. If not, see . use super::blockscout::BlockscoutCallInner as CallInner; -use crate::{ - listeners::call_list::Listener, - types::{ - block::{ - TransactionTrace, TransactionTraceAction, TransactionTraceOutput, - TransactionTraceResult, - }, - CallResult, CreateResult, CreateType, +use crate::listeners::call_list::Listener; +use crate::types::{ + block::{ + TransactionTrace, TransactionTraceAction, TransactionTraceOutput, TransactionTraceResult, }, + CallResult, CreateResult, CreateType, }; use ethereum_types::H256; @@ -33,16 +30,27 @@ impl super::ResponseFormatter for Formatter { type Listener = Listener; type Response = Vec; - fn format(mut listener: Listener) -> Option> { - // Remove empty BTreeMaps pushed to `entries`. - // I.e. InvalidNonce or other pallet_evm::runner exits - listener.entries.retain(|x| !x.is_empty()); + fn format(listener: Listener) -> Option> { let mut traces = Vec::new(); for (eth_tx_index, entry) in listener.entries.iter().enumerate() { + // Skip empty BTreeMaps pushed to `entries`. + // I.e. InvalidNonce or other pallet_evm::runner exits + if entry.is_empty() { + log::debug!( + target: "tracing", + "Empty trace entry with transaction index {}, skipping...", eth_tx_index + ); + continue; + } let mut tx_traces: Vec<_> = entry - .iter() + .into_iter() .map(|(_, trace)| match trace.inner.clone() { - CallInner::Call { input, to, res, call_type } => TransactionTrace { + CallInner::Call { + input, + to, + res, + call_type, + } => TransactionTrace { action: TransactionTraceAction::Call { call_type, from: trace.from, @@ -56,11 +64,12 @@ impl super::ResponseFormatter for Formatter { // Can't be known here, must be inserted upstream. block_number: 0, output: match res { - CallResult::Output(output) => + CallResult::Output(output) => { TransactionTraceOutput::Result(TransactionTraceResult::Call { gas_used: trace.gas_used, output, - }), + }) + } CallResult::Error(error) => TransactionTraceOutput::Error(error), }, subtraces: trace.subtraces, @@ -86,14 +95,16 @@ impl super::ResponseFormatter for Formatter { CreateResult::Success { created_contract_address_hash, created_contract_code, - } => + } => { TransactionTraceOutput::Result(TransactionTraceResult::Create { gas_used: trace.gas_used, code: created_contract_code, address: created_contract_address_hash, - }), - CreateResult::Error { error } => - TransactionTraceOutput::Error(error), + }) + } + CreateResult::Error { error } => { + TransactionTraceOutput::Error(error) + } }, subtraces: trace.subtraces, trace_address: trace.trace_address.clone(), @@ -101,7 +112,7 @@ impl super::ResponseFormatter for Formatter { transaction_hash: H256::default(), transaction_position: eth_tx_index as u32, } - }, + } CallInner::SelfDestruct { balance, to } => TransactionTrace { action: TransactionTraceAction::Suicide { address: trace.from, diff --git a/client/evm-tracing/src/listeners/call_list.rs b/client/evm-tracing/src/listeners/call_list.rs index 0ce73080b..1fb7d2a52 100644 --- a/client/evm-tracing/src/listeners/call_list.rs +++ b/client/evm-tracing/src/listeners/call_list.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -14,10 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::{ - formatters::blockscout::{BlockscoutCall as Call, BlockscoutCallInner as CallInner}, - types::{CallResult, CallType, ContextType, CreateResult}, -}; +use crate::formatters::blockscout::BlockscoutCall as Call; +use crate::formatters::blockscout::BlockscoutCallInner as CallInner; +use crate::types::{single::Log, CallResult, CallType, ContextType, CreateResult}; use ethereum_types::{H160, U256}; use evm_tracing_events::{ runtime::{Capture, ExitError, ExitReason, ExitSucceed}, @@ -51,7 +50,7 @@ pub struct Listener { // Next index to use. entries_next_index: u32, // Stack of contexts with data to keep between events. - context_stack: Vec, + pub(crate) context_stack: Vec, // Type of the next call. // By default is None and corresponds to the root call, which @@ -80,9 +79,12 @@ pub struct Listener { /// True if only the `GasometerEvent::RecordTransaction` event has been received. /// Allow to correctly handle transactions that cannot pay for the tx data in Legacy mode. record_transaction_event_only: bool, + + /// If true the listener will collect EvmEvent::Log events. + pub with_log: bool, } -struct Context { +pub struct Context { entries_index: u32, context_type: ContextType, @@ -99,6 +101,8 @@ struct Context { data: Vec, // to / create address to: H160, + + logs: Vec, } impl Default for Listener { @@ -117,6 +121,7 @@ impl Default for Listener { skip_next_context: false, call_list_first_transaction: true, record_transaction_event_only: false, + with_log: false, } } } @@ -161,8 +166,9 @@ impl Listener { input: context.data, res, }, + logs: context.logs, } - }, + } ContextType::Create => { let res = CreateResult::Error { error: b"early exit (out of gas, stack overflow, direct call to precompile, ...)".to_vec(), @@ -175,9 +181,13 @@ impl Listener { gas: context.gas.into(), gas_used: gas_used.into(), from: context.from, - inner: CallInner::Create { init: context.data, res }, + inner: CallInner::Create { + init: context.data, + res, + }, + logs: context.logs, } - }, + } }; self.insert_entry(context.entries_index, entry); @@ -206,6 +216,7 @@ impl Listener { input: vec![], res, }, + logs: Vec::::new(), }; self.insert_entry(self.entries_next_index, entry); @@ -215,20 +226,20 @@ impl Listener { pub fn gasometer_event(&mut self, event: GasometerEvent) { match event { - GasometerEvent::RecordCost { snapshot, .. } | - GasometerEvent::RecordDynamicCost { snapshot, .. } | - GasometerEvent::RecordStipend { snapshot, .. } => { + GasometerEvent::RecordCost { snapshot, .. } + | GasometerEvent::RecordDynamicCost { snapshot, .. } + | GasometerEvent::RecordStipend { snapshot, .. } => { if let Some(context) = self.context_stack.last_mut() { if context.start_gas.is_none() { context.start_gas = Some(snapshot.gas()); } context.gas = snapshot.gas(); } - }, + } GasometerEvent::RecordTransaction { cost, .. } => { self.transaction_cost = cost; self.record_transaction_event_only = true; - }, + } // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -237,18 +248,24 @@ impl Listener { pub fn runtime_event(&mut self, event: RuntimeEvent) { match event { - RuntimeEvent::StepResult { result: Err(Capture::Trap(opcode)), .. } => { + RuntimeEvent::StepResult { + result: Err(Capture::Trap(opcode)), + .. + } => { if let Some(ContextType::Call(call_type)) = ContextType::from(opcode) { self.call_type = Some(call_type) } - }, - RuntimeEvent::StepResult { result: Err(Capture::Exit(reason)), return_value } => { + } + RuntimeEvent::StepResult { + result: Err(Capture::Exit(reason)), + return_value, + } => { if let Some((key, entry)) = self.pop_context_to_entry(reason, return_value) { match self.version { TracingVersion::Legacy => { // In Legacy mode we directly insert the entry. self.insert_entry(key, entry); - }, + } TracingVersion::EarlyTransact => { // In EarlyTransact mode this context must be used if this event is // emitted. However the context of `EvmEvent::Exit` must be used if @@ -256,10 +273,10 @@ impl Listener { // entry in a temporary value, and deal with it in `EvmEvent::Exit` that // will be called in all cases. self.step_result_entry = Some((key, entry)); - }, + } } } - }, + } // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -268,7 +285,13 @@ impl Listener { pub fn evm_event(&mut self, event: EvmEvent) { match event { - EvmEvent::TransactCall { caller, address, value, data, .. } => { + EvmEvent::TransactCall { + caller, + address, + value, + data, + .. + } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -286,13 +309,21 @@ impl Listener { data, to: address, + + logs: Vec::new(), }); self.entries_next_index += 1; self.skip_next_context = true; - }, + } - EvmEvent::TransactCreate { caller, value, init_code, address, .. } => { + EvmEvent::TransactCreate { + caller, + value, + init_code, + address, + .. + } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -310,13 +341,21 @@ impl Listener { data: init_code, to: address, + + logs: Vec::new(), }); self.entries_next_index += 1; self.skip_next_context = true; - }, + } - EvmEvent::TransactCreate2 { caller, value, init_code, address, .. } => { + EvmEvent::TransactCreate2 { + caller, + value, + init_code, + address, + .. + } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -334,13 +373,21 @@ impl Listener { data: init_code, to: address, + + logs: Vec::new(), }); self.entries_next_index += 1; self.skip_next_context = true; - }, + } - EvmEvent::Call { code_address, input, is_static, context, .. } => { + EvmEvent::Call { + code_address, + input, + is_static, + context, + .. + } => { self.record_transaction_event_only = false; let call_type = match (self.call_type, is_static) { @@ -363,7 +410,7 @@ impl Listener { // instead of `context.caller`, since the latter will not have the correct // value inside a DelegateCall. let from = if let Some(parent_context) = self.context_stack.last() { - parent_context.to + parent_context.to.clone() } else { context.caller }; @@ -383,13 +430,15 @@ impl Listener { data: input.to_vec(), to: code_address, + + logs: Vec::new(), }); self.entries_next_index += 1; } else { self.skip_next_context = false; } - }, + } EvmEvent::Create { caller, @@ -426,14 +475,20 @@ impl Listener { data: init_code.to_vec(), to: address, + + logs: Vec::new(), }); self.entries_next_index += 1; } else { self.skip_next_context = false; } - }, - EvmEvent::Suicide { address, target, balance } => { + } + EvmEvent::Suicide { + address, + target, + balance, + } => { let trace_address = if let Some(context) = self.context_stack.last_mut() { let mut trace_address = context.trace_address.clone(); trace_address.push(context.subtraces); @@ -452,12 +507,19 @@ impl Listener { value: 0.into(), gas: 0.into(), gas_used: 0.into(), - inner: CallInner::SelfDestruct { to: target, balance }, + inner: CallInner::SelfDestruct { + to: target, + balance, + }, + logs: Vec::::new(), }, ); self.entries_next_index += 1; - }, - EvmEvent::Exit { reason, return_value } => { + } + EvmEvent::Exit { + reason, + return_value, + } => { // We know we're in `TracingVersion::EarlyTransact` mode. self.record_transaction_event_only = false; @@ -470,13 +532,28 @@ impl Listener { if let Some((key, entry)) = entry { self.insert_entry(key, entry); } - }, + } EvmEvent::PrecompileSubcall { .. } => { // In a precompile subcall there is no CALL opcode result to observe, thus // we need this new event. Precompile subcall might use non-standard call // behavior (like batch precompile does) thus we simply consider this a call. self.call_type = Some(CallType::Call); - }, + } + EvmEvent::Log { + address, + topics, + data, + } => { + if self.with_log { + if let Some(stack) = self.context_stack.last_mut() { + stack.logs.push(Log { + address, + topics, + data, + }); + } + } + } // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] @@ -510,13 +587,15 @@ impl Listener { match context.context_type { ContextType::Call(call_type) => { let res = match &reason { - ExitReason::Succeed(ExitSucceed::Returned) => - CallResult::Output(return_value.to_vec()), + ExitReason::Succeed(ExitSucceed::Returned) => { + CallResult::Output(return_value.to_vec()) + } ExitReason::Succeed(_) => CallResult::Output(vec![]), ExitReason::Error(error) => CallResult::Error(error_message(error)), - ExitReason::Revert(_) => - CallResult::Error(b"execution reverted".to_vec()), + ExitReason::Revert(_) => { + CallResult::Error(b"execution reverted".to_vec()) + } ExitReason::Fatal(_) => CallResult::Error(vec![]), }; @@ -533,18 +612,21 @@ impl Listener { input: context.data, res, }, + logs: context.logs, } - }, + } ContextType::Create => { let res = match &reason { ExitReason::Succeed(_) => CreateResult::Success { created_contract_address_hash: context.to, created_contract_code: return_value.to_vec(), }, - ExitReason::Error(error) => - CreateResult::Error { error: error_message(error) }, - ExitReason::Revert(_) => - CreateResult::Error { error: b"execution reverted".to_vec() }, + ExitReason::Error(error) => CreateResult::Error { + error: error_message(error), + }, + ExitReason::Revert(_) => CreateResult::Error { + error: b"execution reverted".to_vec(), + }, ExitReason::Fatal(_) => CreateResult::Error { error: vec![] }, }; @@ -555,9 +637,13 @@ impl Listener { gas: context.gas.into(), gas_used: gas_used.into(), from: context.from, - inner: CallInner::Create { init: context.data, res }, + inner: CallInner::Create { + init: context.data, + res, + }, + logs: context.logs, } - }, + } }, )) } else { @@ -592,19 +678,23 @@ impl ListenerT for Listener { Event::Gasometer(gasometer_event) => self.gasometer_event(gasometer_event), Event::Runtime(runtime_event) => self.runtime_event(runtime_event), Event::Evm(evm_event) => self.evm_event(evm_event), - Event::CallListNew() => + Event::CallListNew() => { if !self.call_list_first_transaction { self.finish_transaction(); self.skip_next_context = false; self.entries.push(BTreeMap::new()); } else { self.call_list_first_transaction = false; - }, + } + } }; } fn step_event_filter(&self) -> StepEventFilter { - StepEventFilter { enable_memory: false, enable_stack: false } + StepEventFilter { + enable_memory: false, + enable_stack: false, + } } } @@ -612,6 +702,7 @@ impl ListenerT for Listener { #[allow(unused)] mod tests { use super::*; + use crate::formatters::blockscout::BlockscoutCallInner; use ethereum_types::H256; use evm_tracing_events::{ evm::CreateScheme, @@ -628,6 +719,7 @@ mod tests { TransactCall, TransactCreate, TransactCreate2, + Log, } enum TestRuntimeEvent { @@ -654,7 +746,9 @@ mod tests { } fn test_create_scheme() -> CreateScheme { - CreateScheme::Legacy { caller: H160::default() } + CreateScheme::Legacy { + caller: H160::default(), + } } fn test_stack() -> Option { @@ -666,7 +760,12 @@ mod tests { } fn test_snapshot() -> Snapshot { - Snapshot { gas_limit: 0u64, memory_gas: 0u64, used_gas: 0u64, refunded_gas: 0i64 } + Snapshot { + gas_limit: 0u64, + memory_gas: 0u64, + used_gas: 0u64, + refunded_gas: 0i64, + } } fn test_emit_evm_event( @@ -696,8 +795,10 @@ mod tests { target: H160::default(), balance: U256::zero(), }, - TestEvmEvent::Exit => - EvmEvent::Exit { reason: exit_reason.unwrap(), return_value: Vec::new() }, + TestEvmEvent::Exit => EvmEvent::Exit { + reason: exit_reason.unwrap(), + return_value: Vec::new(), + }, TestEvmEvent::TransactCall => EvmEvent::TransactCall { caller: H160::default(), address: H160::default(), @@ -720,6 +821,11 @@ mod tests { gas_limit: 0u64, address: H160::default(), }, + TestEvmEvent::Log => EvmEvent::Log { + address: H160::default(), + topics: Vec::new(), + data: Vec::new(), + }, } } @@ -732,8 +838,10 @@ mod tests { stack: test_stack(), memory: test_memory(), }, - TestRuntimeEvent::StepResult => - RuntimeEvent::StepResult { result: Ok(()), return_value: Vec::new() }, + TestRuntimeEvent::StepResult => RuntimeEvent::StepResult { + result: Ok(()), + return_value: Vec::new(), + }, TestRuntimeEvent::SLoad => RuntimeEvent::SLoad { address: H160::default(), index: H256::default(), @@ -749,20 +857,28 @@ mod tests { fn test_emit_gasometer_event(event_type: TestGasometerEvent) -> GasometerEvent { match event_type { - TestGasometerEvent::RecordCost => - GasometerEvent::RecordCost { cost: 0u64, snapshot: test_snapshot() }, - TestGasometerEvent::RecordRefund => - GasometerEvent::RecordRefund { refund: 0i64, snapshot: test_snapshot() }, - TestGasometerEvent::RecordStipend => - GasometerEvent::RecordStipend { stipend: 0u64, snapshot: test_snapshot() }, + TestGasometerEvent::RecordCost => GasometerEvent::RecordCost { + cost: 0u64, + snapshot: test_snapshot(), + }, + TestGasometerEvent::RecordRefund => GasometerEvent::RecordRefund { + refund: 0i64, + snapshot: test_snapshot(), + }, + TestGasometerEvent::RecordStipend => GasometerEvent::RecordStipend { + stipend: 0u64, + snapshot: test_snapshot(), + }, TestGasometerEvent::RecordDynamicCost => GasometerEvent::RecordDynamicCost { gas_cost: 0u64, memory_gas: 0u64, gas_refund: 0i64, snapshot: test_snapshot(), }, - TestGasometerEvent::RecordTransaction => - GasometerEvent::RecordTransaction { cost: 0u64, snapshot: test_snapshot() }, + TestGasometerEvent::RecordTransaction => GasometerEvent::RecordTransaction { + cost: 0u64, + snapshot: test_snapshot(), + }, } } @@ -771,11 +887,17 @@ mod tests { } fn do_transact_create_event(listener: &mut Listener) { - listener.evm_event(test_emit_evm_event(TestEvmEvent::TransactCreate, false, None)); + listener.evm_event(test_emit_evm_event( + TestEvmEvent::TransactCreate, + false, + None, + )); } fn do_gasometer_event(listener: &mut Listener) { - listener.gasometer_event(test_emit_gasometer_event(TestGasometerEvent::RecordTransaction)); + listener.gasometer_event(test_emit_gasometer_event( + TestGasometerEvent::RecordTransaction, + )); } fn do_exit_event(listener: &mut Listener) { @@ -798,6 +920,10 @@ mod tests { listener.evm_event(test_emit_evm_event(TestEvmEvent::Suicide, false, None)); } + fn do_evm_log_event(listener: &mut Listener) { + listener.evm_event(test_emit_evm_event(TestEvmEvent::Log, false, None)); + } + fn do_runtime_step_event(listener: &mut Listener) { listener.runtime_event(test_emit_runtime_event(TestRuntimeEvent::Step)); } @@ -1046,8 +1172,50 @@ mod tests { listener.finish_transaction(); assert_eq!(listener.entries.len(), 1); // Each nested call contains 11 elements in the callstack (main + 10 subcalls). - // There are 5 main nested calls for a total of 56 elements in the callstack: 1 main + 55 - // nested. + // There are 5 main nested calls for a total of 56 elements in the callstack: 1 main + 55 nested. assert_eq!(listener.entries[0].len(), (depth * (subdepth + 1)) + 1); } + + #[test] + fn call_log_event() { + let mut listener = Listener::default(); + listener.with_log = true; + do_transact_create_event(&mut listener); + do_gasometer_event(&mut listener); + do_evm_create_event(&mut listener); + do_evm_call_event(&mut listener); + do_evm_log_event(&mut listener); + do_exit_event(&mut listener); + listener.finish_transaction(); + assert_eq!(listener.entries.len(), 1); + assert_eq!(listener.entries[0].len(), 2); + assert_eq!(listener.entries[0].get(&1).unwrap().logs.len(), 1); + } + + #[test] + fn call_multiple_logs_event() { + let mut listener = Listener::default(); + listener.with_log = true; + do_evm_call_event(&mut listener); + do_evm_log_event(&mut listener); + do_evm_log_event(&mut listener); + do_exit_event(&mut listener); + listener.finish_transaction(); + assert_eq!(listener.entries.len(), 1); + assert_eq!(listener.entries[0].len(), 1); + assert_eq!(listener.entries[0].get(&0).unwrap().logs.len(), 2); + } + + #[test] + fn call_log_event_not_recorder_when_with_log_is_false() { + let mut listener = Listener::default(); + do_evm_call_event(&mut listener); + do_evm_log_event(&mut listener); + do_evm_log_event(&mut listener); + do_exit_event(&mut listener); + listener.finish_transaction(); + assert_eq!(listener.entries.len(), 1); + assert_eq!(listener.entries[0].len(), 1); + assert_eq!(listener.entries[0].get(&0).unwrap().logs.len(), 0); + } } diff --git a/client/evm-tracing/src/listeners/raw.rs b/client/evm-tracing/src/listeners/raw.rs index 4c29a1108..5bede8169 100644 --- a/client/evm-tracing/src/listeners/raw.rs +++ b/client/evm-tracing/src/listeners/raw.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -32,7 +32,7 @@ pub struct Listener { new_context: bool, context_stack: Vec, - pub step_logs: Vec, + pub struct_logs: Vec, pub return_value: Vec, pub final_gas: u64, pub remaining_memory_usage: Option, @@ -77,7 +77,7 @@ impl Listener { disable_stack, remaining_memory_usage: Some(raw_max_memory_usage), - step_logs: vec![], + struct_logs: vec![], return_value: vec![], final_gas: 0, @@ -97,7 +97,7 @@ impl Listener { // Next step will be the first context. self.new_context = true; self.final_gas = cost; - }, + } GasometerEvent::RecordCost { cost, snapshot } => { if let Some(context) = self.context_stack.last_mut() { // Register opcode cost. (ignore costs not between Step and StepResult) @@ -108,8 +108,10 @@ impl Listener { self.final_gas = snapshot.used_gas; } - }, - GasometerEvent::RecordDynamicCost { gas_cost, snapshot, .. } => { + } + GasometerEvent::RecordDynamicCost { + gas_cost, snapshot, .. + } => { if let Some(context) = self.context_stack.last_mut() { // Register opcode cost. (ignore costs not between Step and StepResult) if let Some(step) = &mut context.current_step { @@ -119,7 +121,7 @@ impl Listener { self.final_gas = snapshot.used_gas; } - }, + } // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -128,7 +130,13 @@ impl Listener { pub fn runtime_event(&mut self, event: RuntimeEvent) { match event { - RuntimeEvent::Step { context, opcode, position, stack, memory } => { + RuntimeEvent::Step { + context, + opcode, + position, + stack, + memory, + } => { // Create a context if needed. if self.new_context { self.new_context = false; @@ -164,7 +172,7 @@ impl Listener { return; } - Some(memory.data) + Some(memory.data.clone()) }, stack: if self.disable_stack { None @@ -179,20 +187,30 @@ impl Listener { return; } - Some(stack.data) + Some(stack.data.clone()) }, }); } - }, - RuntimeEvent::StepResult { result, return_value } => { - // StepResult is expected to be emited after a step (in a context). + } + RuntimeEvent::StepResult { + result, + return_value, + } => { + // StepResult is expected to be emitted after a step (in a context). // Only case StepResult will occur without a Step before is in a transfer // transaction to a non-contract address. However it will not contain any // steps and return an empty trace, so we can ignore this edge case. if let Some(context) = self.context_stack.last_mut() { if let Some(current_step) = context.current_step.take() { - let Step { opcode, depth, gas, gas_cost, position, memory, stack } = - current_step; + let Step { + opcode, + depth, + gas, + gas_cost, + position, + memory, + stack, + } = current_step; let memory = memory.map(convert_memory); @@ -211,7 +229,7 @@ impl Listener { Some(context.storage_cache.clone()) }; - self.step_logs.push(RawStepLog { + self.struct_logs.push(RawStepLog { depth: depth.into(), gas: gas.into(), gas_cost: gas_cost.into(), @@ -243,8 +261,7 @@ impl Listener { .global_storage_changes .insert(context.address, context.storage_cache); - // Apply storage changes to parent, either updating its cache or - // map of changes. + // Apply storage changes to parent, either updating its cache or map of changes. for (address, mut storage) in context.global_storage_changes.into_iter() { @@ -270,22 +287,30 @@ impl Listener { } } } - }, + } Err(Capture::Trap(opcode)) if ContextType::from(opcode.clone()).is_some() => { self.new_context = true; - }, + } _ => (), } - }, - RuntimeEvent::SLoad { address: _, index, value } | - RuntimeEvent::SStore { address: _, index, value } => { + } + RuntimeEvent::SLoad { + address: _, + index, + value, + } + | RuntimeEvent::SStore { + address: _, + index, + value, + } => { if let Some(context) = self.context_stack.last_mut() { if !self.disable_storage { context.storage_cache.insert(index, value); } } - }, - // We ignore other kinds of message if any (new ones may be added in the future). + } + // We ignore other kinds of messages if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), } @@ -301,11 +326,14 @@ impl ListenerT for Listener { match event { Event::Gasometer(e) => self.gasometer_event(e), Event::Runtime(e) => self.runtime_event(e), - _ => {}, + _ => {} }; } fn step_event_filter(&self) -> StepEventFilter { - StepEventFilter { enable_memory: !self.disable_memory, enable_stack: !self.disable_stack } + StepEventFilter { + enable_memory: !self.disable_memory, + enable_stack: !self.disable_stack, + } } } diff --git a/client/evm-tracing/src/types/block.rs b/client/evm-tracing/src/types/block.rs index baac8a113..e8737bdcd 100644 --- a/client/evm-tracing/src/types/block.rs +++ b/client/evm-tracing/src/types/block.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -23,6 +23,17 @@ use ethereum_types::{H160, H256, U256}; use parity_scale_codec::{Decode, Encode}; use sp_std::vec::Vec; +/// Block transaction trace. +#[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct BlockTransactionTrace { + #[serde(serialize_with = "h256_0x_serialize")] + pub tx_hash: H256, + pub result: crate::types::single::TransactionTrace, + #[serde(skip_serializing)] + pub tx_position: u32, +} + #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] #[serde(rename_all = "camelCase")] pub struct TransactionTrace { @@ -63,7 +74,11 @@ pub enum TransactionTraceAction { value: U256, }, #[serde(rename_all = "camelCase")] - Suicide { address: H160, balance: U256, refund_address: H160 }, + Suicide { + address: H160, + balance: U256, + refund_address: H160, + }, } #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] diff --git a/client/evm-tracing/src/types/serialization.rs b/client/evm-tracing/src/types/serialization.rs index 6848f910f..f236068d4 100644 --- a/client/evm-tracing/src/types/serialization.rs +++ b/client/evm-tracing/src/types/serialization.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -21,6 +21,7 @@ use serde::{ ser::{Error, SerializeSeq}, Serializer, }; +use sp_runtime::traits::UniqueSaturatedInto; pub fn seq_h256_serialize(data: &Option>, serializer: S) -> Result where @@ -95,7 +96,7 @@ pub fn u256_serialize(data: &U256, serializer: S) -> Result where S: Serializer, { - serializer.serialize_u64(data.low_u64()) + serializer.serialize_u64(UniqueSaturatedInto::::unique_saturated_into(*data)) } pub fn h256_serialize(data: &H256, serializer: S) -> Result diff --git a/client/evm-tracing/src/types/single.rs b/client/evm-tracing/src/types/single.rs index badf39424..62d01781b 100644 --- a/client/evm-tracing/src/types/single.rs +++ b/client/evm-tracing/src/types/single.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -20,23 +20,27 @@ //! the whole block tracing output. use super::serialization::*; -use serde::Serialize; +use serde::{Deserialize, Serialize}; -use ethereum_types::{H256, U256}; +use ethereum_types::{H160, H256, U256}; use parity_scale_codec::{Decode, Encode}; use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] #[serde(rename_all = "camelCase", untagged)] pub enum Call { - Blockscout(Box), + Blockscout(crate::formatters::blockscout::BlockscoutCall), CallTracer(crate::formatters::call_tracer::CallTracerCall), } #[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode)] pub enum TraceType { /// Classic geth with no javascript based tracing. - Raw { disable_storage: bool, disable_memory: bool, disable_stack: bool }, + Raw { + disable_storage: bool, + disable_memory: bool, + disable_stack: bool, + }, /// List of calls and subcalls formatted with an input tracer (i.e. callTracer or Blockscout). CallList, /// A single block trace. Use in `debug_traceTransactionByNumber` / `traceTransactionByHash`. @@ -44,7 +48,6 @@ pub enum TraceType { } /// Single transaction trace. -#[allow(clippy::large_enum_variant)] #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] #[serde(rename_all = "camelCase", untagged)] pub enum TransactionTrace { @@ -54,7 +57,7 @@ pub enum TransactionTrace { gas: U256, #[serde(with = "hex")] return_value: Vec, - step_logs: Vec, + struct_logs: Vec, }, /// Matches the formatter used by Blockscout. /// Is also used to built output of OpenEthereum's `trace_filter`. @@ -76,7 +79,10 @@ pub struct RawStepLog { #[serde(serialize_with = "u256_serialize")] pub gas_cost: U256, - #[serde(serialize_with = "seq_h256_serialize", skip_serializing_if = "Option::is_none")] + #[serde( + serialize_with = "seq_h256_serialize", + skip_serializing_if = "Option::is_none" + )] pub memory: Option>, #[serde(serialize_with = "opcode_serialize")] @@ -85,9 +91,35 @@ pub struct RawStepLog { #[serde(serialize_with = "u256_serialize")] pub pc: U256, - #[serde(serialize_with = "seq_h256_serialize", skip_serializing_if = "Option::is_none")] + #[serde( + serialize_with = "seq_h256_serialize", + skip_serializing_if = "Option::is_none" + )] pub stack: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub storage: Option>, } + +#[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TraceCallConfig { + pub with_log: bool, +} + +impl Default for TraceCallConfig { + fn default() -> Self { + Self { with_log: false } + } +} + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, Serialize)] +pub struct Log { + /// Event address. + pub address: H160, + /// Event topics + pub topics: Vec, + /// Event data + #[serde(serialize_with = "bytes_0x_serialize")] + pub data: Vec, +} diff --git a/client/rpc-core/debug/Cargo.toml b/client/rpc-core/debug/Cargo.toml index 038580556..a9c206738 100644 --- a/client/rpc-core/debug/Cargo.toml +++ b/client/rpc-core/debug/Cargo.toml @@ -8,11 +8,13 @@ repository = 'https://github.com/peaqnetwork/peaq-network-node/' version = "0.1.0" [dependencies] +ethereum = { workspace = true, features = [ "with-scale" ] } ethereum-types = { workspace = true, default-features = true } serde = { workspace = true, default-features = true, features = ["derive"] } serde_json = { workspace = true, default-features = true } futures = { workspace = true, default-features = true, features = ["compat"] } jsonrpsee = { workspace = true, default-features = false, features = ["macros", "server"] } +fc-rpc-core = { workspace = true } peaq-client-evm-tracing = { path = "../../evm-tracing" } peaq-rpc-core-types = { path = "../types" } diff --git a/client/rpc-core/debug/src/lib.rs b/client/rpc-core/debug/src/lib.rs index fb05ee1fa..4ac98298c 100644 --- a/client/rpc-core/debug/src/lib.rs +++ b/client/rpc-core/debug/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -13,9 +13,12 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use ethereum_types::H256; + +use ethereum::AccessListItem; +use ethereum_types::{H160, H256, U256}; +use fc_rpc_core::types::Bytes; use jsonrpsee::{core::RpcResult, proc_macros::rpc}; -use peaq_client_evm_tracing::types::single; +use peaq_client_evm_tracing::types::{block, single}; use peaq_rpc_core_types::RequestBlockId; use serde::Deserialize; @@ -27,9 +30,38 @@ pub struct TraceParams { pub disable_stack: Option, /// Javascript tracer (we just check if it's Blockscout tracer string) pub tracer: Option, + pub tracer_config: Option, pub timeout: Option, } +#[derive(Debug, Clone, Default, Eq, PartialEq, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TraceCallParams { + /// Sender + pub from: Option, + /// Recipient + pub to: H160, + /// Gas Price, legacy. + pub gas_price: Option, + /// Max BaseFeePerGas the user is willing to pay. + pub max_fee_per_gas: Option, + /// The miner's tip. + pub max_priority_fee_per_gas: Option, + /// Gas + pub gas: Option, + /// Value of transaction in wei + pub value: Option, + /// Additional data sent with transaction + pub data: Option, + /// Nonce + pub nonce: Option, + /// EIP-2930 access list + pub access_list: Option>, + /// EIP-2718 type + #[serde(rename = "type")] + pub transaction_type: Option, +} + #[rpc(server)] #[jsonrpsee::core::async_trait] pub trait Debug { @@ -39,10 +71,17 @@ pub trait Debug { transaction_hash: H256, params: Option, ) -> RpcResult; + #[method(name = "debug_traceCall")] + async fn trace_call( + &self, + call_params: TraceCallParams, + id: RequestBlockId, + params: Option, + ) -> RpcResult; #[method(name = "debug_traceBlockByNumber", aliases = ["debug_traceBlockByHash"])] async fn trace_block( &self, id: RequestBlockId, params: Option, - ) -> RpcResult>; + ) -> RpcResult>; } diff --git a/client/rpc/debug/Cargo.toml b/client/rpc/debug/Cargo.toml index 500a57057..e7a774c7c 100644 --- a/client/rpc/debug/Cargo.toml +++ b/client/rpc/debug/Cargo.toml @@ -8,6 +8,7 @@ repository = 'https://github.com/peaqnetwork/peaq-network-node/' version = "0.1.0" [dependencies] +log = { workspace = true } futures = { workspace = true, default-features = true, features = [ "compat" ] } hex-literal = { workspace = true, default-features = true } jsonrpsee = { workspace = true, default-features = true, features = [ "macros", "server" ] } @@ -27,6 +28,7 @@ sp-blockchain = { workspace = true, default-features = true } sp-core = { workspace = true, default-features = true } sp-io = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } +sp-trie = { workspace = true, default-features = true } # Frontier ethereum = { workspace = true, default-features = false, features = [ "with-scale" ] } diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index 3a3915cd2..df41f653c 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -13,12 +13,9 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . - -#![feature(stmt_expr_attributes)] - use futures::StreamExt; use jsonrpsee::core::{async_trait, RpcResult}; -pub use peaq_rpc_core_debug::{DebugServer, TraceParams}; +pub use peaq_rpc_core_debug::{DebugServer, TraceCallParams, TraceParams}; use tokio::{ self, @@ -26,8 +23,13 @@ use tokio::{ }; use ethereum_types::H256; -use fc_rpc::{frontier_backend_client, internal_err, OverrideHandle}; +use fc_rpc::{frontier_backend_client, internal_err}; +use fc_storage::StorageOverride; use fp_rpc::EthereumRuntimeRPCApi; +use peaq_client_evm_tracing::formatters::call_tracer::CallTracerInner; +use peaq_client_evm_tracing::types::block; +use peaq_client_evm_tracing::types::block::BlockTransactionTrace; +use peaq_client_evm_tracing::types::single::TransactionTrace; use peaq_client_evm_tracing::{formatters::ResponseFormatter, types::single}; use peaq_rpc_core_types::{RequestBlockId, RequestBlockTag}; use peaq_rpc_primitives_debug::{DebugRuntimeApi, TracerInput}; @@ -38,20 +40,23 @@ use sp_block_builder::BlockBuilder; use sp_blockchain::{ Backend as BlockchainBackend, Error as BlockChainError, HeaderBackend, HeaderMetadata, }; +use sp_core::H160; use sp_runtime::{ generic::BlockId, traits::{BlakeTwo256, Block as BlockT, Header as HeaderT, UniqueSaturatedInto}, }; +use std::collections::BTreeMap; use std::{future::Future, marker::PhantomData, sync::Arc}; pub enum RequesterInput { + Call((RequestBlockId, TraceCallParams)), Transaction(H256), Block(RequestBlockId), } pub enum Response { Single(single::TransactionTrace), - Block(Vec), + Block(Vec), } pub type Responder = oneshot::Sender>; @@ -84,7 +89,10 @@ impl DebugServer for Debug { requester .unbounded_send(((RequesterInput::Transaction(transaction_hash), params), tx)) .map_err(|err| { - internal_err(format!("failed to send request to debug service : {:?}", err)) + internal_err(format!( + "failed to send request to debug service : {:?}", + err + )) })?; // Receive a message from the service level task and send the rpc response. @@ -100,7 +108,7 @@ impl DebugServer for Debug { &self, id: RequestBlockId, params: Option, - ) -> RpcResult> { + ) -> RpcResult> { let requester = self.requester.clone(); let (tx, rx) = oneshot::channel(); @@ -108,7 +116,10 @@ impl DebugServer for Debug { requester .unbounded_send(((RequesterInput::Block(id), params), tx)) .map_err(|err| { - internal_err(format!("failed to send request to debug service : {:?}", err)) + internal_err(format!( + "failed to send request to debug service : {:?}", + err + )) })?; // Receive a message from the service level task and send the rpc response. @@ -119,6 +130,36 @@ impl DebugServer for Debug { _ => unreachable!(), }) } + + /// Handler for `debug_traceCall` request. Communicates with the service-defined task + /// using channels. + async fn trace_call( + &self, + call_params: TraceCallParams, + id: RequestBlockId, + params: Option, + ) -> RpcResult { + let requester = self.requester.clone(); + + let (tx, rx) = oneshot::channel(); + // Send a message from the rpc handler to the service level task. + requester + .unbounded_send(((RequesterInput::Call((id, call_params)), params), tx)) + .map_err(|err| { + internal_err(format!( + "failed to send request to debug service : {:?}", + err + )) + })?; + + // Receive a message from the service level task and send the rpc response. + rx.await + .map_err(|err| internal_err(format!("debug service dropped the channel : {:?}", err)))? + .map(|res| match res { + Response::Single(res) => res, + _ => unreachable!(), + }) + } } pub struct DebugHandler(PhantomData<(B, C, BE)>); @@ -144,7 +185,7 @@ where backend: Arc, frontier_backend: Arc + Send + Sync>, permit_pool: Arc, - overrides: Arc>, + overrides: Arc>, raw_max_memory_usage: usize, ) -> (impl Future, DebugRequester) { let (tx, mut rx): (DebugRequester, _) = @@ -189,7 +230,41 @@ where .await, ); }); - }, + } + Some(( + (RequesterInput::Call((request_block_id, call_params)), params), + response_tx, + )) => { + let client = client.clone(); + let frontier_backend = frontier_backend.clone(); + let permit_pool = permit_pool.clone(); + + tokio::task::spawn(async move { + let _ = response_tx.send( + async { + let _permit = permit_pool.acquire().await; + tokio::task::spawn_blocking(move || { + Self::handle_call_request( + client.clone(), + frontier_backend.clone(), + request_block_id, + call_params, + params, + raw_max_memory_usage, + ) + }) + .await + .map_err(|e| { + internal_err(format!( + "Internal error on spawned task : {:?}", + e + )) + })? + } + .await, + ); + }); + } Some(((RequesterInput::Block(request_block_id), params), response_tx)) => { let client = client.clone(); let backend = backend.clone(); @@ -223,23 +298,33 @@ where .await, ); }); - }, - _ => {}, + } + _ => {} } } }; (fut, tx) } - fn handle_params(params: Option) -> RpcResult<(TracerInput, single::TraceType)> { + fn handle_params( + params: Option, + ) -> RpcResult<( + TracerInput, + single::TraceType, + Option, + )> { // Set trace input and type match params { - Some(TraceParams { tracer: Some(tracer), .. }) => { + Some(TraceParams { + tracer: Some(tracer), + tracer_config, + .. + }) => { const BLOCKSCOUT_JS_CODE_HASH: [u8; 16] = hex_literal::hex!("94d9f08796f91eb13a2e82a6066882f7"); const BLOCKSCOUT_JS_CODE_HASH_V2: [u8; 16] = hex_literal::hex!("89db13694675692951673a1e6e18ff02"); - let hash = sp_io::hashing::twox_128(tracer.as_bytes()); + let hash = sp_io::hashing::twox_128(&tracer.as_bytes()); let tracer = if hash == BLOCKSCOUT_JS_CODE_HASH || hash == BLOCKSCOUT_JS_CODE_HASH_V2 { Some(TracerInput::Blockscout) @@ -249,14 +334,14 @@ where None }; if let Some(tracer) = tracer { - Ok((tracer, single::TraceType::CallList)) + Ok((tracer, single::TraceType::CallList, tracer_config)) } else { - Err(internal_err(format!( + return Err(internal_err(format!( "javascript based tracing is not available (hash :{:?})", hash - ))) + ))); } - }, + } Some(params) => Ok(( TracerInput::None, single::TraceType::Raw { @@ -264,6 +349,7 @@ where disable_memory: params.disable_memory.unwrap_or(false), disable_stack: params.disable_stack.unwrap_or(false), }, + params.tracer_config, )), _ => Ok(( TracerInput::None, @@ -272,6 +358,7 @@ where disable_memory: false, disable_stack: false, }, + None, )), } } @@ -282,18 +369,21 @@ where frontier_backend: Arc + Send + Sync>, request_block_id: RequestBlockId, params: Option, - overrides: Arc>, + overrides: Arc>, ) -> RpcResult { - let (tracer_input, trace_type) = Self::handle_params(params)?; + let (tracer_input, trace_type, tracer_config) = Self::handle_params(params)?; let reference_id: BlockId = match request_block_id { RequestBlockId::Number(n) => Ok(BlockId::Number(n.unique_saturated_into())), - RequestBlockId::Tag(RequestBlockTag::Latest) => - Ok(BlockId::Number(client.info().best_number)), - RequestBlockId::Tag(RequestBlockTag::Earliest) => - Ok(BlockId::Number(0u32.unique_saturated_into())), - RequestBlockId::Tag(RequestBlockTag::Pending) => - Err(internal_err("'pending' blocks are not supported")), + RequestBlockId::Tag(RequestBlockTag::Latest) => { + Ok(BlockId::Number(client.info().best_number)) + } + RequestBlockId::Tag(RequestBlockTag::Earliest) => { + Ok(BlockId::Number(0u32.unique_saturated_into())) + } + RequestBlockId::Tag(RequestBlockTag::Pending) => { + Err(internal_err("'pending' blocks are not supported")) + } RequestBlockId::Hash(eth_hash) => { match futures::executor::block_on(frontier_backend_client::load_hash::( client.as_ref(), @@ -304,11 +394,19 @@ where Ok(_) => Err(internal_err("Block hash not found".to_string())), Err(e) => Err(e), } - }, + } }?; - // Get ApiRef. This handle allow to keep changes between txs in an internal buffer. - let api = client.runtime_api(); + // Get ApiRef. This handle allows to keep changes between txs in an internal buffer. + let mut api = client.runtime_api(); + + // Enable proof recording + api.record_proof(); + api.proof_recorder().map(|recorder| { + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); + api.register_extension(ext); + }); + // Get Blockchain backend let blockchain = backend.blockchain(); // Get the header I want to work with. @@ -323,17 +421,36 @@ where // Get parent blockid. let parent_block_hash = *header.parent_hash(); - let schema = fc_storage::onchain_storage_schema::(client.as_ref(), hash); + let statuses = overrides + .current_transaction_statuses(hash) + .unwrap_or_default(); - // Using storage overrides we align with `:ethereum_schema` which will result in proper - // SCALE decoding in case of migration. - let statuses = match overrides.schemas.get(&schema) { - Some(schema) => schema.current_transaction_statuses(hash).unwrap_or_default(), - _ => return Err(internal_err(format!("No storage override at {:?}", reference_id))), - }; + // Partial ethereum transaction data to check if a trace match an ethereum transaction + struct EthTxPartial { + transaction_hash: H256, + from: H160, + to: Option, + } // Known ethereum transaction hashes. - let eth_tx_hashes: Vec<_> = statuses.iter().map(|t| t.transaction_hash).collect(); + let eth_transactions_by_index: BTreeMap = statuses + .iter() + .map(|status| { + ( + status.transaction_index, + EthTxPartial { + transaction_hash: status.transaction_hash, + from: status.from, + to: status.to, + }, + ) + }) + .collect(); + + let eth_tx_hashes: Vec<_> = eth_transactions_by_index + .values() + .map(|tx| tx.transaction_hash) + .collect(); // If there are no ethereum transactions in the block return empty trace right away. if eth_tx_hashes.is_empty() { @@ -352,7 +469,9 @@ where { api_version } else { - return Err(internal_err("Runtime api version call failed (trace)".to_string())); + return Err(internal_err( + "Runtime api version call failed (trace)".to_string(), + )); }; // Trace the block. @@ -361,10 +480,30 @@ where // The block is initialized inside "trace_block" api.trace_block(parent_block_hash, exts, eth_tx_hashes, &header) } else { - // Old "trace_block" api did not initialize block before applying transactions, - // so we need to do it here before calling "trace_block". - api.initialize_block(parent_block_hash, &header) - .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; + // Get core runtime api version + let core_api_version = if let Ok(Some(api_version)) = + api.api_version::>(parent_block_hash) + { + api_version + } else { + return Err(internal_err( + "Runtime api version call failed (core)".to_string(), + )); + }; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem + // This was fine before pallet-message-queue because the XCM messages + // were processed by the "setValidationData" inherent call and not on an + // "on_initialize" hook, which runs before enabling XCM tracing + if core_api_version >= 5 { + api.initialize_block(parent_block_hash, &header) + .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; + } else { + #[allow(deprecated)] + api.initialize_block_before_version_5(parent_block_hash, &header) + .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))?; + } #[allow(deprecated)] api.trace_block_before_version_5(parent_block_hash, exts, eth_tx_hashes) @@ -387,46 +526,122 @@ where Ok(peaq_rpc_primitives_debug::Response::Block) }; - match trace_type { + // Offset to account for old buggy transactions that are in trace not in the ethereum block + let mut tx_position_offset = 0; + + return match trace_type { single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); + proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { - TracerInput::CallTracer => - peaq_client_evm_tracing::formatters::CallTracer::format(proxy) - .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e))), - _ => Err(internal_err("Bug: failed to resolve the tracer format.".to_string())), + TracerInput::CallTracer => { + let result = + peaq_client_evm_tracing::formatters::CallTracer::format(proxy) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e)))? + .into_iter() + .filter_map(|mut trace: BlockTransactionTrace| { + if let Some(EthTxPartial { + transaction_hash, + from, + to, + }) = eth_transactions_by_index + .get(&(trace.tx_position - tx_position_offset)) + { + // verify that the trace matches the ethereum transaction + let (trace_from, trace_to) = match trace.result { + TransactionTrace::Raw { .. } => { + (Default::default(), None) + } + TransactionTrace::CallList(_) => { + (Default::default(), None) + } + TransactionTrace::CallListNested(ref call) => { + match call { + single::Call::Blockscout(_) => { + (Default::default(), None) + } + single::Call::CallTracer(call) => ( + call.from, + match call.inner { + CallTracerInner::Call { + to, .. + } => Some(to), + CallTracerInner::Create { .. } => None, + CallTracerInner::SelfDestruct { + .. + } => None, + }, + ), + } + } + }; + if trace_from == *from && trace_to == *to { + trace.tx_hash = *transaction_hash; + Some(trace) + } else { + // if the trace does not match the ethereum transaction + // it means that the trace is about a buggy transaction that is not in the block + // we need to offset the tx_position + tx_position_offset += 1; + None + } + } else { + // If the transaction is not in the ethereum block + // it should not appear in the block trace + tx_position_offset += 1; + None + } + }) + .collect::>(); + + let n_txs = eth_transactions_by_index.len(); + let n_traces = result.len(); + if n_txs != n_traces { + log::warn!( + "The traces in block {:?} don't match with the number of ethereum transactions. (txs: {}, traces: {})", + request_block_id, + n_txs, + n_traces + ); + } + + Ok(result) + } + _ => Err(internal_err( + "Bug: failed to resolve the tracer format.".to_string(), + )), }?; Ok(Response::Block(response)) - }, + } _ => Err(internal_err( "debug_traceBlock functions currently only support callList mode (enabled by providing `{{'tracer': 'callTracer'}}` in the request)." .to_string(), )), - } + }; } /// Replays a transaction in the Runtime at a given block height. /// - /// In order to succesfully reproduce the result of the original transaction we need a correct + /// In order to successfully reproduce the result of the original transaction we need a correct /// state to replay over. /// /// Substrate allows to apply extrinsics in the Runtime and thus creating an overlayed state. - /// This overlayed changes will live in-memory for the lifetime of the ApiRef. + /// These overlayed changes will live in-memory for the lifetime of the ApiRef. fn handle_transaction_request( client: Arc, backend: Arc, frontier_backend: Arc + Send + Sync>, transaction_hash: H256, params: Option, - overrides: Arc>, + overrides: Arc>, raw_max_memory_usage: usize, ) -> RpcResult { - let (tracer_input, trace_type) = Self::handle_params(params)?; + let (tracer_input, trace_type, tracer_config) = Self::handle_params(params)?; let (hash, index) = match futures::executor::block_on(frontier_backend_client::load_transactions::( @@ -451,7 +666,15 @@ where Err(e) => return Err(e), }; // Get ApiRef. This handle allow to keep changes between txs in an internal buffer. - let api = client.runtime_api(); + let mut api = client.runtime_api(); + + // Enable proof recording + api.record_proof(); + api.proof_recorder().map(|recorder| { + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); + api.register_extension(ext); + }); + // Get Blockchain backend let blockchain = backend.blockchain(); // Get the header I want to work with. @@ -477,18 +700,12 @@ where { api_version } else { - return Err(internal_err("Runtime api version call failed (trace)".to_string())); + return Err(internal_err( + "Runtime api version call failed (trace)".to_string(), + )); }; - let schema = - fc_storage::onchain_storage_schema::(client.as_ref(), reference_hash); - - // Get the block that contains the requested transaction. Using storage overrides we align - // with `:ethereum_schema` which will result in proper SCALE decoding in case of migration. - let reference_block = match overrides.schemas.get(&schema) { - Some(schema) => schema.current_block(reference_hash), - _ => return Err(internal_err(format!("No storage override at {:?}", reference_hash))), - }; + let reference_block = overrides.current_block(reference_hash); // Get the actual ethereum transaction. if let Some(block) = reference_block { @@ -497,14 +714,36 @@ where let f = || -> RpcResult<_> { let result = if trace_api_version >= 5 { // The block is initialized inside "trace_transaction" - api.trace_transaction(parent_block_hash, exts, transaction, &header) + api.trace_transaction(parent_block_hash, exts, &transaction, &header) } else { - // Old "trace_transaction" api did not initialize block before applying - // transactions, so we need to do it here before calling - // "trace_transaction". - api.initialize_block(parent_block_hash, &header).map_err(|e| { - internal_err(format!("Runtime api access error: {:?}", e)) - })?; + // Get core runtime api version + let core_api_version = if let Ok(Some(api_version)) = + api.api_version::>(parent_block_hash) + { + api_version + } else { + return Err(internal_err( + "Runtime api version call failed (core)".to_string(), + )); + }; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem + // This was fine before pallet-message-queue because the XCM messages + // were processed by the "setValidationData" inherent call and not on an + // "on_initialize" hook, which runs before enabling XCM tracing + if core_api_version >= 5 { + api.initialize_block(parent_block_hash, &header) + .map_err(|e| { + internal_err(format!("Runtime api access error: {:?}", e)) + })?; + } else { + #[allow(deprecated)] + api.initialize_block_before_version_5(parent_block_hash, &header) + .map_err(|e| { + internal_err(format!("Runtime api access error: {:?}", e)) + })?; + } if trace_api_version == 4 { // Pre pallet-message-queue @@ -512,23 +751,26 @@ where api.trace_transaction_before_version_5( parent_block_hash, exts, - transaction, + &transaction, ) } else { // Pre-london update, legacy transactions. match transaction { ethereum::TransactionV2::Legacy(tx) => + { #[allow(deprecated)] api.trace_transaction_before_version_4( parent_block_hash, exts, - tx, - ), - _ => + &tx, + ) + } + _ => { return Err(internal_err( "Bug: pre-london runtime expects legacy transactions" .to_string(), - )), + )) + } } } }; @@ -546,7 +788,11 @@ where }; return match trace_type { - single::TraceType::Raw { disable_storage, disable_memory, disable_stack } => { + single::TraceType::Raw { + disable_storage, + disable_memory, + disable_stack, + } => { let mut proxy = peaq_client_evm_tracing::listeners::Raw::new( disable_storage, disable_memory, @@ -562,29 +808,33 @@ where ), )?, )) - }, + } single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); + proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { - TracerInput::Blockscout => + TracerInput::Blockscout => { peaq_client_evm_tracing::formatters::Blockscout::format(proxy) .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e))), + .map_err(|e| internal_err(format!("{:?}", e))) + } TracerInput::CallTracer => { let mut res = - peaq_client_evm_tracing::formatters::CallTracer::format(proxy) - .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e)))?; - Ok(res.pop().expect("Trace result is empty.")) - }, + peaq_client_evm_tracing::formatters::CallTracer::format( + proxy, + ) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e)))?; + Ok(res.pop().expect("Trace result is empty.").result) + } _ => Err(internal_err( "Bug: failed to resolve the tracer format.".to_string(), )), }?; Ok(Response::Single(response)) - }, + } not_supported => Err(internal_err(format!( "Bug: `handle_transaction_request` does not support {:?}.", not_supported @@ -594,4 +844,221 @@ where } Err(internal_err("Runtime block call failed".to_string())) } + + fn handle_call_request( + client: Arc, + frontier_backend: Arc + Send + Sync>, + request_block_id: RequestBlockId, + call_params: TraceCallParams, + trace_params: Option, + raw_max_memory_usage: usize, + ) -> RpcResult { + let (tracer_input, trace_type, tracer_config) = Self::handle_params(trace_params)?; + + let reference_id: BlockId = match request_block_id { + RequestBlockId::Number(n) => Ok(BlockId::Number(n.unique_saturated_into())), + RequestBlockId::Tag(RequestBlockTag::Latest) => { + Ok(BlockId::Number(client.info().best_number)) + } + RequestBlockId::Tag(RequestBlockTag::Earliest) => { + Ok(BlockId::Number(0u32.unique_saturated_into())) + } + RequestBlockId::Tag(RequestBlockTag::Pending) => { + Err(internal_err("'pending' blocks are not supported")) + } + RequestBlockId::Hash(eth_hash) => { + match futures::executor::block_on(frontier_backend_client::load_hash::( + client.as_ref(), + frontier_backend.as_ref(), + eth_hash, + )) { + Ok(Some(hash)) => Ok(BlockId::Hash(hash)), + Ok(_) => Err(internal_err("Block hash not found".to_string())), + Err(e) => Err(e), + } + } + }?; + + // Get ApiRef. This handle allow to keep changes between txs in an internal buffer. + let mut api = client.runtime_api(); + + // Enable proof recording + api.record_proof(); + api.proof_recorder().map(|recorder| { + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); + api.register_extension(ext); + }); + + // Get the header I want to work with. + let Ok(hash) = client.expect_block_hash_from_id(&reference_id) else { + return Err(internal_err("Block header not found")); + }; + let header = match client.header(hash) { + Ok(Some(h)) => h, + _ => return Err(internal_err("Block header not found")), + }; + // Get parent blockid. + let parent_block_hash = *header.parent_hash(); + + // Get DebugRuntimeApi version + let trace_api_version = if let Ok(Some(api_version)) = + api.api_version::>(parent_block_hash) + { + api_version + } else { + return Err(internal_err( + "Runtime api version call failed (trace)".to_string(), + )); + }; + + if trace_api_version <= 5 { + return Err(internal_err( + "debug_traceCall not supported with old runtimes".to_string(), + )); + } + + let TraceCallParams { + from, + to, + gas_price, + max_fee_per_gas, + max_priority_fee_per_gas, + gas, + value, + data, + nonce, + access_list, + .. + } = call_params; + + let (max_fee_per_gas, max_priority_fee_per_gas) = + match (gas_price, max_fee_per_gas, max_priority_fee_per_gas) { + (gas_price, None, None) => { + // Legacy request, all default to gas price. + // A zero-set gas price is None. + let gas_price = if gas_price.unwrap_or_default().is_zero() { + None + } else { + gas_price + }; + (gas_price, gas_price) + } + (_, max_fee, max_priority) => { + // eip-1559 + // A zero-set max fee is None. + let max_fee = if max_fee.unwrap_or_default().is_zero() { + None + } else { + max_fee + }; + // Ensure `max_priority_fee_per_gas` is less or equal to `max_fee_per_gas`. + if let Some(max_priority) = max_priority { + let max_fee = max_fee.unwrap_or_default(); + if max_priority > max_fee { + return Err(internal_err( + "Invalid input: `max_priority_fee_per_gas` greater than `max_fee_per_gas`", + )); + } + } + (max_fee, max_priority) + } + }; + + let gas_limit = match gas { + Some(amount) => amount, + None => { + if let Some(block) = api + .current_block(parent_block_hash) + .map_err(|err| internal_err(format!("runtime error: {:?}", err)))? + { + block.header.gas_limit + } else { + return Err(internal_err( + "block unavailable, cannot query gas limit".to_string(), + )); + } + } + }; + let data = data.map(|d| d.0).unwrap_or_default(); + + let access_list = access_list.unwrap_or_default(); + + let f = || -> RpcResult<_> { + let _result = api + .trace_call( + parent_block_hash, + &header, + from.unwrap_or_default(), + to, + data, + value.unwrap_or_default(), + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + Some( + access_list + .into_iter() + .map(|item| (item.address, item.storage_keys)) + .collect(), + ), + ) + .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))? + .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))?; + + Ok(peaq_rpc_primitives_debug::Response::Single) + }; + + return match trace_type { + single::TraceType::Raw { + disable_storage, + disable_memory, + disable_stack, + } => { + let mut proxy = peaq_client_evm_tracing::listeners::Raw::new( + disable_storage, + disable_memory, + disable_stack, + raw_max_memory_usage, + ); + proxy.using(f)?; + Ok(Response::Single( + peaq_client_evm_tracing::formatters::Raw::format(proxy).ok_or( + internal_err( + "replayed transaction generated too much data. \ + try disabling memory or storage?", + ), + )?, + )) + } + single::TraceType::CallList => { + let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); + proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); + proxy.using(f)?; + proxy.finish_transaction(); + let response = match tracer_input { + TracerInput::Blockscout => { + peaq_client_evm_tracing::formatters::Blockscout::format(proxy) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e))) + } + TracerInput::CallTracer => { + let mut res = + peaq_client_evm_tracing::formatters::CallTracer::format(proxy) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e)))?; + Ok(res.pop().expect("Trace result is empty.").result) + } + _ => Err(internal_err( + "Bug: failed to resolve the tracer format.".to_string(), + )), + }?; + Ok(Response::Single(response)) + } + not_supported => Err(internal_err(format!( + "Bug: `handle_call_request` does not support {:?}.", + not_supported + ))), + }; + } } diff --git a/client/rpc/trace/src/lib.rs b/client/rpc/trace/src/lib.rs index 29fe9565b..6bc75b68b 100644 --- a/client/rpc/trace/src/lib.rs +++ b/client/rpc/trace/src/lib.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -19,10 +19,10 @@ //! executor. //! //! The implementation is composed of multiple tasks : -//! - Many calls the the RPC handler `Trace::filter`, communicating with the main task. +//! - Many calls the RPC handler `Trace::filter`, communicating with the main task. //! - A main `CacheTask` managing the cache and the communication between tasks. -//! - For each traced block an async task responsible to wait for a permit, spawn a blocking task -//! and waiting for the result, then send it to the main `CacheTask`. +//! - For each traced block an async task responsible to wait for a permit, spawn a blocking +//! task and waiting for the result, then send it to the main `CacheTask`. use futures::{select, stream::FuturesUnordered, FutureExt, StreamExt}; use std::{collections::BTreeMap, future::Future, marker::PhantomData, sync::Arc, time::Duration}; @@ -45,7 +45,7 @@ use substrate_prometheus_endpoint::{ }; use ethereum_types::H256; -use fc_rpc::OverrideHandle; +use fc_storage::StorageOverride; use fp_rpc::EthereumRuntimeRPCApi; use peaq_client_evm_tracing::{ @@ -86,23 +86,30 @@ where { /// Create a new RPC handler. pub fn new(client: Arc, requester: CacheRequester, max_count: u32) -> Self { - Self { client, requester, max_count, _phantom: PhantomData } + Self { + client, + requester, + max_count, + _phantom: PhantomData, + } } /// Convert an optional block ID (number or tag) to a block height. fn block_id(&self, id: Option) -> Result { match id { Some(RequestBlockId::Number(n)) => Ok(n), - None | Some(RequestBlockId::Tag(RequestBlockTag::Latest)) => - Ok(self.client.info().best_number), + None | Some(RequestBlockId::Tag(RequestBlockTag::Latest)) => { + Ok(self.client.info().best_number) + } Some(RequestBlockId::Tag(RequestBlockTag::Earliest)) => Ok(0), - Some(RequestBlockId::Tag(RequestBlockTag::Pending)) => - Err("'pending' is not supported"), + Some(RequestBlockId::Tag(RequestBlockTag::Pending)) => { + Err("'pending' is not supported") + } Some(RequestBlockId::Hash(_)) => Err("Block hash not supported"), } } - /// `trace_filter` endpoint (wrapped in the trait implementation with futures compatibilty) + /// `trace_filter` endpoint (wrapped in the trait implementation with futures compatibility) async fn filter(self, req: FilterRequest) -> TxsTraceRes { let from_block = self.block_id(req.from_block)?; let to_block = self.block_id(req.to_block)?; @@ -127,7 +134,10 @@ where .client .hash(block_height) .map_err(|e| { - format!("Error when fetching block {} header : {:?}", block_height, e) + format!( + "Error when fetching block {} header : {:?}", + block_height, e + ) })? .ok_or_else(|| format!("Block with height {} don't exist", block_height))?; @@ -169,15 +179,18 @@ where let mut block_traces: Vec<_> = block_traces .iter() .filter(|trace| match trace.action { - block::TransactionTraceAction::Call { from, to, .. } => - (from_address.is_empty() || from_address.contains(&from)) && - (to_address.is_empty() || to_address.contains(&to)), - block::TransactionTraceAction::Create { from, .. } => - (from_address.is_empty() || from_address.contains(&from)) && - to_address.is_empty(), - block::TransactionTraceAction::Suicide { address, .. } => - (from_address.is_empty() || from_address.contains(&address)) && - to_address.is_empty(), + block::TransactionTraceAction::Call { from, to, .. } => { + (from_address.is_empty() || from_address.contains(&from)) + && (to_address.is_empty() || to_address.contains(&to)) + } + block::TransactionTraceAction::Create { from, .. } => { + (from_address.is_empty() || from_address.contains(&from)) + && to_address.is_empty() + } + block::TransactionTraceAction::Suicide { address, .. } => { + (from_address.is_empty() || from_address.contains(&address)) + && to_address.is_empty() + } }) .cloned() .collect(); @@ -228,7 +241,10 @@ where &self, filter: FilterRequest, ) -> jsonrpsee::core::RpcResult> { - self.clone().filter(filter).await.map_err(fc_rpc::internal_err) + self.clone() + .filter(filter) + .await + .map_err(fc_rpc::internal_err) } } @@ -272,14 +288,23 @@ impl CacheRequester { let sender = self.0.clone(); sender - .unbounded_send(CacheRequest::StartBatch { sender: response_tx, blocks }) + .unbounded_send(CacheRequest::StartBatch { + sender: response_tx, + blocks, + }) .map_err(|e| { - format!("Failed to send request to the trace cache task. Error : {:?}", e) + format!( + "Failed to send request to the trace cache task. Error : {:?}", + e + ) })?; - response_rx - .await - .map_err(|e| format!("Trace cache task closed the response channel. Error : {:?}", e)) + response_rx.await.map_err(|e| { + format!( + "Trace cache task closed the response channel. Error : {:?}", + e + ) + }) } /// Fetch the traces for given block hash. @@ -292,14 +317,25 @@ impl CacheRequester { let sender = self.0.clone(); sender - .unbounded_send(CacheRequest::GetTraces { sender: response_tx, block }) + .unbounded_send(CacheRequest::GetTraces { + sender: response_tx, + block, + }) .map_err(|e| { - format!("Failed to send request to the trace cache task. Error : {:?}", e) + format!( + "Failed to send request to the trace cache task. Error : {:?}", + e + ) })?; response_rx .await - .map_err(|e| format!("Trace cache task closed the response channel. Error : {:?}", e))? + .map_err(|e| { + format!( + "Trace cache task closed the response channel. Error : {:?}", + e + ) + })? .map_err(|e| format!("Failed to replay block. Error : {:?}", e)) } @@ -311,15 +347,20 @@ impl CacheRequester { // Here we don't care if the request has been accepted or refused, the caller can't // do anything with it. - let _ = sender.unbounded_send(CacheRequest::StopBatch { batch_id }).map_err(|e| { - format!("Failed to send request to the trace cache task. Error : {:?}", e) - }); + let _ = sender + .unbounded_send(CacheRequest::StopBatch { batch_id }) + .map_err(|e| { + format!( + "Failed to send request to the trace cache task. Error : {:?}", + e + ) + }); } } /// Data stored for each block in the cache. /// `active_batch_count` represents the number of batches using this -/// block. It will increase immediatly when a batch is created, but will be +/// block. It will increase immediately when a batch is created, but will be /// decrease only after the batch ends and its expiration delay passes. /// It allows to keep the data in the cache for following requests that would use /// this block, which is important to handle pagination efficiently. @@ -345,7 +386,7 @@ enum CacheBlockState { #[allow(dead_code)] unqueue_sender: oneshot::Sender<()>, }, - /// Tracing has completed and the result is available. No Runtime API call + /// Tracing has been completed and the result is available. No Runtime API call /// will be needed until this block cache is removed. Cached { traces: TxsTraceRes }, } @@ -358,8 +399,11 @@ enum BlockingTaskMessage { /// the semaphore. This is used to prevent the deletion of a cache entry for a block that has /// started being traced. Started { block_hash: H256 }, - /// The tracing is finished and the result is send to the main task. - Finished { block_hash: H256, result: TxsTraceRes }, + /// The tracing is finished and the result is sent to the main task. + Finished { + block_hash: H256, + result: TxsTraceRes, + }, } /// Type wrapper for the cache task, generic over the Client, Block and Backend types. @@ -391,14 +435,14 @@ where { /// Create a new cache task. /// - /// Returns a Future that needs to be added to a tokio executor, and an handle allowing to + /// Returns a Future that needs to be added to a tokio executor, and a handle allowing to /// send requests to the task. pub fn create( client: Arc, backend: Arc, cache_duration: Duration, blocking_permits: Arc, - overrides: Arc>, + overrides: Arc>, prometheus: Option, ) -> (impl Future, CacheRequester) { // Communication with the outside world : @@ -418,13 +462,13 @@ where Err(err) => { log::error!(target: "tracing", "Failed to register metrics {err:?}"); None - }, + } } } else { None }; // Contains the inner state of the cache task, excluding the pooled futures/channels. - // Having this object allow to refactor each event into its own function, simplifying + // Having this object allows to refactor each event into its own function, simplifying // the main loop. let mut inner = Self { client, @@ -491,13 +535,13 @@ where blocking_tx: &mpsc::Sender, sender: oneshot::Sender, blocks: Vec, - overrides: Arc>, + overrides: Arc>, ) { tracing::trace!("Starting batch {}", self.next_batch_id); self.batches.insert(self.next_batch_id, blocks.clone()); for block in blocks { - // The block is already in the cache, awesome ! + // The block is already in the cache, awesome! if let Some(block_cache) = self.cached_blocks.get_mut(&block) { block_cache.active_batch_count += 1; tracing::trace!( @@ -519,7 +563,7 @@ where // Spawn all block caching asynchronously. // It will wait to obtain a permit, then spawn a blocking task. - // When the blocking task returns its result, it is send + // When the blocking task returns its result, it is sent // thought a channel to the main task loop. tokio::spawn( async move { @@ -555,9 +599,12 @@ where tracing::trace!("Block tracing finished, sending result to main task."); - // Send response to main task. + // Send a response to the main task. let _ = blocking_tx - .send(BlockingTaskMessage::Finished { block_hash: block, result }) + .send(BlockingTaskMessage::Finished { + block_hash: block, + result, + }) .await; } .instrument(tracing::trace_span!("Block tracing", block = %block)), @@ -581,22 +628,25 @@ where // Respond with the batch ID. let _ = sender.send(CacheBatchId(self.next_batch_id)); - // Increase batch ID for next request. + // Increase batch ID for the next request. self.next_batch_id = self.next_batch_id.overflowing_add(1).0; } /// Handle a request to get the traces of the provided block. - /// - If the result is stored in the cache, it sends it immediatly. - /// - If the block is currently being pooled, it is added in this block cache waiting list, and - /// all requests concerning this block will be satisfied when the tracing for this block is - /// finished. + /// - If the result is stored in the cache, it sends it immediately. + /// - If the block is currently being pooled, it is added to this block cache waiting list, + /// and all requests concerning this block will be satisfied when the tracing for this block + /// is finished. /// - If this block is missing from the cache, it means no batch asked for it. All requested /// blocks should be contained in a batch beforehand, and thus an error is returned. #[instrument(skip(self))] fn request_get_traces(&mut self, sender: oneshot::Sender, block: H256) { if let Some(block_cache) = self.cached_blocks.get_mut(&block) { match &mut block_cache.state { - CacheBlockState::Pooled { ref mut waiting_requests, .. } => { + CacheBlockState::Pooled { + ref mut waiting_requests, + .. + } => { tracing::warn!( "A request asked a pooled block ({}), adding it to the list of \ waiting requests.", @@ -606,7 +656,7 @@ where if let Some(metrics) = &self.metrics { metrics.tracing_cache_misses.inc(); } - }, + } CacheBlockState::Cached { traces, .. } => { tracing::warn!( "A request asked a cached block ({}), sending the traces directly.", @@ -616,15 +666,17 @@ where if let Some(metrics) = &self.metrics { metrics.tracing_cache_hits.inc(); } - }, + } } } else { tracing::warn!( "An RPC request asked to get a block ({}) which was not batched.", block ); - let _ = sender - .send(Err(format!("RPC request asked a block ({}) that was not batched", block))); + let _ = sender.send(Err(format!( + "RPC request asked a block ({}) that was not batched", + block + ))); } } @@ -644,8 +696,8 @@ where // We remove early the block cache if this batch is the last // pooling this block. if let Some(block_cache) = self.cached_blocks.get_mut(block) { - if block_cache.active_batch_count == 1 && - matches!( + if block_cache.active_batch_count == 1 + && matches!( block_cache.state, CacheBlockState::Pooled { started: false, .. } ) { @@ -668,7 +720,10 @@ where #[instrument(skip(self))] fn blocking_started(&mut self, block_hash: H256) { if let Some(block_cache) = self.cached_blocks.get_mut(&block_hash) { - if let CacheBlockState::Pooled { ref mut started, .. } = block_cache.state { + if let CacheBlockState::Pooled { + ref mut started, .. + } = block_cache.state + { *started = true; } } @@ -684,7 +739,11 @@ where // TODO : Should we add it back ? Should it have an active_batch_count // of 1 then ? if let Some(block_cache) = self.cached_blocks.get_mut(&block_hash) { - if let CacheBlockState::Pooled { ref mut waiting_requests, .. } = block_cache.state { + if let CacheBlockState::Pooled { + ref mut waiting_requests, + .. + } = block_cache.state + { tracing::trace!( "A new block ({}) has been traced, adding it to the cache and responding to \ {} waiting requests.", @@ -732,48 +791,52 @@ where client: Arc, backend: Arc, substrate_hash: H256, - overrides: Arc>, + overrides: Arc>, ) -> TxsTraceRes { // Get Subtrate block data. let api = client.runtime_api(); let block_header = client .header(substrate_hash) .map_err(|e| { - format!("Error when fetching substrate block {} header : {:?}", substrate_hash, e) + format!( + "Error when fetching substrate block {} header : {:?}", + substrate_hash, e + ) })? - .ok_or_else(|| format!("Subtrate block {} don't exist", substrate_hash))?; + .ok_or_else(|| format!("Substrate block {} don't exist", substrate_hash))?; let height = *block_header.number(); let substrate_parent_hash = *block_header.parent_hash(); - let schema = - fc_storage::onchain_storage_schema::(client.as_ref(), substrate_hash); - // Get Ethereum block data. - let (eth_block, eth_transactions) = match overrides.schemas.get(&schema) { - Some(schema) => match ( - schema.current_block(substrate_hash), - schema.current_transaction_statuses(substrate_hash), - ) { - (Some(a), Some(b)) => (a, b), - _ => - return Err(format!( - "Failed to get Ethereum block data for Substrate block {}", - substrate_hash - )), - }, - _ => return Err(format!("No storage override at {:?}", substrate_hash)), + let (eth_block, eth_transactions) = match ( + overrides.current_block(substrate_hash), + overrides.current_transaction_statuses(substrate_hash), + ) { + (Some(a), Some(b)) => (a, b), + _ => { + return Err(format!( + "Failed to get Ethereum block data for Substrate block {}", + substrate_hash + )) + } }; let eth_block_hash = eth_block.header.hash(); - let eth_tx_hashes = eth_transactions.iter().map(|t| t.transaction_hash).collect(); + let eth_tx_hashes = eth_transactions + .iter() + .map(|t| t.transaction_hash) + .collect(); // Get extrinsics (containing Ethereum ones) let extrinsics = backend .blockchain() .body(substrate_hash) .map_err(|e| { - format!("Blockchain error when fetching extrinsics of block {} : {:?}", height, e) + format!( + "Blockchain error when fetching extrinsics of block {} : {:?}", + height, e + ) })? .ok_or_else(|| format!("Could not find block {} when fetching extrinsics.", height))?; @@ -789,13 +852,35 @@ where // Trace the block. let f = || -> Result<_, String> { let result = if trace_api_version >= 5 { - // The block is initialized inside "trace_transaction" - api.trace_block(substrate_parent_hash, extrinsics, eth_tx_hashes, &block_header) + api.trace_block( + substrate_parent_hash, + extrinsics, + eth_tx_hashes, + &block_header, + ) } else { - // Old "trace_block" api did not initialize block before applying transactions, - // so we need to do it here before calling "trace_block". - api.initialize_block(substrate_parent_hash, &block_header) - .map_err(|e| format!("Runtime api access error: {:?}", e))?; + // Get core runtime api version + let core_api_version = if let Ok(Some(api_version)) = + api.api_version::>(substrate_parent_hash) + { + api_version + } else { + return Err("Runtime api version call failed (core)".to_string()); + }; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem + // This was fine before pallet-message-queue because the XCM messages + // were processed by the "setValidationData" inherent call and not on an + // "on_initialize" hook, which runs before enabling XCM tracing + if core_api_version >= 5 { + api.initialize_block(substrate_parent_hash, &block_header) + .map_err(|e| format!("Runtime api access error: {:?}", e))?; + } else { + #[allow(deprecated)] + api.initialize_block_before_version_5(substrate_parent_hash, &block_header) + .map_err(|e| format!("Runtime api access error: {:?}", e))?; + } #[allow(deprecated)] api.trace_block_before_version_5(substrate_parent_hash, extrinsics, eth_tx_hashes) @@ -805,46 +890,63 @@ where .map_err(|e| format!("Blockchain error when replaying block {} : {:?}", height, e))? .map_err(|e| { tracing::warn!( + target: "tracing", "Internal runtime error when replaying block {} : {:?}", height, e ); - format!("Internal runtime error when replaying block {} : {:?}", height, e) + format!( + "Internal runtime error when replaying block {} : {:?}", + height, e + ) })?; Ok(peaq_rpc_primitives_debug::Response::Block) }; + let eth_transactions_by_index: BTreeMap = eth_transactions + .iter() + .map(|t| (t.transaction_index, t.transaction_hash)) + .collect(); + let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); proxy.using(f)?; - let mut traces: Vec<_> = peaq_client_evm_tracing::formatters::TraceFilter::format(proxy) - .ok_or("Fail to format proxy")?; - // Fill missing data. - for trace in traces.iter_mut() { - trace.block_hash = eth_block_hash; - trace.block_number = height; - trace.transaction_hash = eth_transactions - .get(trace.transaction_position as usize) - .ok_or_else(|| { - tracing::warn!( - "Bug: A transaction has been replayed while it shouldn't (in block {}).", - height - ); - format!( - "Bug: A transaction has been replayed while it shouldn't (in block {}).", - height - ) - })? - .transaction_hash; + let traces: Vec = + peaq_client_evm_tracing::formatters::TraceFilter::format(proxy) + .ok_or("Fail to format proxy")? + .into_iter() + .filter_map(|mut trace| { + match eth_transactions_by_index.get(&trace.transaction_position) { + Some(transaction_hash) => { + trace.block_hash = eth_block_hash; + trace.block_number = height; + trace.transaction_hash = *transaction_hash; + + // Reformat error messages. + if let block::TransactionTraceOutput::Error(ref mut error) = + trace.output + { + if error.as_slice() == b"execution reverted" { + *error = b"Reverted".to_vec(); + } + } + + Some(trace) + } + None => { + log::warn!( + target: "tracing", + "A trace in block {} does not map to any known ethereum transaction. Trace: {:?}", + height, + trace, + ); + None + } + } + }) + .collect(); - // Reformat error messages. - if let block::TransactionTraceOutput::Error(ref mut error) = trace.output { - if error.as_slice() == b"execution reverted" { - *error = b"Reverted".to_vec(); - } - } - } Ok(traces) } } diff --git a/client/rpc/txpool/Cargo.toml b/client/rpc/txpool/Cargo.toml deleted file mode 100644 index 05cde34e2..000000000 --- a/client/rpc/txpool/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "peaq-rpc-txpool" -authors = ['peaq network '] -edition = "2021" -homepage = 'https://peaq.network/' -license = "GPL-3.0-only" -repository = 'https://github.com/peaqnetwork/peaq-network-node/' -version = "0.6.0" - -[dependencies] -jsonrpsee = { workspace = true, default-features = true, features = [ "macros", "server" ] } -rlp = { workspace = true, default-features = true } -serde = { workspace = true, default-features = true, features = [ "derive" ] } -sha3 = { workspace = true, default-features = true } - -peaq-rpc-core-txpool = { path = "../../rpc-core/txpool" } -peaq-rpc-primitives-txpool = { path = "../../../primitives/rpc/txpool" } - -# Substrate -frame-system = { workspace = true, default-features = true } -sc-transaction-pool = { workspace = true, default-features = true } -sc-transaction-pool-api = { workspace = true, default-features = true } -sp-api = { workspace = true, default-features = true } -sp-blockchain = { workspace = true, default-features = true } -sp-io = { workspace = true, default-features = true } -sp-runtime = { workspace = true, default-features = true } -sp-std = { workspace = true, default-features = true } - -# Frontier -ethereum-types = { workspace = true, default-features = true } -fc-rpc = { workspace = true, default-features = true } diff --git a/client/rpc/txpool/src/lib.rs b/client/rpc/txpool/src/lib.rs deleted file mode 100644 index d14faf3de..000000000 --- a/client/rpc/txpool/src/lib.rs +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use ethereum_types::{H160, H256, U256}; -use fc_rpc::{internal_err, public_key}; -use jsonrpsee::core::RpcResult; -pub use peaq_rpc_core_txpool::{ - GetT, Summary, Transaction, TransactionMap, TxPoolResult, TxPoolServer, -}; -use sc_transaction_pool::{ChainApi, Pool}; -use sc_transaction_pool_api::InPoolTransaction; -use serde::Serialize; -use sha3::{Digest, Keccak256}; -use sp_api::{ApiExt, ProvideRuntimeApi}; -use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sp_runtime::traits::Block as BlockT; -use std::{marker::PhantomData, sync::Arc}; - -use peaq_rpc_primitives_txpool::{Transaction as TransactionV2, TxPoolResponse, TxPoolRuntimeApi}; - -pub struct TxPool { - client: Arc, - graph: Arc>, - _marker: PhantomData, -} - -impl TxPool -where - C: ProvideRuntimeApi, - C: HeaderMetadata + HeaderBackend + 'static, - C: Send + Sync + 'static, - B: BlockT + Send + Sync + 'static, - A: ChainApi + 'static, - C::Api: TxPoolRuntimeApi, -{ - /// Use the transaction graph interface to get the extrinsics currently in the ready and future - /// queues. - fn map_build(&self) -> RpcResult>> - where - T: GetT + Serialize, - { - // Collect transactions in the ready validated pool. - let txs_ready = self - .graph - .validated_pool() - .ready() - .map(|in_pool_tx| in_pool_tx.data().clone()) - .collect(); - - // Collect transactions in the future validated pool. - let txs_future = self - .graph - .validated_pool() - .futures() - .iter() - .map(|(_hash, extrinsic)| extrinsic.clone()) - .collect(); - - // Use the runtime to match the (here) opaque extrinsics against ethereum transactions. - let best_block = self.client.info().best_hash; - let api = self.client.runtime_api(); - let api_version = - if let Ok(Some(api_version)) = api.api_version::>(best_block) { - api_version - } else { - return Err(internal_err("failed to retrieve Runtime Api version".to_string())); - }; - let ethereum_txns: TxPoolResponse = if api_version == 1 { - #[allow(deprecated)] - let res = api.extrinsic_filter_before_version_2(best_block, txs_ready, txs_future) - .map_err(|err| { - internal_err(format!("fetch runtime extrinsic filter failed: {:?}", err)) - })?; - TxPoolResponse { - ready: res.ready.iter().map(|t| TransactionV2::Legacy(t.clone())).collect(), - future: res.future.iter().map(|t| TransactionV2::Legacy(t.clone())).collect(), - } - } else { - api.extrinsic_filter(best_block, txs_ready, txs_future).map_err(|err| { - internal_err(format!("fetch runtime extrinsic filter failed: {:?}", err)) - })? - }; - // Build the T response. - let mut pending = TransactionMap::::new(); - for txn in ethereum_txns.ready.iter() { - let hash = txn.hash(); - let nonce = match txn { - TransactionV2::Legacy(t) => t.nonce, - TransactionV2::EIP2930(t) => t.nonce, - TransactionV2::EIP1559(t) => t.nonce, - }; - let from_address = match public_key(txn) { - Ok(pk) => H160::from(H256::from_slice(Keccak256::digest(pk).as_slice())), - Err(_e) => H160::default(), - }; - pending - .entry(from_address) - .or_default() - .insert(nonce, T::get(hash, from_address, txn)); - } - let mut queued = TransactionMap::::new(); - for txn in ethereum_txns.future.iter() { - let hash = txn.hash(); - let nonce = match txn { - TransactionV2::Legacy(t) => t.nonce, - TransactionV2::EIP2930(t) => t.nonce, - TransactionV2::EIP1559(t) => t.nonce, - }; - let from_address = match public_key(txn) { - Ok(pk) => H160::from(H256::from_slice(Keccak256::digest(pk).as_slice())), - Err(_e) => H160::default(), - }; - queued - .entry(from_address) - .or_default() - .insert(nonce, T::get(hash, from_address, txn)); - } - Ok(TxPoolResult { pending, queued }) - } -} - -impl TxPool { - pub fn new(client: Arc, graph: Arc>) -> Self { - Self { client, graph, _marker: PhantomData } - } -} - -impl TxPoolServer for TxPool -where - C: ProvideRuntimeApi, - C: HeaderMetadata + HeaderBackend, - C: Send + Sync + 'static, - B: BlockT + Send + Sync + 'static, - A: ChainApi + 'static, - C::Api: TxPoolRuntimeApi, -{ - fn content(&self) -> RpcResult>> { - self.map_build::() - } - - fn inspect(&self) -> RpcResult>> { - self.map_build::() - } - - fn status(&self) -> RpcResult> { - let status = self.graph.validated_pool().status(); - Ok(TxPoolResult { pending: U256::from(status.ready), queued: U256::from(status.future) }) - } -} diff --git a/node/Cargo.toml b/node/Cargo.toml index 468f469bc..a1a813a46 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -127,7 +127,7 @@ peaq-rpc-debug = { path = "../client/rpc/debug" } peaq-rpc-primitives-debug = { path = "../primitives/rpc/debug" } peaq-rpc-primitives-txpool = { path = "../primitives/rpc/txpool" } peaq-rpc-trace = { path = "../client/rpc/trace" } -peaq-rpc-txpool = { path = "../client/rpc/txpool" } +# peaq-rpc-txpool = { path = "../client/rpc/txpool" } pallet-block-reward = { path = "../pallets/block-reward" } peaq-primitives-xcm = { path = "../primitives/xcm" } runtime-common = { path = "../runtime/common" } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 8b6ac30cd..1094a3d68 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -3,7 +3,7 @@ use cumulus_primitives_core::ParaId; use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; -use fc_rpc::{EthBlockDataCacheTask, OverrideHandle}; +use fc_rpc::{EthBlockDataCacheTask, OverrideHandle, TxPool}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use jsonrpsee::RpcModule; use peaq_primitives_xcm::*; @@ -152,7 +152,7 @@ where use peaq_pallet_storage_rpc::{PeaqStorage, PeaqStorageApiServer}; use peaq_rpc_debug::{Debug, DebugServer}; use peaq_rpc_trace::{Trace, TraceServer}; - use peaq_rpc_txpool::{TxPool, TxPoolServer}; + // use peaq_rpc_txpool::{TxPool, TxPoolServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; use zenlink_protocol_rpc::{ZenlinkProtocol, ZenlinkProtocolApiServer}; diff --git a/primitives/rpc/evm-tracing-events/src/evm.rs b/primitives/rpc/evm-tracing-events/src/evm.rs index 50ef242eb..b3b650f52 100644 --- a/primitives/rpc/evm-tracing-events/src/evm.rs +++ b/primitives/rpc/evm-tracing-events/src/evm.rs @@ -257,15 +257,16 @@ impl<'a> From> for EvmEvent { is_static, context: context.clone().into(), }, - evm::tracing::Event::Log { - address, - topics, - data, - } => Self::Log { - address, - topics: topics.to_vec(), - data: data.to_vec(), - }, + // [TODO] Need to check... + // evm::tracing::Event::Log { + // address, + // topics, + // data, + // } => Self::Log { + // address, + // topics: topics.to_vec(), + // data: data.to_vec(), + // }, } } } diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 234d7b27a..59264d4be 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -1441,7 +1441,7 @@ impl_runtime_apis! { #[cfg(feature = "evm-tracing")] fn trace_transaction( extrinsics: Vec<::Extrinsic>, - traced_transaction: &pallet_ethereum::Transaction, + traced_transaction: &EthereumTransaction, header: &::Header, ) -> Result< (), @@ -1478,7 +1478,7 @@ impl_runtime_apis! { #[cfg(not(feature = "evm-tracing"))] fn trace_transaction( _extrinsics: Vec<::Extrinsic>, - _traced_transaction: &pallet_ethereum::Transaction, + _traced_transaction: &EthereumTransaction, _header: &::Header, ) -> Result< (), @@ -1540,6 +1540,24 @@ impl_runtime_apis! { "Missing `evm-tracing` compile time feature flag.", )) } + + // [TODO] .... + fn trace_call( + header: &::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } } impl peaq_rpc_primitives_txpool::TxPoolRuntimeApi for Runtime { diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 435b10b15..cb1e30076 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1456,7 +1456,7 @@ impl_runtime_apis! { #[cfg(feature = "evm-tracing")] fn trace_transaction( extrinsics: Vec<::Extrinsic>, - traced_transaction: &pallet_ethereum::Transaction, + traced_transaction: &EthereumTransaction, header: &::Header, ) -> Result< (), @@ -1493,7 +1493,7 @@ impl_runtime_apis! { #[cfg(not(feature = "evm-tracing"))] fn trace_transaction( _extrinsics: Vec<::Extrinsic>, - _traced_transaction: &pallet_ethereum::Transaction, + _traced_transaction: &EthereumTransaction, _header: &::Header, ) -> Result< (), @@ -1555,6 +1555,24 @@ impl_runtime_apis! { "Missing `evm-tracing` compile time feature flag.", )) } + + // [TODO] .... + fn trace_call( + header: &::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } } impl peaq_rpc_primitives_txpool::TxPoolRuntimeApi for Runtime { diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 6a7486bfc..4c656d27c 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1474,7 +1474,7 @@ impl_runtime_apis! { #[cfg(feature = "evm-tracing")] fn trace_transaction( extrinsics: Vec<::Extrinsic>, - traced_transaction: &pallet_ethereum::Transaction, + traced_transaction: &EthereumTransaction, header: &::Header, ) -> Result< (), @@ -1511,7 +1511,7 @@ impl_runtime_apis! { #[cfg(not(feature = "evm-tracing"))] fn trace_transaction( _extrinsics: Vec<::Extrinsic>, - _traced_transaction: &pallet_ethereum::Transaction, + _traced_transaction: &EthereumTransaction, _header: &::Header, ) -> Result< (), @@ -1573,6 +1573,24 @@ impl_runtime_apis! { "Missing `evm-tracing` compile time feature flag.", )) } + + // [TODO] .... + fn trace_call( + header: &::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } } impl peaq_rpc_primitives_txpool::TxPoolRuntimeApi for Runtime { From 3252c6b31482bf97f6f070fc64c03574bff7972c Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 11:48:17 +0200 Subject: [PATCH 22/98] Tempary check in again --- node/src/command.rs | 3 +- node/src/parachain/service.rs | 46 ++++++++++++++++------------- node/src/parachain/shell_upgrade.rs | 2 +- node/src/rpc.rs | 24 +++++++-------- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/node/src/command.rs b/node/src/command.rs index 54bcbdd3c..6c18445fc 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -531,10 +531,9 @@ impl CliConfiguration for RelayChainCli { _support_url: &String, _impl_version: &String, _logger_hook: F, - _config: &sc_service::Configuration, ) -> Result<()> where - F: FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration), + F: FnOnce(&mut sc_cli::LoggerBuilder), { unreachable!("PolkadotCli is never initialized; qed"); } diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index f2cc29871..42349761c 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -81,7 +81,7 @@ pub fn frontier_database_dir(config: &Configuration, path: &str) -> std::path::P pub fn open_frontier_backend( client: Arc, config: &Configuration, -) -> Result, String> +) -> Result, String> where C: ProvideRuntimeApi + StorageProvider + AuxStore, C: HeaderBackend + HeaderMetadata, @@ -129,7 +129,7 @@ pub fn new_partial( FullBackend, (), sc_consensus::DefaultImportQueue, - sc_transaction_pool::FullPool>, + sc_transaction_pool::TransactionPoolHandle>, ( ParachainBlockImport< Block, @@ -139,7 +139,7 @@ pub fn new_partial( Option, Option, Option, - Arc>, + Arc>>, FeeHistoryCache, ), >, @@ -258,8 +258,12 @@ async fn build_relay_chain_interface( if let cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) = collator_options.relay_chain_mode { - build_minimal_relay_chain_node_with_rpc(polkadot_config, task_manager, rpc_target_urls) - .await + build_minimal_relay_chain_node_with_rpc( + polkadot_config, + parachain_config.prometheus_registry(), + task_manager, + rpc_target_urls + ).await } else { build_inprocess_relay_chain( polkadot_config, @@ -333,7 +337,7 @@ where Option, &TaskManager, Arc, - Arc>>, + Arc>>, Arc>, KeystorePtr, ParaId, @@ -373,8 +377,11 @@ where let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let network_config = FullNetworkConfiguration::new(¶chain_config.network); - let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + let network_config = FullNetworkConfiguration::<_, _, sc_network::NetworkWorker<_, _>>::new( + ¶chain_config.network, + prometheus_registry.clone() + ); + let (network, system_rpc_tx, tx_handler_controller, sync_service) = cumulus_client_service::build_network(BuildNetworkParams { parachain_config: ¶chain_config, net_config: network_config, @@ -390,7 +397,7 @@ where let fee_history_limit = rpc_config.fee_history_limit; - let overrides = fc_storage::overrides_handle(client.clone()); + let overrides = Arc::new(fc_storage::StorageOverrideHandler::new(client.clone())); let pubsub_notification_sinks: Arc< fc_mapping_sync::EthereumBlockNotificationSinks< @@ -410,7 +417,7 @@ where client.clone(), backend.clone(), overrides.clone(), - Arc::new(b.clone()), + b.clone(), 3, 0, fc_mapping_sync::SyncStrategy::Parachain, @@ -438,7 +445,7 @@ where Some("frontier"), EthTask::fee_history_task( Arc::clone(&client), - Arc::clone(&overrides), + overrides.clone(), fee_history_cache.clone(), fee_history_limit, ), @@ -488,19 +495,18 @@ where let fee_history_cache = fee_history_cache.clone(); let block_data_cache = block_data_cache.clone(); - move |deny_unsafe, subscription_task_executor| { + move |subscription_task_executor| { let deps = crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), - graph: pool.pool().clone(), - deny_unsafe, + graph: pool.clone(), is_authority, network: network.clone(), sync: sync.clone(), filter_pool: filter_pool.clone(), ethapi_cmd: ethapi_cmd.clone(), - frontier_backend: match frontier_backend.as_ref() { - fc_db::Backend::KeyValue(b) => Arc::new(b.clone()), + frontier_backend: match &*frontier_backend { + fc_db::Backend::KeyValue(b) => b.clone(), }, backend: backend.clone(), command_sink: None, @@ -589,8 +595,6 @@ where )?; } - start_network.start_network(); - Ok((task_manager, client)) } @@ -776,7 +780,7 @@ where ); let fut = - async_aura::run::(async_aura::Params { + async_aura::run::(async_aura::Params { create_inherent_data_providers: move |_, ()| async move { Ok(()) }, block_import: block_import.clone(), para_client: client.clone(), @@ -785,12 +789,12 @@ where code_hash_provider: move |block_hash| { client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) }, - sync_oracle: sync_oracle.clone(), keystore, collator_key, para_id, overseer_handle, - slot_duration, + // [TODO] + max_pov_percentage: None, relay_chain_slot_duration: Duration::from_secs(6), proposer: cumulus_client_consensus_proposer::Proposer::new(proposer_factory), collator_service, diff --git a/node/src/parachain/shell_upgrade.rs b/node/src/parachain/shell_upgrade.rs index 867df4e14..45d7735dd 100644 --- a/node/src/parachain/shell_upgrade.rs +++ b/node/src/parachain/shell_upgrade.rs @@ -92,7 +92,7 @@ where Client::Api: AuraApi, { async fn verify( - &mut self, + &self, block_import: BlockImportParams, ) -> Result, String> { let block_hash = *block_import.header.parent_hash(); diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 1094a3d68..0b8bfe985 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -3,7 +3,8 @@ use cumulus_primitives_core::ParaId; use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; -use fc_rpc::{EthBlockDataCacheTask, OverrideHandle, TxPool}; +// [TODO] TxPool +use fc_rpc::{EthBlockDataCacheTask, StorageOverride}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use jsonrpsee::RpcModule; use peaq_primitives_xcm::*; @@ -14,7 +15,7 @@ use sc_client_api::{ UsageProvider, }; use sc_consensus_manual_seal::rpc::EngineCommand; -use sc_network::NetworkService; +use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc::SubscriptionTaskExecutor; use sc_rpc_api::DenyUnsafe; @@ -53,10 +54,10 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { pub task_manager: &'a TaskManager, pub client: Arc, pub substrate_backend: Arc, - pub frontier_backend: Arc>, + pub frontier_backend: Arc>, // pub frontier_backend: Arc + Send + Sync>, pub filter_pool: Option, - pub overrides: Arc>, + pub overrides: Arc>, pub fee_history_limit: u64, pub fee_history_cache: FeeHistoryCache, } @@ -64,19 +65,17 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { pub type XcmSenders = Option<(flume::Sender>, flume::Sender<(ParaId, Vec)>)>; /// Full client dependencies. -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. pub pool: Arc

, /// Graph pool instance. - pub graph: Arc>, - /// Whether to deny unsafe calls - pub deny_unsafe: DenyUnsafe, + pub graph: Arc

, /// The Node authority flag pub is_authority: bool, /// Network service - pub network: Arc>, + pub network: Arc, /// Chain syncing service pub sync: Arc>, /// EthFilterApi pool. @@ -98,7 +97,7 @@ pub struct FullDeps { /// Channels for manual xcm messages (downward, hrmp) pub xcm_senders: XcmSenders, /// Ethereum data access overrides. - pub overrides: Arc>, + pub overrides: Arc>, /// Cache for Ethereum block data. pub block_data_cache: Arc>, /// Mandated parent hashes for a given block hash. @@ -111,8 +110,8 @@ pub struct TracingConfig { } /// Instantiate all full RPC extensions. -pub fn create_full( - deps: FullDeps, +pub fn create_full( + deps: FullDeps, subscription_task_executor: SubscriptionTaskExecutor, maybe_tracing_config: Option, ) -> Result, Box> @@ -138,7 +137,6 @@ where C::Api: peaq_pallet_storage_rpc::PeaqStorageRuntimeApi, C::Api: zenlink_protocol_runtime_api::ZenlinkProtocolApi, P: TransactionPool + 'static, - A: ChainApi + 'static, BE::Blockchain: BlockchainBackend, { From 0fd05131e0de5fcfe7065be5e73856f858cef6f0 Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 12:19:22 +0200 Subject: [PATCH 23/98] Temp checkin 03 --- Cargo.lock | 1 + node/Cargo.toml | 2 +- node/src/parachain/dev_chain_spec.rs | 84 ++++++++++------------ node/src/parachain/krest_chain_spec.rs | 97 ++++++++++++-------------- node/src/parachain/peaq_chain_spec.rs | 96 ++++++++++++------------- node/src/parachain/service.rs | 65 ++++++++--------- node/src/parachain/shell_upgrade.rs | 76 +------------------- 7 files changed, 158 insertions(+), 263 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8d1822f2..89d47ad7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9847,6 +9847,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "serde", + "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", diff --git a/node/Cargo.toml b/node/Cargo.toml index a1a813a46..5104f907b 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -21,7 +21,7 @@ git = "https://github.com/peaqnetwork/polkadot-sdk" branch = "peaq-polkadot-stable2503-4" [dependencies] -# serde_json = { workspace = true, default-features = true } +serde_json = { workspace = true, default-features = true } structopt = { workspace = true, default-features = true } async-trait = { workspace = true, default-features = true } futures = { workspace = true, default-features = true } diff --git a/node/src/parachain/dev_chain_spec.rs b/node/src/parachain/dev_chain_spec.rs index 0f0f920e2..d91af5ae4 100644 --- a/node/src/parachain/dev_chain_spec.rs +++ b/node/src/parachain/dev_chain_spec.rs @@ -16,7 +16,7 @@ use sp_runtime::{ }; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; @@ -51,52 +51,39 @@ pub fn get_chain_spec_local_testnet(para_id: u32) -> Result { let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?; let mut properties = Properties::new(); - properties.insert("tokenSymbol".into(), "PEAQ".into()); + properties.insert("tokenSymbol".into(), "AGUNG".into()); properties.insert("tokenDecimals".into(), TOKEN_DECIMALS.into()); - #[allow(deprecated)] - Ok(ChainSpec::from_genesis( - "peaq-dev", - "dev-testnet", - ChainType::Development, - move || { - configure_genesis( - // stakers - vec![( - get_account_id_from_seed::("Alice"), - None, - 2 * staking::MinCollatorStake::get(), - )], - // Initial PoA authorities - vec![authority_keys_from_seed("Alice")], - // 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::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie"), - ], - para_id.into(), - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some(properties), - // Extensions - Extensions { bad_blocks: Default::default(), relay_chain: "rococo-local".into(), para_id }, - // code + Ok(ChainSpec::builder( wasm_binary, + Extensions { bad_blocks: Default::default(), relay_chain: "rococo-local".into(), para_id }, + ) + .with_name("peaq-dev") + .with_id("dev-testnet") + .with_chain_type(ChainType::Development) + .with_genesis_config(configure_genesis( + // stakers + vec![( + get_account_id_from_seed::("Alice"), + None, + 2 * staking::MinCollatorStake::get(), + )], + // Initial PoA authorities + vec![authority_keys_from_seed("Alice")], + // 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::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie"), + ], + para_id.into(), )) + .with_properties(properties) + .build()) } fn session_keys(aura: AuraId) -> peaq_dev_runtime::opaque::SessionKeys { @@ -110,25 +97,27 @@ fn configure_genesis( root_key: AccountId, endowed_accounts: Vec, parachain_id: ParaId, -) -> RuntimeGenesisConfig { +) -> serde_json::Value { // This is supposed the be the simplest bytecode to revert without returning any data. // We will pre-deploy it under all of our precompiles to ensure they can be called from // within contracts. // (PUSH1 0x00 PUSH1 0x00 REVERT) let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - RuntimeGenesisConfig { + let config = RuntimeGenesisConfig { system: Default::default(), parachain_info: ParachainInfoConfig { parachain_id, ..Default::default() }, balances: BalancesConfig { // Configure endowed accounts with initial balance of 1 << 78. balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 78)).collect(), + dev_accounts: None, }, session: peaq_dev_runtime::SessionConfig { keys: initial_authorities .iter() .map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone()))) .collect::>(), + non_authority_keys: vec![], }, parachain_staking: ParachainStakingConfig { stakers, @@ -155,7 +144,7 @@ fn configure_genesis( }, aura_ext: Default::default(), evm: EVMConfig { - accounts: PeaqPrecompiles::::used_addresses() + accounts: PeaqPrecompiles::::used_addresses_h160() .map(|addr| { ( addr, @@ -187,5 +176,6 @@ fn configure_genesis( }, }, assets: Default::default(), - } + }; + serde_json::to_value(&config).expect("Could not build genesis config.") } diff --git a/node/src/parachain/krest_chain_spec.rs b/node/src/parachain/krest_chain_spec.rs index 347386ae4..b76263554 100644 --- a/node/src/parachain/krest_chain_spec.rs +++ b/node/src/parachain/krest_chain_spec.rs @@ -16,7 +16,7 @@ use crate::parachain::dev_chain_spec::{authority_keys_from_seed, get_account_id_ use sp_core::sr25519; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; @@ -36,56 +36,43 @@ pub fn get_chain_spec_local_testnet(para_id: u32) -> Result { properties.insert("tokenSymbol".into(), "KREST".into()); properties.insert("tokenDecimals".into(), TOKEN_DECIMALS.into()); - #[allow(deprecated)] - Ok(ChainSpec::from_genesis( - "krest-network", - "krest-local", - ChainType::Local, - move || { - configure_genesis( - // stakers - vec![( - get_account_id_from_seed::("Alice"), - None, - 2 * staking::MinCollatorStake::get(), - )], - // Initial PoA authorities - vec![authority_keys_from_seed("Alice")], - // 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"), - ], - para_id.into(), - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some(properties), - // Extensions - Extensions { bad_blocks: Default::default(), relay_chain: "kusama-local".into(), para_id }, - // code + Ok(ChainSpec::builder( wasm_binary, + Extensions { bad_blocks: Default::default(), relay_chain: "kusama-local".into(), para_id }, + ) + .with_name("krest-network") + .with_id("krest-local") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(configure_genesis( + // stakers + vec![( + get_account_id_from_seed::("Alice"), + None, + 2 * staking::MinCollatorStake::get(), + )], + // Initial PoA authorities + vec![authority_keys_from_seed("Alice")], + // 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"), + ], + para_id.into(), )) + .with_properties(properties) + .build()) } /// Configure initial storage state for FRAME modules. @@ -95,25 +82,27 @@ fn configure_genesis( root_key: AccountId, endowed_accounts: Vec, parachain_id: ParaId, -) -> RuntimeGenesisConfig { +) -> serde_json::Value { // This is supposed the be the simplest bytecode to revert without returning any data. // We will pre-deploy it under all of our precompiles to ensure they can be called from // within contracts. // (PUSH1 0x00 PUSH1 0x00 REVERT) let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - RuntimeGenesisConfig { + let config = RuntimeGenesisConfig { system: Default::default(), parachain_info: ParachainInfoConfig { parachain_id, ..Default::default() }, balances: BalancesConfig { // Configure endowed accounts with initial balance of 1 << 78. balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 78)).collect(), + dev_accounts: None, }, session: peaq_krest_runtime::SessionConfig { keys: initial_authorities .iter() .map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone()))) .collect::>(), + non_authority_keys: vec![], }, parachain_staking: ParachainStakingConfig { stakers, @@ -140,7 +129,7 @@ fn configure_genesis( }, aura_ext: Default::default(), evm: EVMConfig { - accounts: PeaqPrecompiles::::used_addresses() + accounts: PeaqPrecompiles::::used_addresses_h160() .map(|addr| { ( addr, @@ -164,5 +153,7 @@ fn configure_genesis( treasury: Default::default(), council: CouncilConfig::default(), assets: Default::default(), - } + }; + + serde_json::to_value(&config).expect("Could not build genesis config.") } diff --git a/node/src/parachain/peaq_chain_spec.rs b/node/src/parachain/peaq_chain_spec.rs index c74e3f230..13cd5bbce 100644 --- a/node/src/parachain/peaq_chain_spec.rs +++ b/node/src/parachain/peaq_chain_spec.rs @@ -16,7 +16,7 @@ use crate::parachain::dev_chain_spec::{authority_keys_from_seed, get_account_id_ use sp_core::sr25519; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; @@ -36,60 +36,47 @@ pub fn get_chain_spec_local_testnet(para_id: u32) -> Result { properties.insert("tokenSymbol".into(), "PEAQ".into()); properties.insert("tokenDecimals".into(), TOKEN_DECIMALS.into()); - #[allow(deprecated)] - Ok(ChainSpec::from_genesis( - "peaq-network", - "peaq-local", - ChainType::Local, - move || { - configure_genesis( - // stakers - vec![( - get_account_id_from_seed::("Alice"), - None, - 2 * staking::MinCollatorStake::get(), - )], - // Initial PoA authorities - vec![authority_keys_from_seed("Alice")], - // 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"), - ], - para_id.into(), - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Fork ID - None, - // Properties - Some(properties), - // Extensions + Ok(ChainSpec::builder( + wasm_binary, Extensions { bad_blocks: Default::default(), relay_chain: "polkadot-local".into(), para_id, }, - // code - wasm_binary, + ) + .with_name("peaq-network") + .with_id("peaq-local") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(configure_genesis( + // stakers + vec![( + get_account_id_from_seed::("Alice"), + None, + 2 * staking::MinCollatorStake::get(), + )], + // Initial PoA authorities + vec![authority_keys_from_seed("Alice")], + // 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"), + ], + para_id.into(), )) + .with_properties(properties) + .build()) } /// Configure initial storage state for FRAME modules. @@ -99,25 +86,27 @@ fn configure_genesis( root_key: AccountId, endowed_accounts: Vec, parachain_id: ParaId, -) -> RuntimeGenesisConfig { +) -> serde_json::Value { // This is supposed the be the simplest bytecode to revert without returning any data. // We will pre-deploy it under all of our precompiles to ensure they can be called from // within contracts. // (PUSH1 0x00 PUSH1 0x00 REVERT) let revert_bytecode = vec![0x60, 0x00, 0x60, 0x00, 0xFD]; - RuntimeGenesisConfig { + let config = RuntimeGenesisConfig { system: Default::default(), parachain_info: ParachainInfoConfig { parachain_id, ..Default::default() }, balances: BalancesConfig { // Configure endowed accounts with initial balance of 1 << 78. balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 78)).collect(), + dev_accounts: None, }, session: peaq_runtime::SessionConfig { keys: initial_authorities .iter() .map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone()))) .collect::>(), + non_authority_keys: vec![], }, parachain_staking: ParachainStakingConfig { stakers, @@ -144,7 +133,7 @@ fn configure_genesis( }, aura_ext: Default::default(), evm: EVMConfig { - accounts: PeaqPrecompiles::::used_addresses() + accounts: PeaqPrecompiles::::used_addresses_h160() .map(|addr| { ( addr, @@ -167,5 +156,6 @@ fn configure_genesis( treasury: Default::default(), council: CouncilConfig::default(), assets: Default::default(), - } + }; + serde_json::to_value(&config).expect("Could not build genesis config.") } diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 42349761c..b9f67d510 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -90,7 +90,7 @@ where BE: Backend + 'static, BE::State: StateBackend, { - let frontier_backend = fc_db::Backend::KeyValue(fc_db::kv::Backend::::new( + let frontier_backend = fc_db::Backend::KeyValue(Arc::new(fc_db::kv::Backend::::new( client, &fc_db::kv::DatabaseSettings { source: match config.database { @@ -109,7 +109,7 @@ where return Err("Supported db sources: `rocksdb` | `paritydb` | `auto`".to_string()), }, }, - )?); + )?)); Ok(frontier_backend) } @@ -171,7 +171,7 @@ where ) -> Result, sc_service::Error>, { // Use ethereum style for subscription ids - config.rpc_id_provider = Some(Box::new(fc_rpc::EthereumSubIdProvider)); + config.rpc.id_provider = Some(Box::new(fc_rpc::EthereumSubIdProvider)); let telemetry = config .telemetry_endpoints @@ -184,7 +184,8 @@ where }) .transpose()?; - let executor = sc_service::new_wasm_executor(config); + // [TODO] ... + let executor = sc_service::new_wasm_executor(&config.executor); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -201,13 +202,14 @@ where telemetry }); - let transaction_pool = sc_transaction_pool::BasicPool::new_full( - config.transaction_pool.clone(), - config.role.is_authority().into(), - config.prometheus_registry(), + let transaction_pool = sc_transaction_pool::Builder::new( task_manager.spawn_essential_handle(), client.clone(), - ); + config.role.is_authority().into(), + ) + .with_options(config.transaction_pool.clone()) + .with_prometheus(config.prometheus_registry()) + .build(); let filter_pool: Option = Some(Arc::new(std::sync::Mutex::new(BTreeMap::new()))); let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); @@ -233,7 +235,7 @@ where import_queue, keystore_container, task_manager, - transaction_pool, + transaction_pool: transaction_pool.into(), select_chain: (), other: ( parachain_block_import, @@ -627,41 +629,34 @@ where { let client2 = client.clone(); - let aura_verifier = move || { - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client2).unwrap(); - - Box::new(cumulus_client_consensus_aura::build_verifier::< - sp_consensus_aura::sr25519::AuthorityPair, - _, - _, - _, + let aura_verifier = Box::new(cumulus_client_consensus_aura::build_verifier::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, >(cumulus_client_consensus_aura::BuildVerifierParams { client: client2.clone(), - create_inherent_data_providers: move |_, _| async move { + create_inherent_data_providers: move |parent_hash, _| { + let cidp_client = client2.clone(); + async move { let time = sp_timestamp::InherentDataProvider::from_system_time(); - + let slot_duration = + cumulus_client_consensus_aura::slot_duration_at(&*cidp_client, parent_hash)?; let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *time, - slot_duration, - ); - let dynamic_fee = - fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); - - Ok((slot, time, dynamic_fee)) + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *time, + slot_duration, + ); + Ok((slot, time)) + } }, telemetry: telemetry_handle, - })) as Box<_> - }; + })); let relay_chain_verifier = Box::new(RelayChainVerifier::new(client.clone(), |_, _| async { Ok(()) })) as Box<_>; - let verifier = Verifier { - client, - relay_chain_verifier, - aura_verifier: BuildOnAccess::Uninitialized(Some(Box::new(aura_verifier))), - }; + let verifier = Verifier { client, relay_chain_verifier, aura_verifier }; let registry = config.prometheus_registry(); let spawner = task_manager.spawn_essential_handle(); diff --git a/node/src/parachain/shell_upgrade.rs b/node/src/parachain/shell_upgrade.rs index 45d7735dd..890132044 100644 --- a/node/src/parachain/shell_upgrade.rs +++ b/node/src/parachain/shell_upgrade.rs @@ -1,8 +1,5 @@ //! Special [`ParachainConsensus`] implementation that waits for the upgrade from shell to a //! parachain runtime that implements Aura. -use cumulus_client_consensus_common::{ParachainCandidate, ParachainConsensus}; -use cumulus_primitives_core::relay_chain::{Hash as PHash, PersistedValidationData}; -use futures::lock::Mutex; use peaq_primitives_xcm::*; use sc_consensus::{import_queue::Verifier as VerifierT, BlockImportParams}; use sp_api::ApiExt; @@ -10,78 +7,9 @@ use sp_consensus_aura::{sr25519::AuthorityId as AuraId, AuraApi}; use sp_runtime::traits::Header as HeaderT; use std::sync::Arc; -pub enum BuildOnAccess { - Uninitialized(Option R + Send + Sync>>), - Initialized(R), -} - -impl BuildOnAccess { - fn get_mut(&mut self) -> &mut R { - loop { - match self { - Self::Uninitialized(f) => { - *self = Self::Initialized((f.take().unwrap())()); - }, - Self::Initialized(ref mut r) => return r, - } - } - } -} - -pub struct WaitForAuraConsensus { - pub client: Arc, - pub aura_consensus: Arc>>>>, - pub relay_chain_consensus: Arc>>>, -} - -impl Clone for WaitForAuraConsensus { - fn clone(&self) -> Self { - Self { - client: self.client.clone(), - aura_consensus: self.aura_consensus.clone(), - relay_chain_consensus: self.relay_chain_consensus.clone(), - } - } -} - -#[async_trait::async_trait] -impl ParachainConsensus for WaitForAuraConsensus -where - Client: sp_api::ProvideRuntimeApi + Send + Sync, - Client::Api: AuraApi, -{ - async fn produce_candidate( - &mut self, - parent: &Header, - relay_parent: PHash, - validation_data: &PersistedValidationData, - ) -> Option> { - let block_id = parent.hash(); - if self - .client - .runtime_api() - .has_api::>(block_id) - .unwrap_or(false) - { - self.aura_consensus - .lock() - .await - .get_mut() - .produce_candidate(parent, relay_parent, validation_data) - .await - } else { - self.relay_chain_consensus - .lock() - .await - .produce_candidate(parent, relay_parent, validation_data) - .await - } - } -} - pub struct Verifier { pub client: Arc, - pub aura_verifier: BuildOnAccess>>, + pub aura_verifier: Box>, pub relay_chain_verifier: Box>, } @@ -103,7 +31,7 @@ where .has_api::>(block_hash) .unwrap_or(false) { - self.aura_verifier.get_mut().verify(block_import).await + self.aura_verifier.verify(block_import).await } else { self.relay_chain_verifier.verify(block_import).await } From 3bc07f5ac1a5dda6b5742c1a55eb2fb0a255bba1 Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 14:51:50 +0200 Subject: [PATCH 24/98] Temp checkin, looks compile success --- Cargo.lock | 176 +- Cargo.toml | 3 +- node/src/rpc.rs | 17 +- node/src/rpc/tracing.rs | 2 +- pallets/address-unification/Cargo.toml | 2 +- precompiles/assets-erc20/Cargo.toml | 7 +- precompiles/assets-erc20/src/lib.rs | 68 +- precompiles/assets-erc20/src/mock.rs | 2 +- precompiles/assets-erc20/src/tests.rs | 29 +- precompiles/assets-factory/Cargo.toml | 7 +- precompiles/assets-factory/src/mock.rs | 3 +- precompiles/assets-factory/src/tests.rs | 1 + precompiles/balances-erc20/Cargo.toml | 10 +- precompiles/balances-erc20/src/lib.rs | 1 + precompiles/batch/Cargo.toml | 8 +- precompiles/batch/src/mock.rs | 3 +- precompiles/batch/src/tests.rs | 1 + precompiles/parachain-staking/Cargo.toml | 8 +- precompiles/parachain-staking/src/mock.rs | 2 +- precompiles/parachain-staking/src/tests.rs | 3 +- precompiles/peaq-did/Cargo.toml | 5 +- precompiles/peaq-rbac/Cargo.toml | 5 +- precompiles/peaq-storage/Cargo.toml | 5 +- precompiles/utils/Cargo.toml | 7 +- precompiles/utils/macro/Cargo.toml | 31 - .../utils/macro/docs/precompile_macro.md | 199 --- precompiles/utils/macro/src/derive_codec.rs | 120 -- .../macro/src/generate_function_selector.rs | 80 - precompiles/utils/macro/src/lib.rs | 73 - .../utils/macro/src/precompile/attr.rs | 128 -- .../utils/macro/src/precompile/expand.rs | 504 ------ precompiles/utils/macro/src/precompile/mod.rs | 134 -- .../utils/macro/src/precompile/parse.rs | 614 ------- .../macro/src/precompile_name_from_address.rs | 128 -- .../compile-fail/derive_codec/empty_struct.rs | 28 - .../derive_codec/empty_struct.stderr | 17 - .../tests/compile-fail/derive_codec/enum.rs | 26 - .../compile-fail/derive_codec/enum.stderr | 5 - .../precompile/codec/arg-dont-impl-codec.rs | 31 - .../codec/arg-dont-impl-codec.stderr | 61 - .../precompile/codec/no-output.rs | 29 - .../precompile/codec/no-output.stderr | 5 - .../codec/output-dont-impl-codec.rs | 31 - .../codec/output-dont-impl-codec.stderr | 21 - .../precompile/codec/output-not-result.rs | 30 - .../precompile/codec/output-not-result.stderr | 7 - .../codec/output-wrong-error-result.rs | 30 - .../codec/output-wrong-error-result.stderr | 13 - .../discriminant/dont-return-option.rs | 35 - .../discriminant/dont-return-option.stderr | 5 - .../precompile/discriminant/missing-fn.rs | 30 - .../precompile/discriminant/missing-fn.stderr | 7 - .../precompile/discriminant/missing-param.rs | 35 - .../discriminant/missing-param.stderr | 5 - .../discriminant/return-incomplete-option.rs | 35 - .../return-incomplete-option.stderr | 5 - .../discriminant/too-many-arguments.rs | 35 - .../discriminant/too-many-arguments.stderr | 5 - .../discriminant/type-mismatch-1.rs | 35 - .../discriminant/type-mismatch-1.stderr | 5 - .../discriminant/type-mismatch-2.rs | 35 - .../discriminant/type-mismatch-2.stderr | 5 - .../fn-modifiers/discriminant-multiple.rs | 31 - .../fn-modifiers/discriminant-multiple.stderr | 5 - .../fn-modifiers/multiple-modifiers.rs | 31 - .../fn-modifiers/multiple-modifiers.stderr | 5 - .../fn-modifiers/pre-check-multiple.rs | 30 - .../fn-modifiers/pre-check-multiple.stderr | 5 - .../compile-fail/precompile/handle/missing.rs | 29 - .../precompile/handle/missing.stderr | 5 - .../precompile/handle/set-missing.rs | 30 - .../precompile/handle/set-missing.stderr | 5 - .../precompile/handle/set-wrong-type.rs | 30 - .../precompile/handle/set-wrong-type.stderr | 5 - .../precompile/handle/wrong-type.rs | 29 - .../precompile/handle/wrong-type.stderr | 5 - .../precompile/pre-check/no-parameter.rs | 34 - .../precompile/pre-check/no-parameter.stderr | 5 - .../pre-check/too-many-parameters.rs | 34 - .../pre-check/too-many-parameters.stderr | 5 - .../precompile/pre-check/wrong-parameter.rs | 34 - .../pre-check/wrong-parameter.stderr | 5 - .../precompile/test-gen/generic-arg.rs | 29 - .../precompile/test-gen/generic-arg.stderr | 11 - .../compile-fail/precompile_name/not_tuple.rs | 22 - .../precompile_name/not_tuple.stderr | 5 - .../macro/tests/expand/precompile.expanded.rs | 383 ----- .../utils/macro/tests/expand/precompile.rs | 82 - .../tests/expand/precompile_name.expanded.rs | 37 - .../macro/tests/expand/precompile_name.rs | 28 - .../tests/expand/precompileset.expanded.rs | 1426 ----------------- .../utils/macro/tests/expand/precompileset.rs | 270 ---- .../tests/expand/returns_tuple.expanded.rs | 128 -- .../utils/macro/tests/expand/returns_tuple.rs | 33 - .../utils/macro/tests/pass/derive_codec.rs | 79 - .../tests/pass/precompile_fn_modifiers.rs | 89 - precompiles/utils/macro/tests/tests.rs | 50 - precompiles/utils/src/account.rs | 406 +++++ precompiles/utils/src/evm/costs.rs | 107 -- precompiles/utils/src/evm/handle.rs | 222 --- precompiles/utils/src/evm/logs.rs | 164 -- precompiles/utils/src/evm/mod.rs | 19 - precompiles/utils/src/lib.rs | 69 +- precompiles/utils/src/precompile_set.rs | 1117 ------------- precompiles/utils/src/solidity/codec/bytes.rs | 200 --- precompiles/utils/src/solidity/codec/mod.rs | 349 ---- .../utils/src/solidity/codec/native.rs | 381 ----- precompiles/utils/src/solidity/codec/xcm.rs | 359 ----- precompiles/utils/src/solidity/mod.rs | 26 - precompiles/utils/src/solidity/modifier.rs | 51 - precompiles/utils/src/solidity/revert.rs | 379 ----- precompiles/utils/src/substrate.rs | 152 -- precompiles/utils/src/testing/execution.rs | 238 --- precompiles/utils/src/testing/handle.rs | 216 --- precompiles/utils/src/testing/mod.rs | 99 -- precompiles/utils/src/testing/modifier.rs | 102 -- precompiles/utils/src/testing/solidity.rs | 354 ---- precompiles/utils/src/tests.rs | 1022 ------------ precompiles/vesting/Cargo.toml | 7 +- precompiles/vesting/src/mock.rs | 3 +- precompiles/vesting/src/tests.rs | 1 + precompiles/xcm-utils/Cargo.toml | 14 +- precompiles/xcm-utils/src/lib.rs | 1 + precompiles/xcm-utils/src/mock.rs | 3 +- precompiles/xcm-utils/src/tests.rs | 1 + precompiles/xtokens/Cargo.toml | 12 +- precompiles/xtokens/src/lib.rs | 1 + precompiles/xtokens/src/mock.rs | 3 +- precompiles/xtokens/src/tests.rs | 1 + runtime/krest/Cargo.toml | 2 +- runtime/peaq-dev/Cargo.toml | 2 +- runtime/peaq/Cargo.toml | 2 +- 132 files changed, 625 insertions(+), 11491 deletions(-) delete mode 100644 precompiles/utils/macro/Cargo.toml delete mode 100644 precompiles/utils/macro/docs/precompile_macro.md delete mode 100644 precompiles/utils/macro/src/derive_codec.rs delete mode 100644 precompiles/utils/macro/src/generate_function_selector.rs delete mode 100644 precompiles/utils/macro/src/lib.rs delete mode 100644 precompiles/utils/macro/src/precompile/attr.rs delete mode 100644 precompiles/utils/macro/src/precompile/expand.rs delete mode 100644 precompiles/utils/macro/src/precompile/mod.rs delete mode 100644 precompiles/utils/macro/src/precompile/parse.rs delete mode 100644 precompiles/utils/macro/src/precompile_name_from_address.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/derive_codec/enum.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/derive_codec/enum.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.stderr delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.rs delete mode 100644 precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.stderr delete mode 100644 precompiles/utils/macro/tests/expand/precompile.expanded.rs delete mode 100644 precompiles/utils/macro/tests/expand/precompile.rs delete mode 100644 precompiles/utils/macro/tests/expand/precompile_name.expanded.rs delete mode 100644 precompiles/utils/macro/tests/expand/precompile_name.rs delete mode 100644 precompiles/utils/macro/tests/expand/precompileset.expanded.rs delete mode 100644 precompiles/utils/macro/tests/expand/precompileset.rs delete mode 100644 precompiles/utils/macro/tests/expand/returns_tuple.expanded.rs delete mode 100644 precompiles/utils/macro/tests/expand/returns_tuple.rs delete mode 100644 precompiles/utils/macro/tests/pass/derive_codec.rs delete mode 100644 precompiles/utils/macro/tests/pass/precompile_fn_modifiers.rs delete mode 100644 precompiles/utils/macro/tests/tests.rs create mode 100644 precompiles/utils/src/account.rs delete mode 100644 precompiles/utils/src/evm/costs.rs delete mode 100644 precompiles/utils/src/evm/handle.rs delete mode 100644 precompiles/utils/src/evm/logs.rs delete mode 100644 precompiles/utils/src/evm/mod.rs delete mode 100644 precompiles/utils/src/precompile_set.rs delete mode 100644 precompiles/utils/src/solidity/codec/bytes.rs delete mode 100644 precompiles/utils/src/solidity/codec/mod.rs delete mode 100644 precompiles/utils/src/solidity/codec/native.rs delete mode 100644 precompiles/utils/src/solidity/codec/xcm.rs delete mode 100644 precompiles/utils/src/solidity/mod.rs delete mode 100644 precompiles/utils/src/solidity/modifier.rs delete mode 100644 precompiles/utils/src/solidity/revert.rs delete mode 100644 precompiles/utils/src/substrate.rs delete mode 100644 precompiles/utils/src/testing/execution.rs delete mode 100644 precompiles/utils/src/testing/handle.rs delete mode 100644 precompiles/utils/src/testing/mod.rs delete mode 100644 precompiles/utils/src/testing/modifier.rs delete mode 100644 precompiles/utils/src/testing/solidity.rs delete mode 100644 precompiles/utils/src/tests.rs diff --git a/Cargo.lock b/Cargo.lock index 89d47ad7e..401324c0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1595,7 +1595,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ "serde", "termcolor", - "unicode-width 0.2.0", + "unicode-width 0.1.14", ] [[package]] @@ -2898,12 +2898,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "digest" version = "0.8.1" @@ -3230,19 +3224,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.10.2" @@ -3704,7 +3685,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger 0.10.2", + "env_logger", "log", ] @@ -3754,12 +3735,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flume" version = "0.10.14" @@ -5001,7 +4976,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -6749,23 +6724,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "macrotest" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0597a8d49ceeea5845b12d1970aa993261e68d4660b327eabab667b3e7ffd60" -dependencies = [ - "diff", - "fastrand 2.3.0", - "glob", - "prettyplease", - "serde", - "serde_derive", - "serde_json", - "syn 2.0.101", - "toml_edit", -] - [[package]] name = "matchers" version = "0.1.0" @@ -7443,7 +7401,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "syn 2.0.101", @@ -7554,7 +7512,7 @@ dependencies = [ "expander", "indexmap 2.9.0", "itertools 0.11.0", - "petgraph 0.6.5", + "petgraph", "proc-macro-crate 3.3.0", "proc-macro2", "quote", @@ -8210,7 +8168,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-assets-erc20" -version = "0.5.2" +version = "0.5.3" dependencies = [ "derive_more 0.99.20", "fp-evm", @@ -8221,6 +8179,7 @@ dependencies = [ "pallet-evm", "pallet-timestamp", "parity-scale-codec", + "peaq-precompile-utils", "peaq-primitives-xcm", "precompile-utils", "scale-info", @@ -8234,7 +8193,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-assets-factory" -version = "0.0.1" +version = "0.0.2" dependencies = [ "derive_more 0.99.20", "fp-evm", @@ -8246,6 +8205,7 @@ dependencies = [ "pallet-evm-precompile-assets-erc20", "pallet-timestamp", "parity-scale-codec", + "peaq-precompile-utils", "peaq-primitives-xcm", "precompile-utils", "scale-info", @@ -8259,7 +8219,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-balances-erc20" -version = "0.1.0" +version = "0.1.1" dependencies = [ "derive_more 0.99.20", "fp-evm", @@ -8272,6 +8232,7 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "paste", + "peaq-precompile-utils", "precompile-utils", "scale-info", "serde", @@ -8284,7 +8245,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-batch" -version = "0.1.0" +version = "0.1.1" dependencies = [ "derive_more 0.99.20", "evm", @@ -8296,6 +8257,7 @@ dependencies = [ "pallet-evm", "pallet-timestamp", "parity-scale-codec", + "peaq-precompile-utils", "precompile-utils", "scale-info", "serde", @@ -8347,7 +8309,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-parachain-staking" -version = "0.0.1" +version = "0.0.2" dependencies = [ "address-unification", "derive_more 0.99.20", @@ -8362,6 +8324,7 @@ dependencies = [ "pallet-timestamp", "parachain-staking", "parity-scale-codec", + "peaq-precompile-utils", "peaq-primitives-xcm", "precompile-utils", "scale-info", @@ -8376,7 +8339,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-peaq-did" -version = "0.1.0" +version = "0.1.1" dependencies = [ "fp-evm", "frame-support", @@ -8394,7 +8357,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-peaq-rbac" -version = "0.1.0" +version = "0.1.1" dependencies = [ "fp-evm", "frame-support", @@ -8412,7 +8375,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-peaq-storage" -version = "0.1.0" +version = "0.1.1" dependencies = [ "fp-evm", "frame-support", @@ -8448,7 +8411,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-vesting" -version = "0.1.0" +version = "0.1.1" dependencies = [ "derive_more 0.99.20", "fp-evm", @@ -8459,6 +8422,7 @@ dependencies = [ "pallet-timestamp", "pallet-vesting", "parity-scale-codec", + "peaq-precompile-utils", "peaq-primitives-xcm", "precompile-utils", "scale-info", @@ -8472,11 +8436,11 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-xcm-utils" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cumulus-primitives-core", "derive_more 0.99.20", - "env_logger 0.9.3", + "env_logger", "fp-evm", "frame-support", "frame-system", @@ -8486,6 +8450,7 @@ dependencies = [ "pallet-timestamp", "pallet-xcm", "parity-scale-codec", + "peaq-precompile-utils", "polkadot-parachain-primitives", "precompile-utils", "scale-info", @@ -8503,7 +8468,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-xtokens" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cumulus-primitives-core", "derive_more 0.99.20", @@ -8520,6 +8485,7 @@ dependencies = [ "pallet-timestamp", "pallet-xcm", "parity-scale-codec", + "peaq-precompile-utils", "peaq-primitives-xcm", "precompile-utils", "scale-info", @@ -10050,6 +10016,32 @@ dependencies = [ "sp-std", ] +[[package]] +name = "peaq-precompile-utils" +version = "0.1.2" +dependencies = [ + "derive_more 0.99.20", + "environmental", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "hex-literal 0.3.4", + "impl-trait-for-tuples", + "pallet-evm", + "parity-scale-codec", + "peaq-primitives-xcm", + "scale-info", + "serde", + "similar-asserts", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", +] + [[package]] name = "peaq-primitives-ext" version = "0.1.0" @@ -10417,17 +10409,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.9.0", -] - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", "indexmap 2.9.0", ] @@ -11742,19 +11724,22 @@ dependencies = [ [[package]] name = "precompile-utils" -version = "0.1.1" +version = "0.1.0" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ - "derive_more 0.99.20", + "derive_more 1.0.0", "environmental", "evm", "fp-evm", "frame-support", "frame-system", - "hex-literal 0.3.4", + "hex", + "hex-literal 0.4.1", "impl-trait-for-tuples", + "log", + "num_enum 0.7.3", "pallet-evm", "parity-scale-codec", - "peaq-primitives-xcm", "precompile-utils-macro", "scale-info", "serde", @@ -11762,28 +11747,22 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", "sp-weights", "staging-xcm", ] [[package]] name = "precompile-utils-macro" -version = "0.1.1" +version = "0.1.0" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" dependencies = [ "case", - "fp-evm", - "frame-support", - "macrotest", - "num_enum 0.5.11", - "precompile-utils", + "num_enum 0.7.3", + "prettyplease", "proc-macro2", "quote", - "sha3", - "sp-core", - "sp-std", - "syn 1.0.109", - "trybuild", + "sp-crypto-hashing 0.1.0 (git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4)", + "syn 2.0.101", ] [[package]] @@ -12017,12 +11996,12 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "itertools 0.14.0", "log", "multimap", "once_cell", - "petgraph 0.7.1", + "petgraph", "prettyplease", "prost 0.13.5", "prost-types", @@ -16520,12 +16499,6 @@ version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" -[[package]] -name = "target-triple" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" - [[package]] name = "tempfile" version = "3.20.0" @@ -17042,21 +17015,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "trybuild" -version = "1.0.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9bf9513a2f4aeef5fdac8677d7d349c79fdbcc03b9c86da6e9d254f1e43be2" -dependencies = [ - "glob", - "serde", - "serde_derive", - "serde_json", - "target-triple", - "termcolor", - "toml 0.8.22", -] - [[package]] name = "tt-call" version = "1.0.9" diff --git a/Cargo.toml b/Cargo.toml index f9d602442..b8e489575 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,6 @@ members = [ "runtime/*", "primitives/xcm", "precompiles/utils", - "precompiles/utils/macro", "precompiles/peaq-did", "precompiles/peaq-storage", "precompiles/assets-erc20", @@ -126,6 +125,8 @@ pallet-evm-precompile-dispatch = { git = "https://github.com/peaqnetwork/frontie pallet-evm-precompile-modexp = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } pallet-evm-precompile-sha3fips = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } pallet-evm-precompile-simple = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +precompile-utils = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } +precompile-utils-macro = { git = "https://github.com/peaqnetwork/frontier", branch = "peaq-polkadot-stable2503-4", default-features = false } # Open-Runtime-Module-Library orml-currencies = { git = "https://github.com/peaqnetwork/open-runtime-module-library", branch = "peaq-polkadot-stable2503-4", default-features = false } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 0b8bfe985..f1f3d4f98 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -136,7 +136,7 @@ where C::Api: peaq_rpc_primitives_txpool::TxPoolRuntimeApi, C::Api: peaq_pallet_storage_rpc::PeaqStorageRuntimeApi, C::Api: zenlink_protocol_runtime_api::ZenlinkProtocolApi, - P: TransactionPool + 'static, + P: TransactionPool::Hash> + 'static, BE::Blockchain: BlockchainBackend, { @@ -159,7 +159,6 @@ where client, pool, graph, - deny_unsafe, is_authority, network, sync, @@ -177,7 +176,7 @@ where forced_parent_hashes, } = deps; - io.merge(System::new(Arc::clone(&client), Arc::clone(&pool), deny_unsafe).into_rpc())?; + io.merge(System::new(Arc::clone(&client), Arc::clone(&pool)).into_rpc())?; io.merge(TransactionPayment::new(Arc::clone(&client)).into_rpc())?; enum Never {} @@ -227,7 +226,7 @@ where Box::new(fc_rpc::pending::AuraConsensusDataProvider::new(client.clone())); io.merge( - Eth::<_, _, _, _, _, _, _, PeaqEthConfig<_, _>>::new( + Eth::<_, _, _, _, _, _, PeaqEthConfig<_, _>>::new( Arc::clone(&client), Arc::clone(&pool), graph.clone(), @@ -279,10 +278,11 @@ where > = Default::default(); let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); - io.merge(PeaqStorage::new(Arc::clone(&client)).into_rpc())?; - io.merge(PeaqDID::new(Arc::clone(&client)).into_rpc())?; - io.merge(PeaqRBAC::new(Arc::clone(&client)).into_rpc())?; - io.merge(ZenlinkProtocol::new(Arc::clone(&client)).into_rpc())?; + // [TODO] + // io.merge(PeaqStorage::new(Arc::clone(&client)).into_rpc())?; + // io.merge(PeaqDID::new(Arc::clone(&client)).into_rpc())?; + // io.merge(PeaqRBAC::new(Arc::clone(&client)).into_rpc())?; + // io.merge(ZenlinkProtocol::new(Arc::clone(&client)).into_rpc())?; io.merge(Web3::new(Arc::clone(&client)).into_rpc())?; io.merge( EthPubSub::new( @@ -296,6 +296,7 @@ where .into_rpc(), )?; if ethapi_cmd.contains(&EthApiCmd::Txpool) { + #[cfg(feature = "txpool")] io.merge(TxPool::new(Arc::clone(&client), graph).into_rpc())?; } diff --git a/node/src/rpc/tracing.rs b/node/src/rpc/tracing.rs index 53451ffa0..700942efd 100644 --- a/node/src/rpc/tracing.rs +++ b/node/src/rpc/tracing.rs @@ -76,7 +76,7 @@ where Arc::clone(¶ms.client), Arc::clone(¶ms.substrate_backend), match params.frontier_backend.as_ref() { - fc_db::Backend::KeyValue(b) => Arc::new(b.clone()), + fc_db::Backend::KeyValue(b) => b.clone(), }, Arc::clone(&permit_pool), Arc::clone(¶ms.overrides), diff --git a/pallets/address-unification/Cargo.toml b/pallets/address-unification/Cargo.toml index 5506b80fb..a11aaafb3 100644 --- a/pallets/address-unification/Cargo.toml +++ b/pallets/address-unification/Cargo.toml @@ -21,7 +21,7 @@ orml-traits = { workspace = true, default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } # module-support = { path = "../support", default-features = false } -precompile-utils = { path = "../../precompiles/utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } pallet-evm = { workspace = true, default-features = false } [dev-dependencies] diff --git a/precompiles/assets-erc20/Cargo.toml b/precompiles/assets-erc20/Cargo.toml index 609d4cef2..a7051048c 100644 --- a/precompiles/assets-erc20/Cargo.toml +++ b/precompiles/assets-erc20/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "pallet-evm-precompile-assets-erc20" description = "A Precompile to expose a Assets pallet through an ERC20-compliant interface." -version = "0.5.2" +version = "0.5.3" edition = "2021" authors = [ "Astar" ] [dependencies] -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } # Substrate @@ -29,7 +29,8 @@ derive_more = { workspace = true } serde = { workspace = true } sha3 = { workspace = true } -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } scale-info = { workspace = true } diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index 6263b9016..b9b31cc50 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -50,9 +50,8 @@ use frame_support::{ use pallet_evm::AddressMapping; use peaq_primitives_xcm::EVMAddressToAssetId; use precompile_utils::{ - evm::logs::LogsBuilder, prelude::{ - Address, DiscriminantResult, InjectBacktrace, LogExt, MayRevert, PrecompileHandleExt, + log3, Address, DiscriminantResult, InjectBacktrace, LogExt, MayRevert, PrecompileHandleExt, RevertReason, RuntimeHelper, UnboundedBytes, }, solidity, @@ -278,14 +277,14 @@ where )?; } - LogsBuilder::new(handle.context().address) - .log3( - SELECTOR_LOG_APPROVAL, - handle.context().caller, - spender, - solidity::encode_event_data(value), - ) - .record(handle)?; + log3( + handle.context().address, + SELECTOR_LOG_APPROVAL, + handle.context().caller, + spender, + solidity::encode_event_data(value), + ) + .record(handle)?; Ok(true) } @@ -320,14 +319,14 @@ where )?; } - LogsBuilder::new(handle.context().address) - .log3( - SELECTOR_LOG_TRANSFER, - handle.context().caller, - to, - solidity::encode_event_data(value), - ) - .record(handle)?; + log3( + handle.context().address, + SELECTOR_LOG_TRANSFER, + handle.context().caller, + to, + solidity::encode_event_data(value), + ) + .record(handle)?; Ok(true) } @@ -382,9 +381,14 @@ where } } - LogsBuilder::new(handle.context().address) - .log3(SELECTOR_LOG_TRANSFER, from, to, solidity::encode_event_data(value)) - .record(handle)?; + log3( + handle.context().address, + SELECTOR_LOG_TRANSFER, + from, + to, + solidity::encode_event_data(value), + ) + .record(handle)?; // Build output. Ok(true) @@ -466,9 +470,14 @@ where 0, )?; - LogsBuilder::new(handle.context().address) - .log3(SELECTOR_LOG_TRANSFER, H160::default(), addr, solidity::encode_event_data(amount)) - .record(handle)?; + log3( + handle.context().address, + SELECTOR_LOG_TRANSFER, + H160::default(), + addr, + solidity::encode_event_data(amount), + ) + .record(handle)?; Ok(true) } @@ -500,9 +509,14 @@ where 0, )?; - LogsBuilder::new(handle.context().address) - .log3(SELECTOR_LOG_TRANSFER, addr, H160::default(), solidity::encode_event_data(amount)) - .record(handle)?; + log3( + handle.context().address, + SELECTOR_LOG_TRANSFER, + addr, + H160::default(), + solidity::encode_event_data(amount), + ) + .record(handle)?; Ok(true) } diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 99d4381d3..1c3d5888e 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -42,7 +42,7 @@ use frame_support::{ traits::{AsEnsureOriginWithArg, Everything}, weights::Weight, }; -use precompile_utils::testing::*; +use peaq_precompile_utils::*; use frame_system::EnsureRoot; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot}; diff --git a/precompiles/assets-erc20/src/tests.rs b/precompiles/assets-erc20/src/tests.rs index 08d966b54..4e5011a5f 100644 --- a/precompiles/assets-erc20/src/tests.rs +++ b/precompiles/assets-erc20/src/tests.rs @@ -39,7 +39,9 @@ use std::str::from_utf8; use crate::{mock::*, *}; +use peaq_precompile_utils::*; use precompile_utils::testing::*; + // use precompile_utils::{prelude::LogsBuilder, testing::*, EvmDataWriter}; use sha3::{Digest, Keccak256}; @@ -282,7 +284,8 @@ fn approve() { value: U256::from(500), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_APPROVAL, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -323,7 +326,8 @@ fn approve_saturating() { value: U256::MAX, }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_APPROVAL, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -454,7 +458,8 @@ fn transfer() { value: U256::from(400), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_TRANSFER, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -576,7 +581,8 @@ fn transfer_from() { value: U256::from(400), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_TRANSFER, MockPeaqAccount::Alice, MockPeaqAccount::Charlie, @@ -647,7 +653,8 @@ fn transfer_from_non_incremental_approval() { value: U256::from(500), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_APPROVAL, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -668,7 +675,8 @@ fn transfer_from_non_incremental_approval() { value: U256::from(300), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_APPROVAL, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -777,7 +785,8 @@ fn transfer_from_self() { value: U256::from(400), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_TRANSFER, MockPeaqAccount::Alice, MockPeaqAccount::Bob, @@ -913,7 +922,8 @@ fn mint_is_ok() { amount: U256::from(mint_amount), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(asset_id).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(asset_id), SELECTOR_LOG_TRANSFER, H160::zero(), MockPeaqAccount::Bob, @@ -985,7 +995,8 @@ fn burn_is_ok() { amount: U256::from(burn_amount), }, ) - .expect_log(LogsBuilder::new(MockPeaqAccount::AssetId(0u128.into()).into()).log3( + .expect_log(log3( + MockPeaqAccount::AssetId(0u128.into()), SELECTOR_LOG_TRANSFER, MockPeaqAccount::Bob, H160::zero(), diff --git a/precompiles/assets-factory/Cargo.toml b/precompiles/assets-factory/Cargo.toml index 1e79ae16e..62d168a3b 100644 --- a/precompiles/assets-factory/Cargo.toml +++ b/precompiles/assets-factory/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "pallet-evm-precompile-assets-factory" description = "A Precompile to expose a Assets factory" -version = "0.0.1" +version = "0.0.2" edition = "2021" authors = [ "Peaq" ] [dependencies] -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } pallet-evm-precompile-assets-erc20 = { path = "../assets-erc20", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } @@ -30,7 +30,8 @@ derive_more = { workspace = true } serde = { workspace = true } sha3 = { workspace = true } -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } scale-info = { workspace = true } diff --git a/precompiles/assets-factory/src/mock.rs b/precompiles/assets-factory/src/mock.rs index d1dda71eb..fd157d89d 100644 --- a/precompiles/assets-factory/src/mock.rs +++ b/precompiles/assets-factory/src/mock.rs @@ -42,7 +42,8 @@ use frame_support::{ traits::{AsEnsureOriginWithArg, Everything}, weights::Weight, }; -use precompile_utils::{precompile_set::*, testing::*}; +use peaq_precompile_utils::*; +use precompile_utils::precompile_set::*; use sp_runtime::BuildStorage; use frame_system::EnsureRoot; diff --git a/precompiles/assets-factory/src/tests.rs b/precompiles/assets-factory/src/tests.rs index bcf01a7bb..337d56c16 100644 --- a/precompiles/assets-factory/src/tests.rs +++ b/precompiles/assets-factory/src/tests.rs @@ -36,6 +36,7 @@ use crate::{mock::*, *}; +use peaq_precompile_utils::*; use precompile_utils::testing::*; fn precompiles() -> Precompiles { diff --git a/precompiles/balances-erc20/Cargo.toml b/precompiles/balances-erc20/Cargo.toml index 95cf4aefa..7e091b0d5 100644 --- a/precompiles/balances-erc20/Cargo.toml +++ b/precompiles/balances-erc20/Cargo.toml @@ -3,13 +3,13 @@ name = "pallet-evm-precompile-balances-erc20" authors = [ "peaq" ] description = "A Precompile to expose a Balances pallet through an ERC20-compliant interface." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] paste = { workspace = true, default-features = false } -#peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } +peaq-precompile-utils = { path = "../utils", default-features = false } # Substrate frame-support = { workspace = true } @@ -34,7 +34,8 @@ serde = { workspace = true } sha3 = { workspace = true } # peaq -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } scale-info = { workspace = true, features = [ "derive" ] } @@ -50,6 +51,7 @@ std = [ "pallet-evm/std", "parity-scale-codec/std", "precompile-utils/std", + "peaq-precompile-utils/std", "sp-core/std", "sp-io/std", "sp-std/std", diff --git a/precompiles/balances-erc20/src/lib.rs b/precompiles/balances-erc20/src/lib.rs index 362552576..4ea26287b 100644 --- a/precompiles/balances-erc20/src/lib.rs +++ b/precompiles/balances-erc20/src/lib.rs @@ -31,6 +31,7 @@ use pallet_balances::pallet::{ Instance2, Instance3, Instance4, Instance5, Instance6, Instance7, Instance8, Instance9, }; use pallet_evm::AddressMapping; +use peaq_precompile_utils::SYSTEM_ACCOUNT_SIZE; use precompile_utils::prelude::*; use sp_core::{Decode, H160, H256, U256}; use sp_std::{ diff --git a/precompiles/batch/Cargo.toml b/precompiles/batch/Cargo.toml index fd9fc9df9..fe6803653 100644 --- a/precompiles/batch/Cargo.toml +++ b/precompiles/batch/Cargo.toml @@ -3,11 +3,10 @@ name = "pallet-evm-precompile-batch" authors = [ "peaq" ] description = "A Precompile to batch multiple calls." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false, features = [ "codec-xcm" ] } +precompile-utils = { workspace = true, default-features = false, features = [ "codec-xcm" ] } # Substrate frame-support = { workspace = true, default-features = false } @@ -31,7 +30,8 @@ sha3 = { workspace = true } pallet-balances = { workspace = true, features = [ "std", "insecure_zero_ed" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } parity-scale-codec = { workspace = true, features = [ "max-encoded-len", "std" ] } -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } scale-info = { workspace = true, features = [ "derive", "std" ] } sp-runtime = { workspace = true, features = [ "std" ] } diff --git a/precompiles/batch/src/mock.rs b/precompiles/batch/src/mock.rs index 77dece541..bb223d5c1 100644 --- a/precompiles/batch/src/mock.rs +++ b/precompiles/batch/src/mock.rs @@ -19,7 +19,8 @@ use super::*; use frame_support::{construct_runtime, parameter_types, traits::Everything, weights::Weight}; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot}; -use precompile_utils::{precompile_set::*, testing::*}; +use peaq_precompile_utils::*; +use precompile_utils::precompile_set::*; use sp_core::H256; use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, diff --git a/precompiles/batch/src/tests.rs b/precompiles/batch/src/tests.rs index e471a438d..52ccc76be 100644 --- a/precompiles/batch/src/tests.rs +++ b/precompiles/batch/src/tests.rs @@ -25,6 +25,7 @@ use crate::{ use fp_evm::ExitError; use frame_support::assert_ok; use pallet_evm::Call as EvmCall; +use peaq_precompile_utils::*; use precompile_utils::{ evm::costs::call_cost, prelude::*, solidity::revert::revert_as_bytes, testing::*, }; diff --git a/precompiles/parachain-staking/Cargo.toml b/precompiles/parachain-staking/Cargo.toml index e607cb35c..eea0c3a58 100644 --- a/precompiles/parachain-staking/Cargo.toml +++ b/precompiles/parachain-staking/Cargo.toml @@ -1,13 +1,12 @@ [package] name = "pallet-evm-precompile-parachain-staking" description = "A Precompile to expose a parachain's staking functionality to the EVM." -version = "0.0.1" +version = "0.0.2" edition = "2021" authors = [ "Peaq" ] [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } parachain-staking = { path = "../../pallets/parachain-staking", default-features = false } address-unification = { path = "../../pallets/address-unification", default-features = false } pallet-session = { workspace = true, default-features = false } @@ -33,7 +32,8 @@ peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false derive_more = { workspace = true } serde = { workspace = true } sha3 = { workspace = true } -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } scale-info = { workspace = true } pallet-authorship = { workspace = true, default-features = false } diff --git a/precompiles/parachain-staking/src/mock.rs b/precompiles/parachain-staking/src/mock.rs index babe3aac5..e96aac6fb 100644 --- a/precompiles/parachain-staking/src/mock.rs +++ b/precompiles/parachain-staking/src/mock.rs @@ -40,7 +40,7 @@ use sp_std::fmt::Debug; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot}; use parachain_staking::*; -use precompile_utils::testing::MockPeaqAccount; +use peaq_precompile_utils::*; use precompile_utils::precompile_set::{AddressU64, PrecompileAt, PrecompileSetBuilder}; diff --git a/precompiles/parachain-staking/src/tests.rs b/precompiles/parachain-staking/src/tests.rs index 667e19a41..c382aa295 100644 --- a/precompiles/parachain-staking/src/tests.rs +++ b/precompiles/parachain-staking/src/tests.rs @@ -28,7 +28,8 @@ use frame_support::{ }; use pallet_balances::{BalanceLock, Reasons}; use parachain_staking::types::TotalStake; -use precompile_utils::testing::{MockPeaqAccount, PrecompileTesterExt, PrecompilesModifierTester}; +use peaq_precompile_utils::*; +use precompile_utils::testing::{PrecompileTesterExt, PrecompilesModifierTester}; use sp_core::H256; const STAKING_ID: LockIdentifier = *b"peaqstak"; diff --git a/precompiles/peaq-did/Cargo.toml b/precompiles/peaq-did/Cargo.toml index 6bfff3ef4..dff037c0a 100644 --- a/precompiles/peaq-did/Cargo.toml +++ b/precompiles/peaq-did/Cargo.toml @@ -3,11 +3,10 @@ name = "pallet-evm-precompile-peaq-did" authors = [ "Peaq" ] description = "A Precompile Module for Frontier EVM that implements the PEAQ DID standard." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } # Substrate parity-scale-codec = { workspace = true, default-features = false, features = [ "max-encoded-len" ]} diff --git a/precompiles/peaq-rbac/Cargo.toml b/precompiles/peaq-rbac/Cargo.toml index efd450020..6a422f168 100644 --- a/precompiles/peaq-rbac/Cargo.toml +++ b/precompiles/peaq-rbac/Cargo.toml @@ -3,11 +3,10 @@ name = "pallet-evm-precompile-peaq-rbac" authors = [ "Peaq" ] description = "A Precompile Module for Frontier EVM that implements the PEAQ RBAC standard." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } # Substrate diff --git a/precompiles/peaq-storage/Cargo.toml b/precompiles/peaq-storage/Cargo.toml index 8c45b3b26..e7b008564 100644 --- a/precompiles/peaq-storage/Cargo.toml +++ b/precompiles/peaq-storage/Cargo.toml @@ -3,11 +3,10 @@ name = "pallet-evm-precompile-peaq-storage" authors = [ "Peaq" ] description = "A Precompile Module for Frontier EVM that implements the PEAQ Storage standard." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } # Substrate parity-scale-codec = { workspace = true, default-features = false, features = [ "max-encoded-len" ]} diff --git a/precompiles/utils/Cargo.toml b/precompiles/utils/Cargo.toml index 109d0bc11..64a300f04 100644 --- a/precompiles/utils/Cargo.toml +++ b/precompiles/utils/Cargo.toml @@ -1,8 +1,8 @@ [package] -name = "precompile-utils" +name = "peaq-precompile-utils" description = "Utils to write EVM precompiles." edition = "2021" -version = "0.1.1" +version = "0.1.2" [dependencies] derive_more = { workspace = true, optional = true } @@ -13,9 +13,6 @@ scale-info = { workspace = true, optional = true, features = [ "derive" ] } serde = { workspace = true, optional = true } similar-asserts = { workspace = true, optional = true } -# Moonbeam -precompile-utils-macro = { path = "macro" } - # Substrate frame-support = { workspace = true } frame-system = { workspace = true } diff --git a/precompiles/utils/macro/Cargo.toml b/precompiles/utils/macro/Cargo.toml deleted file mode 100644 index ce7accf1a..000000000 --- a/precompiles/utils/macro/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "precompile-utils-macro" -description = "" -edition = "2021" -version = "0.1.1" - -[lib] -proc-macro = true - -[[test]] -name = "tests" -path = "tests/tests.rs" - -[dependencies] -case = "1.0" -num_enum = { version = "0.5.3", default-features = false } -proc-macro2 = "1.0" -quote = "1.0" -sha3 = "0.10" -syn = { version = "1.0", features = [ "extra-traits", "fold", "full", "visit" ] } - -[dev-dependencies] -macrotest = "1.0.9" -trybuild = "1.0" - -precompile-utils = { path = "../", features = [ "testing" ] } - -fp-evm = { workspace = true } -frame-support = { workspace = true } -sp-core = { workspace = true } -sp-std = { workspace = true } diff --git a/precompiles/utils/macro/docs/precompile_macro.md b/precompiles/utils/macro/docs/precompile_macro.md deleted file mode 100644 index c411142aa..000000000 --- a/precompiles/utils/macro/docs/precompile_macro.md +++ /dev/null @@ -1,199 +0,0 @@ -# `#[precompile]` procedural macro. - -This procedural macro allows to simplify the implementation of an EVM precompile or precompile set -using an `impl` block with annotations to automatically generate: - -- the implementation of the trait `Precompile` or `PrecompileSet` (exposed by the `fp_evm` crate) -- parsing of the method parameters from Solidity encoding into Rust type, based on the `solidity::Codec` - trait (exposed by the `precompile-utils` crate) -- a test to ensure the types expressed in the Solidity signature match the Rust types in the - implementation. - -## How to use - -Define your precompile type and write an `impl` block that will contain the precompile methods -implementation. This `impl` block can have type parameters and a `where` clause, which will be -reused to generate the `Precompile`/`PrecompileSet` trait implementation and the enum representing -each public function of precompile with its parsed arguments. - -```rust,ignore -pub struct ExamplePrecompile(PhantomData<(R,I)>); - -#[precompile_utils::precompile] -impl ExamplePrecompile -where - R: pallet_evm::Config -{ - #[precompile::public("example(uint32)")] - fn example(handle: &mut impl PrecompileHandle, arg: u32) -> EvmResult { - Ok(arg * 2) - } -} -``` - -The example code above will automatically generate an enum like - -```rust,ignore -#[allow(non_camel_case_types)] -pub enum ExamplePrecompileCall -where - R: pallet_evm::Config -{ - example { - arg: u32 - }, - // + an non constrible variant with a PhantomData<(R,I)> -} -``` - -This enum have the function `parse_call_data` that can parse the calldata, recognize the Solidity -4-bytes selector and parse the appropriate enum variant. - -It will also generate automatically an implementation of `Precompile`/`PrecompileSet` that calls -this function and the content of the variant to its associated function of the `impl` block. - -## Function attributes - -`#[precompile::public("signature")]` allows to declare a function as a public method of the -precompile with the provided Solidity signature. A function can have multiple `public` attributes to -support renamed functions with backward compatibility, however the arguments must have the same -type. It is not allowed to use the exact same signature multiple times. - -The function must take a `&mut impl PrecompileHandle` as parameter, followed by all the parameters -of the Solidity function in the same order. Those parameters types must implement `solidity::Codec`, and -their name should match the one used in the Solidity interface (.sol) while being in `snake_case`, -which will automatically be converted to `camelCase` in revert messages. The function must return an -`EvmResult`, which is an alias of `Result`. This `T` must implement the -`solidity::Codec` trait and must match the return type in the Solidity interface. The macro will -automatically encode it to Solidity format. - -By default those functions are considered non-payable and non-view (can cause state changes). This -can be changed using either `#[precompile::payable]` or `#[precompile::view]`. Only one can be used. - -It is also possible to declare a fallback function using `#[precompile::fallback]`. This function -will be called if the selector is unknown or if the input is less than 4-bytes long (no selector). -This function cannot have any parameter outside of the `PrecompileHandle`. A function can be both -`public` and `fallback`. - -In case some check must be performed before parsing the input, such as forbidding being called from -some address, a function can be annotated with `#[precompile::pre_check]`: - -```rust,ignore -#[precompile::pre_check] -fn pre_check(handle: &mut impl PrecompileHandle) -> EvmResult { - todo!("Perform your check here") -} -``` - -This function cannot have other attributes. - -## PrecompileSet - -By default the macro considers the `impl` block to represent a precompile and this will implement -the `Precompile` trait. If you want to instead implement a precompile set, you must add the -`#[precompile::precompile_set]` to the `impl` block. - -Then, it is necessary to have a function annotated with the `#[precompile::discriminant]` attribute. -This function is called with the **code address**, the address of the precompile. It must return -`None` if this address is not part of the precompile set, or `Some` if it is. The `Some` variants -contains a value of a type of your choice that represents which member of the set this address -corresponds to. For example for our XC20 precompile sets this function returns the asset id -corresponding to this address if it exists. - -Finally, every other function annotated with a `precompile::_` attribute must now take this -discriminant as first parameter, before the `PrecompileHandle`. - -```rust,ignore -pub struct ExamplePrecompileSet(PhantomData); - -#[precompile_utils::precompile] -#[precompile::precompile_set] -impl ExamplePrecompileSet -where - R: pallet_evm::Config -{ - #[precompile::discriminant] - fn discriminant(address: H160) -> Option { - // Replace with your discriminant logic. - Some(match address { - a if a == H160::from(42) => 1 - a if a == H160::from(43) => 2, - _ => return None, - }) - } - - #[precompile::public("example(uint32)")] - fn example(discriminant: u8, handle: &mut impl PrecompileHandle, arg: u32) -> EvmResult { - // Discriminant can be used here. - Ok(arg * discriminant) - } -} -``` - -## Solidity signatures test - -The macro will automatically generate a unit test to ensure that the types expressed in a `public` -attribute matches the Rust parameters of the function, thanks to the `solidity::Codec` trait having the -`solidity_type() -> String` function. - -If any **parsed** argument (discriminant is not concerned) depends on the type parameters of the -`impl` block, the macro will not be able to produce valid code and output an error like: - -```text -error[E0412]: cannot find type `R` in this scope - --> tests/precompile/compile-fail/test/generic-arg.rs:25:63 - | -23 | impl> Precompile { - | - help: you might be missing a type parameter: `` -24 | #[precompile::public("foo(bytes)")] -25 | fn foo(handle: &mut impl PrecompileHandle, arg: BoundedBytes) -> EvmResult { - | ^ not found in this scope -``` - -In this case you need to annotate the `impl` block with the `#[precompile::test_concrete_types(...)]` -attributes. The `...` should be replaced with concrete types for each type parameter, like a mock -runtime. Those types are only used to generate the test and only one set of types can be used. - -```rust,ignore -pub struct ExamplePrecompile(PhantomData<(R, I)>); - -pub struct GetMaxSize(PhantomData<(R, I)>); - -impl Get for GetMaxSize { - fn get() -> u32 { - >::SomeConstant::get() - } -} - -#[precompile_utils::precompile] -#[precompile::test_concrete_types(mock::Runtime, Instance1)] -impl ExamplePrecompile -where - R: pallet_evm::Config + SomeConfig -{ - #[precompile::public("example(bytes)")] - fn example( - handle: &mut impl PrecompileHandle, - data: BoundedBytes>, - ) -> EvmResult { - todo!("Method implementation") - } -} -``` - -## Enum functions - -The generated enums exposes the following public functions: - -- `parse_call_data`: take a `PrecompileHandle` and tries to parse the call data. Returns an - `EvmResult`. It **DOES NOT** execute the code of the annotated `impl` block. -- `supports_selector`: take a selector as a `u32` is returns if this selector is supported by the - precompile(set) as a `bool`. Note that the presence of a fallback function is not taken into - account. -- `selectors`: returns a static array (`&'static [u32]`) of all the supported selectors. -- For each variant/public function `foo`, there is a function `foo_selectors` which returns a static - array of all the supported selectors **for that function**. That can be used to ensure in tests - that some function have a selector that was computed by hand. -- `encode`: take `self` and encodes it in Solidity format. Additionally, `Vec` implements - `From` which simply call encodes. This is useful to write tests as you can construct the - variant you want and it will be encoded to Solidity format for you. diff --git a/precompiles/utils/macro/src/derive_codec.rs b/precompiles/utils/macro/src/derive_codec.rs deleted file mode 100644 index a5538cb95..000000000 --- a/precompiles/utils/macro/src/derive_codec.rs +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use proc_macro::TokenStream; -use proc_macro2::Span; -use quote::{quote, quote_spanned}; -use syn::{ - parse_macro_input, punctuated::Punctuated, spanned::Spanned, DeriveInput, Ident, LitStr, Path, - PathSegment, PredicateType, TraitBound, TraitBoundModifier, -}; - -pub fn main(input: TokenStream) -> TokenStream { - let DeriveInput { ident, mut generics, data, .. } = parse_macro_input!(input as DeriveInput); - - let syn::Data::Struct(syn::DataStruct { fields: syn::Fields::Named(fields), .. }) = data else { - return quote_spanned! { ident.span() => - compile_error!("Codec can only be derived for structs with named fields"); - } - .into(); - }; - let fields = fields.named; - - if fields.is_empty() { - return quote_spanned! { ident.span() => - compile_error!("Codec can only be derived for structs with at least one field"); - } - .into(); - } - - if let Some(unamed_field) = fields.iter().find(|f| f.ident.is_none()) { - return quote_spanned! { unamed_field.ty.span() => - compile_error!("Codec can only be derived for structs with named fields"); - } - .into(); - } - - let fields_ty: Vec<_> = fields.iter().map(|f| &f.ty).collect(); - let fields_ident: Vec<_> = fields - .iter() - .map(|f| f.ident.as_ref().expect("None case checked above")) - .collect(); - let fields_name_lit: Vec<_> = - fields_ident.iter().map(|i| LitStr::new(&i.to_string(), i.span())).collect(); - - let evm_data_trait_path = { - let mut segments = Punctuated::::new(); - segments.push(Ident::new("precompile_utils", Span::call_site()).into()); - segments.push(Ident::new("solidity", Span::call_site()).into()); - segments.push(Ident::new("Codec", Span::call_site()).into()); - Path { leading_colon: Some(Default::default()), segments } - }; - let where_clause = generics.make_where_clause(); - - for ty in &fields_ty { - let mut bounds = Punctuated::new(); - bounds.push( - TraitBound { - paren_token: None, - modifier: TraitBoundModifier::None, - lifetimes: None, - path: evm_data_trait_path.clone(), - } - .into(), - ); - - where_clause.predicates.push( - PredicateType { - lifetimes: None, - bounded_ty: (*ty).clone(), - colon_token: Default::default(), - bounds, - } - .into(), - ); - } - - let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); - quote! { - impl #impl_generics ::precompile_utils::solidity::codec::Codec for #ident #ty_generics - #where_clause { - fn read( - reader: &mut ::precompile_utils::solidity::codec::Reader - ) -> ::precompile_utils::solidity::revert::MayRevert { - use ::precompile_utils::solidity::revert::BacktraceExt as _; - let (#(#fields_ident,)*): (#(#fields_ty,)*) = reader - .read() - .map_in_tuple_to_field(&[#(#fields_name_lit),*])?; - Ok(Self { - #(#fields_ident,)* - }) - } - - fn write(writer: &mut ::precompile_utils::solidity::codec::Writer, value: Self) { - ::precompile_utils::solidity::codec::Codec::write(writer, (#(value.#fields_ident,)*)); - } - - fn has_static_size() -> bool { - <(#(#fields_ty,)*)>::has_static_size() - } - - fn signature() -> String { - <(#(#fields_ty,)*)>::signature() - } - } - } - .into() -} diff --git a/precompiles/utils/macro/src/generate_function_selector.rs b/precompiles/utils/macro/src/generate_function_selector.rs deleted file mode 100644 index 405db1e0a..000000000 --- a/precompiles/utils/macro/src/generate_function_selector.rs +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; - -pub fn main(_: TokenStream, input: TokenStream) -> TokenStream { - let item = parse_macro_input!(input as ItemEnum); - - let ItemEnum { - attrs, - vis, - enum_token, - ident, - variants, - .. - } = item; - - let mut ident_expressions: Vec = vec![]; - let mut variant_expressions: Vec = vec![]; - let mut variant_attrs: Vec> = vec![]; - for variant in variants { - match variant.discriminant { - Some((_, Expr::Lit(ExprLit { lit, .. }))) => { - if let Lit::Str(lit_str) = lit { - let digest = Keccak256::digest(lit_str.value().as_bytes()); - let selector = u32::from_be_bytes([digest[0], digest[1], digest[2], digest[3]]); - ident_expressions.push(variant.ident); - variant_expressions.push(Expr::Lit(ExprLit { - lit: Lit::Verbatim(Literal::u32_suffixed(selector)), - attrs: Default::default(), - })); - variant_attrs.push(variant.attrs); - } else { - return quote_spanned! { - lit.span() => compile_error!("Expected literal string"); - } - .into(); - } - } - Some((_eg, expr)) => { - return quote_spanned! { - expr.span() => compile_error!("Expected literal"); - } - .into() - } - None => { - return quote_spanned! { - variant.span() => compile_error!("Each variant must have a discriminant"); - } - .into() - } - } - } - - (quote! { - #(#attrs)* - #[derive(num_enum::TryFromPrimitive, num_enum::IntoPrimitive)] - #[repr(u32)] - #vis #enum_token #ident { - #( - #(#variant_attrs)* - #ident_expressions = #variant_expressions, - )* - } - }) - .into() -} diff --git a/precompiles/utils/macro/src/lib.rs b/precompiles/utils/macro/src/lib.rs deleted file mode 100644 index 91a9238a1..000000000 --- a/precompiles/utils/macro/src/lib.rs +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -#![crate_type = "proc-macro"] -extern crate proc_macro; - -use proc_macro::TokenStream; -use quote::{quote, quote_spanned}; -use sha3::{Digest, Keccak256}; -use syn::{parse_macro_input, spanned::Spanned, Expr, Ident, ItemType, Lit, LitStr}; - -mod derive_codec; -mod precompile; -mod precompile_name_from_address; - -struct Bytes(Vec); - -impl ::std::fmt::Debug for Bytes { - #[inline] - fn fmt(&self, f: &mut std::fmt::Formatter) -> ::std::fmt::Result { - let data = &self.0; - write!(f, "[")?; - if !data.is_empty() { - write!(f, "{:#04x}u8", data[0])?; - for unit in data.iter().skip(1) { - write!(f, ", {:#04x}", unit)?; - } - } - write!(f, "]") - } -} - -#[proc_macro] -pub fn keccak256(input: TokenStream) -> TokenStream { - let lit_str = parse_macro_input!(input as LitStr); - - let hash = Keccak256::digest(lit_str.value().as_bytes()); - - let bytes = Bytes(hash.to_vec()); - let eval_str = format!("{:?}", bytes); - let eval_ts: proc_macro2::TokenStream = eval_str.parse().unwrap_or_else(|_| { - panic!("Failed to parse the string \"{}\" to TokenStream.", eval_str); - }); - quote!(#eval_ts).into() -} - -#[proc_macro_attribute] -pub fn precompile(attr: TokenStream, input: TokenStream) -> TokenStream { - precompile::main(attr, input) -} - -#[proc_macro_attribute] -pub fn precompile_name_from_address(attr: TokenStream, input: TokenStream) -> TokenStream { - precompile_name_from_address::main(attr, input) -} - -#[proc_macro_derive(Codec)] -pub fn derive_codec(input: TokenStream) -> TokenStream { - derive_codec::main(input) -} diff --git a/precompiles/utils/macro/src/precompile/attr.rs b/precompiles/utils/macro/src/precompile/attr.rs deleted file mode 100644 index bb10e46f7..000000000 --- a/precompiles/utils/macro/src/precompile/attr.rs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use proc_macro2::Span; -use quote::ToTokens; -use syn::spanned::Spanned; - -pub fn take_attributes(attributes: &mut Vec) -> syn::Result> -where - A: syn::parse::Parse, -{ - let mut output = vec![]; - let pred = |attr: &syn::Attribute| { - attr.path - .segments - .first() - .map_or(false, |segment| segment.ident == "precompile") - }; - - while let Some(index) = attributes.iter().position(pred) { - let attr = attributes.remove(index); - let attr = syn::parse2(attr.into_token_stream())?; - output.push(attr) - } - Ok(output) -} - -/// List of additional token to be used for parsing. -pub mod keyword { - syn::custom_keyword!(precompile); - syn::custom_keyword!(public); - syn::custom_keyword!(fallback); - syn::custom_keyword!(payable); - syn::custom_keyword!(view); - syn::custom_keyword!(discriminant); - syn::custom_keyword!(precompile_set); - syn::custom_keyword!(test_concrete_types); - syn::custom_keyword!(pre_check); -} - -/// Attributes for methods. -pub enum MethodAttr { - Public(Span, syn::LitStr), - Fallback(Span), - Payable(Span), - View(Span), - Discriminant(Span), - PreCheck(Span), -} - -impl syn::parse::Parse for MethodAttr { - fn parse(input: syn::parse::ParseStream) -> syn::Result { - input.parse::()?; - let content; - syn::bracketed!(content in input); - content.parse::()?; - content.parse::()?; - - let lookahead = content.lookahead1(); - - if lookahead.peek(keyword::public) { - let span = content.parse::()?.span(); - - let inner; - syn::parenthesized!(inner in content); - let signature = inner.parse::()?; - - Ok(MethodAttr::Public(span, signature)) - } else if lookahead.peek(keyword::fallback) { - Ok(MethodAttr::Fallback(content.parse::()?.span())) - } else if lookahead.peek(keyword::payable) { - Ok(MethodAttr::Payable(content.parse::()?.span())) - } else if lookahead.peek(keyword::view) { - Ok(MethodAttr::View(content.parse::()?.span())) - } else if lookahead.peek(keyword::discriminant) { - Ok(MethodAttr::Discriminant(content.parse::()?.span())) - } else if lookahead.peek(keyword::pre_check) { - Ok(MethodAttr::PreCheck(content.parse::()?.span())) - } else { - Err(lookahead.error()) - } - } -} - -/// Attributes for the main impl Block. -pub enum ImplAttr { - PrecompileSet(Span), - TestConcreteTypes(Span, Vec), -} - -impl syn::parse::Parse for ImplAttr { - fn parse(input: syn::parse::ParseStream) -> syn::Result { - input.parse::()?; - let content; - syn::bracketed!(content in input); - content.parse::()?; - content.parse::()?; - - let lookahead = content.lookahead1(); - - if lookahead.peek(keyword::precompile_set) { - Ok(ImplAttr::PrecompileSet(content.parse::()?.span())) - } else if lookahead.peek(keyword::test_concrete_types) { - let span = content.parse::()?.span(); - - let inner; - syn::parenthesized!(inner in content); - let types = inner.parse_terminated::<_, syn::Token![,]>(syn::Type::parse)?; - - Ok(ImplAttr::TestConcreteTypes(span, types.into_iter().collect())) - } else { - Err(lookahead.error()) - } - } -} diff --git a/precompiles/utils/macro/src/precompile/expand.rs b/precompiles/utils/macro/src/precompile/expand.rs deleted file mode 100644 index 55b48525c..000000000 --- a/precompiles/utils/macro/src/precompile/expand.rs +++ /dev/null @@ -1,504 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; - -impl Precompile { - /// Main expand function, which expands everything else. - pub fn expand(&self) -> impl ToTokens { - let enum_ = self.expand_enum_decl(); - let enum_impl = self.expand_enum_impl(); - let precomp_impl = self.expand_precompile_impl(); - let test_signature = self.expand_test_solidity_signature(); - - quote! { - #enum_ - #enum_impl - #precomp_impl - #test_signature - } - } - - /// Expands the call enum declaration. - pub fn expand_enum_decl(&self) -> impl ToTokens { - let enum_ident = &self.enum_ident; - let (_impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); - - let type_parameters = self.generics.type_params().map(|p| &p.ident); - - let variants: Vec<_> = self.variants_content.keys().collect(); - let idents: Vec> = self - .variants_content - .values() - .map(|v| v.arguments.iter().map(|a| &a.ident).collect()) - .collect(); - let types: Vec> = self - .variants_content - .values() - .map(|v| v.arguments.iter().map(|a| &a.ty).collect()) - .collect(); - - quote!( - #[allow(non_camel_case_types)] - pub enum #enum_ident #ty_generics #where_clause { - #( - #variants { - #( - #idents: #types - ),* - }, - )* - - #[doc(hidden)] - __phantom( - ::core::marker::PhantomData<( #( #type_parameters ),* )>, - ::core::convert::Infallible - ), - } - ) - } - - /// Expands the parse function for each variants. - pub fn expand_variants_parse_fn(&self) -> impl ToTokens { - let span = Span::call_site(); - - let fn_parse = self.variants_content.keys().map(Self::variant_ident_to_parse_fn); - - let modifier_check = self.variants_content.values().map(|variant| { - let modifier = match variant.modifier { - Modifier::NonPayable => "NonPayable", - Modifier::Payable => "Payable", - Modifier::View => "View", - }; - - let modifier = syn::Ident::new(modifier, span); - - quote!( - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::#modifier)?; - ) - }); - - let variant_parsing = self.variants_content.iter().map(|(variant_ident, variant)| { - Self::expand_variant_parsing_from_handle(variant_ident, variant) - }); - - quote!( - #( - fn #fn_parse( - handle: &mut impl PrecompileHandle - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - - #modifier_check - #variant_parsing - } - )* - ) - } - - /// Generates the parsing code for a variant, reading the input from the handle and - /// parsing it using Reader. - fn expand_variant_parsing_from_handle( - variant_ident: &syn::Ident, - variant: &Variant, - ) -> impl ToTokens { - if variant.arguments.is_empty() { - quote!( Ok(Self::#variant_ident {})).to_token_stream() - } else { - use case::CaseExt; - - let args_parse = variant.arguments.iter().map(|arg| { - let ident = &arg.ident; - let span = ident.span(); - let name = ident.to_string().to_camel_lowercase(); - - quote_spanned!(span=> #ident: input.read().in_field(#name)?,) - }); - let args_count = variant.arguments.len(); - - quote!( - let mut input = handle.read_after_selector()?; - input.expect_arguments(#args_count)?; - - Ok(Self::#variant_ident { - #(#args_parse)* - }) - ) - .to_token_stream() - } - } - - /// Expands the call enum impl block. - pub fn expand_enum_impl(&self) -> impl ToTokens { - let enum_ident = &self.enum_ident; - let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); - - let match_selectors = self.selector_to_variant.keys(); - let match_selectors2 = self.selector_to_variant.keys(); - - let variants_parsing = self.expand_variants_parse_fn(); - - let variants_ident2: Vec<_> = self.variants_content.keys().collect(); - let variants_selectors_fn: Vec<_> = self - .variants_content - .keys() - .map(|name| format_ident!("{}_selectors", name)) - .collect(); - let variants_selectors: Vec<_> = - self.variants_content.values().map(|variant| &variant.selectors).collect(); - - let variants_list: Vec> = self - .variants_content - .values() - .map(|variant| variant.arguments.iter().map(|arg| &arg.ident).collect()) - .collect(); - - let variants_encode: Vec<_> = - self.variants_content.values().map(Self::expand_variant_encoding).collect(); - - let parse_call_data_fn = self.expand_enum_parse_call_data(); - let execute_fn = self.expand_enum_execute_fn(); - - quote!( - impl #impl_generics #enum_ident #ty_generics #where_clause { - #parse_call_data_fn - - #variants_parsing - - #execute_fn - - pub fn supports_selector(selector: u32) -> bool { - match selector { - #( - #match_selectors => true, - )* - _ => false, - } - } - - pub fn selectors() -> &'static [u32] { - &[#( - #match_selectors2 - ),*] - } - - #( - pub fn #variants_selectors_fn() -> &'static [u32] { - &[#( - #variants_selectors - ),*] - } - )* - - pub fn encode(self) -> ::sp_std::vec::Vec { - use ::precompile_utils::solidity::codec::Writer; - match self { - #( - Self::#variants_ident2 { #(#variants_list),* } => { - #variants_encode - }, - )* - Self::__phantom(_, _) => panic!("__phantom variant should not be used"), - } - } - } - - impl #impl_generics From<#enum_ident #ty_generics> for ::sp_std::vec::Vec - #where_clause - { - fn from(a: #enum_ident #ty_generics) -> ::sp_std::vec::Vec { - a.encode() - } - } - ) - } - - /// Expand the execute fn of the enum. - fn expand_enum_execute_fn(&self) -> impl ToTokens { - let impl_type = &self.impl_type; - - let variants_ident: Vec<_> = self.variants_content.keys().collect(); - - let variants_arguments: Vec> = self - .variants_content - .values() - .map(|variant| variant.arguments.iter().map(|arg| &arg.ident).collect()) - .collect(); - - // If there is no precompile set there is no discriminant. - let opt_discriminant_arg = self - .precompile_set_discriminant_type - .as_ref() - .map(|ty| quote!( discriminant: #ty,)); - - let variants_call = self.variants_content.iter().map(|(variant_ident, variant)| { - let arguments = variant.arguments.iter().map(|arg| &arg.ident); - - let output_span = variant.fn_output.span(); - let opt_discriminant_arg = - self.precompile_set_discriminant_fn.as_ref().map(|_| quote!(discriminant,)); - - let write_output = quote_spanned!(output_span=> - ::precompile_utils::solidity::encode_return_value(output?) - ); - - quote!( - let output = <#impl_type>::#variant_ident( - #opt_discriminant_arg - handle, - #(#arguments),* - ); - #write_output - ) - }); - - quote!( - pub fn execute( - self, - #opt_discriminant_arg - handle: &mut impl PrecompileHandle - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - use ::precompile_utils::solidity::codec::Writer; - use ::fp_evm::{PrecompileOutput, ExitSucceed}; - - let output = match self { - #( - Self::#variants_ident { #(#variants_arguments),* } => { - #variants_call - }, - )* - Self::__phantom(_, _) => panic!("__phantom variant should not be used"), - }; - - Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output - }) - } - ) - } - - /// Expand how a variant can be Solidity encoded. - fn expand_variant_encoding(variant: &Variant) -> impl ToTokens { - match variant.selectors.first() { - Some(selector) => { - let write_arguments = variant.arguments.iter().map(|arg| { - let ident = &arg.ident; - let span = ident.span(); - quote_spanned!(span=> .write(#ident)) - }); - - quote!( - Writer::new_with_selector(#selector) - #(#write_arguments)* - .build() - ) - .to_token_stream() - }, - None => quote!(Default::default()).to_token_stream(), - } - } - - /// Expand the main parsing function that, based on the selector in the - /// input, dispatch the decoding to one of the variants parsing function. - fn expand_enum_parse_call_data(&self) -> impl ToTokens { - let selectors = self.selector_to_variant.keys(); - let parse_fn = self.selector_to_variant.values().map(Self::variant_ident_to_parse_fn); - - let match_fallback = match &self.fallback_to_variant { - Some(variant) => { - let parse_fn = Self::variant_ident_to_parse_fn(variant); - quote!(_ => Self::#parse_fn(handle),).to_token_stream() - }, - None => quote!( - Some(_) => Err(RevertReason::UnknownSelector.into()), - None => Err(RevertReason::read_out_of_bounds("selector").into()), - ) - .to_token_stream(), - }; - - quote!( - pub fn parse_call_data( - handle: &mut impl PrecompileHandle - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::RevertReason; - - let input = handle.input(); - - let selector = input.get(0..4).map(|s| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(s); - u32::from_be_bytes(buffer) - }); - - match selector { - #( - Some(#selectors) => Self::#parse_fn(handle), - )* - #match_fallback - } - } - ) - } - - fn variant_ident_to_parse_fn(ident: &syn::Ident) -> syn::Ident { - format_ident!("_parse_{}", ident) - } - - /// Expands the impl of the Precomile(Set) trait. - pub fn expand_precompile_impl(&self) -> impl ToTokens { - let impl_type = &self.impl_type; - let enum_ident = &self.enum_ident; - let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); - - if let Some(discriminant_fn) = &self.precompile_set_discriminant_fn { - let opt_pre_check = self.pre_check.as_ref().map(|ident| { - let span = ident.span(); - quote_spanned!(span=> - let _: () = <#impl_type>::#ident(discriminant, handle) - .map_err(|err| Some(err))?; - ) - }); - - quote!( - impl #impl_generics ::fp_evm::PrecompileSet for #impl_type #where_clause { - fn execute( - &self, - handle: &mut impl PrecompileHandle - ) -> Option<::precompile_utils::EvmResult<::fp_evm::PrecompileOutput>> { - use ::precompile_utils::precompile_set::DiscriminantResult; - - let discriminant = <#impl_type>::#discriminant_fn( - handle.code_address(), - handle.remaining_gas() - ); - - if let DiscriminantResult::Some(_, cost) | DiscriminantResult::None(cost) = discriminant { - let result = handle.record_cost(cost); - if let Err(e) = result { - return Some(Err(e.into())); - } - } - - let discriminant = match discriminant { - DiscriminantResult::Some(d, _) => d, - DiscriminantResult::None(cost) => return None, - DiscriminantResult::OutOfGas => return Some(Err(ExitError::OutOfGas.into())) - }; - - #opt_pre_check - - Some( - <#enum_ident #ty_generics>::parse_call_data(handle) - .and_then(|call| call.execute(discriminant, handle)) - ) - } - - fn is_precompile(&self, address: H160, gas: u64) -> ::fp_evm::IsPrecompileResult { - <#impl_type>::#discriminant_fn(address, gas).into() - } - } - ) - .to_token_stream() - } else { - let opt_pre_check = self.pre_check.as_ref().map(|ident| { - let span = ident.span(); - quote_spanned!(span=>let _: () = <#impl_type>::#ident(handle)?;) - }); - - quote!( - impl #impl_generics ::fp_evm::Precompile for #impl_type #where_clause { - fn execute( - handle: &mut impl PrecompileHandle - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - #opt_pre_check - - <#enum_ident #ty_generics>::parse_call_data(handle)?.execute(handle) - } - } - ) - .to_token_stream() - } - } - - /// Expands the Solidity signature test. - /// The macro expands an "inner" function in all build profiles, which is - /// then called by a test in test profile. This allows to display errors that occurs in - /// the expansion of the test without having to build in test profile, which is usually - /// related to the use of a type parameter in one of the parsed parameters of a method. - pub fn expand_test_solidity_signature(&self) -> impl ToTokens { - let variant_test: Vec<_> = self - .variants_content - .iter() - .map(|(ident, variant)| { - let span = ident.span(); - - let solidity = &variant.solidity_arguments_type; - let name = ident.to_string(); - let types: Vec<_> = variant.arguments.iter().map(|arg| &arg.ty).collect(); - - quote_spanned!(span=> - assert_eq!( - #solidity, - <(#(#types,)*) as Codec>::signature(), - "{} function signature doesn't match (left: attribute, right: computed \ - from Rust types)", - #name - ); - ) - }) - .collect(); - - let test_name = format_ident!("__{}_test_solidity_signatures", self.impl_ident); - let inner_name = format_ident!("__{}_test_solidity_signatures_inner", self.impl_ident); - - if let Some(test_types) = &self.test_concrete_types { - let (impl_generics, _ty_generics, where_clause) = self.generics.split_for_impl(); - - quote!( - #[allow(non_snake_case)] - pub(crate) fn #inner_name #impl_generics () #where_clause { - use ::precompile_utils::solidity::Codec; - #(#variant_test)* - } - - #[test] - #[allow(non_snake_case)] - fn #test_name() { - #inner_name::< #(#test_types),* >(); - } - ) - .to_token_stream() - } else { - quote!( - #[allow(non_snake_case)] - pub(crate) fn #inner_name() { - use ::precompile_utils::solidity::Codec; - #(#variant_test)* - } - - #[test] - #[allow(non_snake_case)] - fn #test_name() { - #inner_name(); - } - ) - .to_token_stream() - } - } -} diff --git a/precompiles/utils/macro/src/precompile/mod.rs b/precompiles/utils/macro/src/precompile/mod.rs deleted file mode 100644 index 4cd63ed28..000000000 --- a/precompiles/utils/macro/src/precompile/mod.rs +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -#![doc = include_str!("../../docs/precompile_macro.md")] - -use proc_macro::TokenStream; -use proc_macro2::Span; -use quote::{format_ident, quote, quote_spanned, ToTokens}; -use sha3::{Digest, Keccak256}; -use std::collections::BTreeMap; -use syn::{parse_macro_input, spanned::Spanned}; - -pub mod attr; -pub mod expand; -pub mod parse; - -pub fn main(_attr: TokenStream, item: TokenStream) -> TokenStream { - // Macro must be used on `impl` block. - let mut impl_item = parse_macro_input!(item as syn::ItemImpl); - - // We inspect the block to collect all the data we need for the - // expansion, and make various checks. - let precompile = match Precompile::try_from(&mut impl_item) { - Ok(p) => p, - Err(e) => return e.into_compile_error().into(), - }; - - // We generate additional code based on the collected data. - let new_items = precompile.expand(); - let output = quote!( - #impl_item - #new_items - ); - - output.into() -} - -struct Precompile { - /// Impl struct type. - impl_type: syn::Type, - - /// Impl struct ident. - impl_ident: syn::Ident, - - /// New parsing enum ident. - enum_ident: syn::Ident, - - /// Generic part that needs to also be used by the input enum. - generics: syn::Generics, - - /// Which selector corresponds to which variant of the input enum. - selector_to_variant: BTreeMap, - - /// Optional fallback function if no selector matches. - fallback_to_variant: Option, - - /// Describes the content of each variant based on the precompile methods. - variants_content: BTreeMap, - - /// Since being a precompile set implies lots of changes, we must know it early - /// in the form of an attribute on the impl block itself. - tagged_as_precompile_set: bool, - - /// Ident of the function returning the PrecompileSet discriminant. - precompile_set_discriminant_fn: Option, - - /// Type of the PrecompileSet discriminant. - precompile_set_discriminant_type: Option, - - /// When generating the selector test the data types might depend on type parameters. - /// The test thus need to be written using concrete types. - test_concrete_types: Option>, - - /// Ident of a function that performs a check before the call is dispatched to the proper - /// function. - pre_check: Option, -} - -#[derive(Debug, PartialEq, Eq)] -enum Modifier { - NonPayable, - Payable, - View, -} - -#[derive(Debug)] -struct Variant { - /// Description of the arguments of this method, which will also - /// be members of a struct variant. - arguments: Vec, - - /// String extracted from the selector attribute. - /// A unit test will be generated to check that this selector matches - /// the Rust arguments. - /// - /// > solidity::Codec trait allows to generate this string at runtime only. Thus - /// > it is required to write it manually in the selector attribute, and - /// > a unit test is generated to check it matches. - solidity_arguments_type: String, - - /// Modifier of the function. They are all exclusive and defaults to - /// `NonPayable`. - modifier: Modifier, - - /// Selectors of this function to be able to encode back the data. - /// Empty if it only the fallback function. - selectors: Vec, - - /// Output of the variant fn (for better error messages). - fn_output: syn::Type, -} - -#[derive(Debug)] -struct Argument { - /// Identifier of the argument, which will be used in the struct variant. - ident: syn::Ident, - - /// Type of the argument, which will be used in the struct variant and - /// to parse the input. - ty: syn::Type, -} diff --git a/precompiles/utils/macro/src/precompile/parse.rs b/precompiles/utils/macro/src/precompile/parse.rs deleted file mode 100644 index 9c17c25a3..000000000 --- a/precompiles/utils/macro/src/precompile/parse.rs +++ /dev/null @@ -1,614 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; - -impl Precompile { - /// Try to extract information out of an annotated `impl` block. - pub fn try_from(impl_: &mut syn::ItemImpl) -> syn::Result { - // Extract the name of the type used in the `impl` block. - let impl_ident = Self::extract_impl_ident(impl_)?; - let enum_ident = format_ident!("{}Call", impl_ident); - - // We setup the data collection struct. - let mut precompile = Precompile { - impl_type: impl_.self_ty.as_ref().clone(), - impl_ident, - enum_ident, - generics: impl_.generics.clone(), - selector_to_variant: BTreeMap::new(), - variants_content: BTreeMap::new(), - fallback_to_variant: None, - tagged_as_precompile_set: false, - precompile_set_discriminant_fn: None, - precompile_set_discriminant_type: None, - test_concrete_types: None, - pre_check: None, - }; - - precompile.process_impl_attr(impl_)?; - for mut item in &mut impl_.items { - // We only interact with methods and leave the rest as-is. - if let syn::ImplItem::Method(ref mut method) = &mut item { - precompile.process_method(method)?; - } - } - - // Check constraint of PrecompileSet. - if precompile.tagged_as_precompile_set && - precompile.precompile_set_discriminant_fn.is_none() - { - let msg = "A PrecompileSet must have exactly one function tagged with \ - `#[precompile::discriminant]`"; - return Err(syn::Error::new(Span::call_site(), msg)); - } - - Ok(precompile) - } - - /// Process the attributes used on the `impl` block, which allows to declare - /// if it is a PrecompileSet or not, and to provide concrete types for tests if necessary. - fn process_impl_attr(&mut self, impl_: &mut syn::ItemImpl) -> syn::Result<()> { - let attrs = attr::take_attributes::(&mut impl_.attrs)?; - - for attr in attrs { - match attr { - attr::ImplAttr::PrecompileSet(_) => { - self.tagged_as_precompile_set = true; - }, - attr::ImplAttr::TestConcreteTypes(span, types) => { - if types.len() != self.generics.params.len() { - let msg = "The amount of types should match the amount of type parameters \ - of the impl block"; - return Err(syn::Error::new(span, msg)); - } - - if self.test_concrete_types.is_some() { - let msg = "Only one set of types can be provided to generate tests"; - return Err(syn::Error::new(span, msg)); - } - - self.test_concrete_types = Some(types); - }, - } - } - - Ok(()) - } - - /// Extract the ident of the type of the `impl` block. - /// This ident is used to generate new idents such as the name of the Call enum and - /// the Solidity selector test. - fn extract_impl_ident(impl_: &syn::ItemImpl) -> syn::Result { - let type_path = match impl_.self_ty.as_ref() { - syn::Type::Path(p) => p, - _ => { - let msg = "The type in the impl block must be a path, like `Precompile` or - `example::Precompile`"; - return Err(syn::Error::new(impl_.self_ty.span(), msg)); - }, - }; - - let final_path = type_path.path.segments.last().ok_or_else(|| { - let msg = "The type path must be non empty."; - syn::Error::new(impl_.self_ty.span(), msg) - })?; - - Ok(final_path.ident.clone()) - } - - /// Process a single method, looking for attributes and checking mandatory parameters. - fn process_method(&mut self, method: &mut syn::ImplItemMethod) -> syn::Result<()> { - // Take (remove) all attributes related to this macro. - let attrs = attr::take_attributes::(&mut method.attrs)?; - - // If there are no attributes it is a private function and we ignore it. - if attrs.is_empty() { - return Ok(()); - } - - // A method cannot have modifiers if it isn't a fallback and/or doesn't have a selector. - let mut used = false; - - let method_name = method.sig.ident.clone(); - let mut modifier = Modifier::NonPayable; - let mut solidity_arguments_type: Option = None; - let mut arguments = vec![]; - let mut is_fallback = false; - let mut selectors = vec![]; - let initial_arguments = if self.tagged_as_precompile_set { 2 } else { 1 }; - - // We first look for unique attributes. - if let Some(attr::MethodAttr::Discriminant(span)) = attrs.first() { - let span = *span; - - if attrs.len() != 1 { - let msg = "The discriminant attribute must be the only precompile attribute of \ - a function"; - return Err(syn::Error::new(span, msg)); - } - - return self.parse_discriminant_fn(span, method); - } - - if let Some(attr::MethodAttr::PreCheck(span)) = attrs.first() { - let span = *span; - - if attrs.len() != 1 { - let msg = "The pre_check attribute must be the only precompile attribute of \ - a function"; - return Err(syn::Error::new(span, msg)); - } - - return self.parse_pre_check_fn(span, method); - } - - // We iterate over all attributes of the method. - for attr in attrs { - match attr { - attr::MethodAttr::Discriminant(span) => { - let msg = "The discriminant attribute must be the only precompile \ - attribute of the function"; - return Err(syn::Error::new(span, msg)); - }, - attr::MethodAttr::PreCheck(span) => { - let msg = "The pre_check attribute must be the only precompile \ - attribute of the function"; - return Err(syn::Error::new(span, msg)); - }, - attr::MethodAttr::Fallback(span) => { - if self.fallback_to_variant.is_some() { - let msg = "A precompile can only have 1 fallback function"; - return Err(syn::Error::new(span, msg)); - } - - self.fallback_to_variant = Some(method_name.clone()); - used = true; - is_fallback = true; - }, - attr::MethodAttr::Payable(span) => { - if modifier != Modifier::NonPayable { - let msg = - "A precompile method can have at most one modifier (payable, view)"; - return Err(syn::Error::new(span, msg)); - } - - modifier = Modifier::Payable; - }, - attr::MethodAttr::View(span) => { - if modifier != Modifier::NonPayable { - let msg = - "A precompile method can have at most one modifier (payable, view)"; - return Err(syn::Error::new(span, msg)); - } - - modifier = Modifier::View; - }, - attr::MethodAttr::Public(_, signature_lit) => { - used = true; - - let selector = self.parse_public_attr( - signature_lit, - &method_name, - &mut solidity_arguments_type, - )?; - selectors.push(selector); - }, - } - } - - // A method cannot have attributes without being public or fallback. - if !used { - let msg = - "A precompile method cannot have modifiers without being a fallback or having\ - a `public` attribute"; - return Err(syn::Error::new(method.span(), msg)); - } - - // We forbid type parameters. - if let Some(param) = method.sig.generics.params.first() { - let msg = "Exposed precompile methods cannot have type parameters"; - return Err(syn::Error::new(param.span(), msg)); - } - - // Fallback method cannot have custom parameters. - if is_fallback { - if let Some(input) = method.sig.inputs.iter().nth(initial_arguments) { - let msg = if self.tagged_as_precompile_set { - "Fallback methods cannot take any parameter outside of the discriminant and \ - PrecompileHandle" - } else { - "Fallback methods cannot take any parameter outside of the PrecompileHandle" - }; - - return Err(syn::Error::new(input.span(), msg)); - } - } - - let mut method_inputs = method.sig.inputs.iter(); - - // We check the first parameters of the method. - // If this is a PrecompileSet it will look for a discriminant. - // Then for all precompile(set)s it will look for the PrecompileHandle. - // We take them from the iterator such that we are only left with the - // custom arguments. - self.check_initial_parameters(&mut method_inputs, method.sig.span())?; - - // We go through each parameter to collect each name and type that will be used to - // generate the input enum and parse the call data. - for input in method_inputs { - let input = match input { - syn::FnArg::Typed(t) => t, - _ => { - // I don't think it is possible to encounter this error since a self receiver - // seems to only be possible in the first position which is checked in - // `check_initial_parameters`. - let msg = "Exposed precompile methods cannot have a `self` parameter"; - return Err(syn::Error::new(input.span(), msg)); - }, - }; - - let msg = "Parameter must be of the form `name: Type`, optionally prefixed by `mut`"; - let ident = match input.pat.as_ref() { - syn::Pat::Ident(pat) => { - if pat.by_ref.is_some() || pat.subpat.is_some() { - return Err(syn::Error::new(pat.span(), msg)); - } - - pat.ident.clone() - }, - _ => return Err(syn::Error::new(input.pat.span(), msg)), - }; - let ty = input.ty.as_ref().clone(); - self.check_type_parameter_usage(&ty)?; - - arguments.push(Argument { ident, ty }) - } - - // Function output. - let output_type = match &method.sig.output { - syn::ReturnType::Type(_, t) => t, - _ => { - let msg = "A precompile method must have a return type of `EvmResult<_>` (exposed \ - by `precompile_utils`)"; - return Err(syn::Error::new(method.sig.span(), msg)); - }, - }; - - // We insert the collected data in self. - if self - .variants_content - .insert( - method_name.clone(), - Variant { - arguments, - solidity_arguments_type: solidity_arguments_type.unwrap_or(String::from("()")), - modifier, - selectors, - fn_output: output_type.as_ref().clone(), - }, - ) - .is_some() - { - let msg = "Duplicate method name"; - return Err(syn::Error::new(method_name.span(), msg)); - } - - Ok(()) - } - - /// Check the initial parameters of most methods of a Precompile(Set). - fn check_initial_parameters<'a>( - &mut self, - method_inputs: &mut impl Iterator, - method_span: Span, - ) -> syn::Result<()> { - // Discriminant input - if self.tagged_as_precompile_set { - let input = match method_inputs.next() { - Some(a) => a, - None => { - let msg = "PrecompileSet methods must have at least 2 parameters (the \ - precompile instance discriminant and the PrecompileHandle)"; - return Err(syn::Error::new(method_span, msg)); - }, - }; - - let input = match input { - syn::FnArg::Typed(a) => a, - _ => { - let msg = "self is not allowed in precompile methods"; - return Err(syn::Error::new(input.span(), msg)); - }, - }; - - let input_type = input.ty.as_ref(); - - self.try_register_discriminant_type(input_type)?; - } - - // Precompile handle input - { - let input = match method_inputs.next() { - Some(a) => a, - None => { - let msg = if self.tagged_as_precompile_set { - "PrecompileSet methods must have at least 2 parameters (the precompile \ - instance discriminant and the PrecompileHandle)" - } else { - "Precompile methods must have at least 1 parameter (the PrecompileHandle)" - }; - - return Err(syn::Error::new(method_span, msg)); - }, - }; - - let input = match input { - syn::FnArg::Typed(a) => a, - _ => { - let msg = "self is not allowed in precompile methods"; - return Err(syn::Error::new(input.span(), msg)); - }, - }; - - let input_type = input.ty.as_ref(); - - if !is_same_type(input_type, &syn::parse_quote! {&mut impl PrecompileHandle}) { - let msg = "This parameter must have type `&mut impl PrecompileHandle`"; - return Err(syn::Error::new(input_type.span(), msg)); - } - } - - Ok(()) - } - - /// Records the type of the discriminant and ensure they all have the same type. - fn try_register_discriminant_type(&mut self, ty: &syn::Type) -> syn::Result<()> { - if let Some(known_type) = &self.precompile_set_discriminant_type { - if !is_same_type(known_type, ty) { - let msg = format!( - "All discriminants must have the same type (found {} before)", - known_type.to_token_stream() - ); - return Err(syn::Error::new(ty.span(), msg)); - } - } else { - self.precompile_set_discriminant_type = Some(ty.clone()); - } - - Ok(()) - } - - /// Process the discriminant function. - fn parse_discriminant_fn( - &mut self, - span: Span, - method: &syn::ImplItemMethod, - ) -> syn::Result<()> { - if !self.tagged_as_precompile_set { - let msg = "The impl block must be tagged with `#[precompile::precompile_set]` for - the discriminant attribute to be used"; - return Err(syn::Error::new(span, msg)); - } - - if self.precompile_set_discriminant_fn.is_some() { - let msg = "A PrecompileSet can only have 1 discriminant function"; - return Err(syn::Error::new(span, msg)); - } - - let span = method.sig.span(); - - if method.sig.inputs.len() != 2 { - let msg = "The discriminant function must only take code address (H160) and \ - remaining gas (u64) as parameters."; - return Err(syn::Error::new(span, msg)); - } - - let msg = "The discriminant function must return an DiscriminantResult<_> (no type alias)"; - - let return_type = match &method.sig.output { - syn::ReturnType::Type(_, t) => t.as_ref(), - _ => return Err(syn::Error::new(span, msg)), - }; - - let return_path = match return_type { - syn::Type::Path(p) => p, - _ => return Err(syn::Error::new(span, msg)), - }; - - if return_path.qself.is_some() { - return Err(syn::Error::new(span, msg)); - } - - let return_path = &return_path.path; - - if return_path.leading_colon.is_some() || return_path.segments.len() != 1 { - return Err(syn::Error::new(span, msg)); - } - - let return_segment = &return_path.segments[0]; - - if return_segment.ident != "DiscriminantResult" { - return Err(syn::Error::new(return_segment.ident.span(), msg)); - } - - let result_arguments = match &return_segment.arguments { - syn::PathArguments::AngleBracketed(args) => args, - _ => return Err(syn::Error::new(return_segment.ident.span(), msg)), - }; - - if result_arguments.args.len() != 1 { - let msg = "DiscriminantResult type should only have 1 type argument"; - return Err(syn::Error::new(result_arguments.args.span(), msg)); - } - - let discriminant_type: &syn::Type = match &result_arguments.args[0] { - syn::GenericArgument::Type(t) => t, - _ => return Err(syn::Error::new(result_arguments.args.span(), msg)), - }; - - self.try_register_discriminant_type(discriminant_type)?; - - self.precompile_set_discriminant_fn = Some(method.sig.ident.clone()); - - Ok(()) - } - - /// Process the pre_check function. - fn parse_pre_check_fn(&mut self, span: Span, method: &syn::ImplItemMethod) -> syn::Result<()> { - if self.pre_check.is_some() { - let msg = "A Precompile can only have 1 pre_check function"; - return Err(syn::Error::new(span, msg)); - } - - let span = method.sig.span(); - - let mut method_inputs = method.sig.inputs.iter(); - - self.check_initial_parameters(&mut method_inputs, span)?; - - if method_inputs.next().is_some() { - let msg = if self.tagged_as_precompile_set { - "PrecompileSet pre_check method must have exactly 2 parameters (the precompile \ - instance discriminant and the PrecompileHandle)" - } else { - "Precompile pre_check method must have exactly 1 parameter (the \ - PrecompileHandle)" - }; - - return Err(syn::Error::new(span, msg)); - } - - self.pre_check = Some(method.sig.ident.clone()); - - Ok(()) - } - - /// Process a `public` attribute on a method. - fn parse_public_attr( - &mut self, - signature_lit: syn::LitStr, - method_name: &syn::Ident, - solidity_arguments_type: &mut Option, - ) -> syn::Result { - let signature = signature_lit.value(); - // Split signature to get arguments type. - let split: Vec<_> = signature.splitn(2, '(').collect(); - if split.len() != 2 { - let msg = "Selector must have form \"foo(arg1,arg2,...)\""; - return Err(syn::Error::new(signature_lit.span(), msg)); - } - - let local_args_type = format!("({}", split[1]); // add back initial parenthesis - - // If there are multiple public attributes we check that they all have - // the same type. - if let Some(ref args_type) = solidity_arguments_type { - if args_type != &local_args_type { - let msg = "Method cannot have selectors with different types."; - return Err(syn::Error::new(signature_lit.span(), msg)); - } - } else { - *solidity_arguments_type = Some(local_args_type); - } - - // Compute the 4-bytes selector. - let digest = Keccak256::digest(signature.as_bytes()); - let selector = u32::from_be_bytes([digest[0], digest[1], digest[2], digest[3]]); - - if let Some(previous) = self.selector_to_variant.insert(selector, method_name.clone()) { - let msg = format!("Selector collision with method {}", previous); - return Err(syn::Error::new(signature_lit.span(), msg)); - } - - Ok(selector) - } - - /// Check that the provided type doesn't depend on one of the type parameters of the - /// precompile. Check is skipped if `test_concrete_types` attribute is used. - fn check_type_parameter_usage(&self, ty: &syn::Type) -> syn::Result<()> { - if self.test_concrete_types.is_some() { - return Ok(()); - } - - const ERR_MESSAGE: &str = - "impl type parameter is used in functions arguments. Arguments should not have a type -depending on a type parameter, unless it is a length bound for BoundedBytes, -BoundedString or alike, which doesn't affect the Solidity type. - -In that case, you must add a #[precompile::test_concrete_types(...)] attribute on the impl -block to provide concrete types that will be used to run the automatically generated tests -ensuring the Solidity function signatures are correct."; - - match ty { - syn::Type::Array(syn::TypeArray { elem, .. }) | - syn::Type::Group(syn::TypeGroup { elem, .. }) | - syn::Type::Paren(syn::TypeParen { elem, .. }) | - syn::Type::Reference(syn::TypeReference { elem, .. }) | - syn::Type::Ptr(syn::TypePtr { elem, .. }) | - syn::Type::Slice(syn::TypeSlice { elem, .. }) => self.check_type_parameter_usage(elem)?, - - syn::Type::Path(syn::TypePath { path: syn::Path { segments, .. }, .. }) => { - let impl_params: Vec<_> = self - .generics - .params - .iter() - .filter_map(|param| match param { - syn::GenericParam::Type(syn::TypeParam { ident, .. }) => Some(ident), - _ => None, - }) - .collect(); - - for segment in segments { - if impl_params.contains(&&segment.ident) { - return Err(syn::Error::new(segment.ident.span(), ERR_MESSAGE)); - } - - if let syn::PathArguments::AngleBracketed(args) = &segment.arguments { - let types = args.args.iter().filter_map(|arg| match arg { - syn::GenericArgument::Type(ty) | - syn::GenericArgument::Binding(syn::Binding { ty, .. }) => Some(ty), - _ => None, - }); - - for ty in types { - self.check_type_parameter_usage(ty)?; - } - } - } - }, - syn::Type::Tuple(tuple) => - for ty in tuple.elems.iter() { - self.check_type_parameter_usage(ty)?; - }, - // BareFn => very unlikely this appear as parameter - // ImplTrait => will cause other errors, it must be a concrete type - // TypeInfer => it must be explicit concrete types since it ends up in enum fields - // Macro => Cannot check easily - // Never => Function will not be callable. - ty => println!("Skipping type parameter check for non supported kind of type: {ty:?}"), - } - - Ok(()) - } -} - -/// Helper to check 2 types are equal. -/// Having a function with explicit type annotation helps type inference at callsite, -/// which have trouble if `==` is used inline. -fn is_same_type(a: &syn::Type, b: &syn::Type) -> bool { - a == b -} diff --git a/precompiles/utils/macro/src/precompile_name_from_address.rs b/precompiles/utils/macro/src/precompile_name_from_address.rs deleted file mode 100644 index 72241dd14..000000000 --- a/precompiles/utils/macro/src/precompile_name_from_address.rs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; -use syn::{GenericArgument, Type}; - -pub fn main(_: TokenStream, input: TokenStream) -> TokenStream { - let item = parse_macro_input!(input as ItemType); - - let ItemType { attrs, vis, type_token, ident, generics, eq_token, ty, semi_token } = item; - - if let Type::Tuple(ref type_tuple) = *ty { - let variants: Vec<(Ident, u64)> = - type_tuple.elems.iter().filter_map(extract_precompile_name_and_prefix).collect(); - - let ident_expressions: Vec<&Ident> = variants.iter().map(|(ident, _)| ident).collect(); - let variant_expressions: Vec<&u64> = variants.iter().map(|(_, id)| id).collect(); - - (quote! { - #(#attrs)* - #vis #type_token #ident #generics #eq_token #ty #semi_token - - #[derive(num_enum::TryFromPrimitive, num_enum::IntoPrimitive, Debug)] - #[repr(u64)] - pub enum PrecompileName { - #( - #ident_expressions = #variant_expressions, - )* - } - - impl PrecompileName { - pub fn from_address(address: sp_core::H160) -> Option { - let _u64 = address.to_low_u64_be(); - if address == sp_core::H160::from_low_u64_be(_u64) { - use num_enum::TryFromPrimitive; - Self::try_from_primitive(_u64).ok() - } else { - None - } - } - } - }) - .into() - } else { - quote_spanned! { - ty.span() => compile_error!("Expected tuple"); - } - .into() - } -} - -fn extract_precompile_name_and_prefix(type_: &Type) -> Option<(Ident, u64)> { - match type_ { - Type::Path(type_path) => - if let Some(path_segment) = type_path.path.segments.last() { - match path_segment.ident.to_string().as_ref() { - "PrecompileAt" => - extract_precompile_name_and_prefix_for_precompile_at(path_segment), - _ => None, - } - } else { - None - }, - _ => None, - } -} - -fn extract_precompile_name_and_prefix_for_precompile_at( - path_segment: &syn::PathSegment, -) -> Option<(Ident, u64)> { - if let syn::PathArguments::AngleBracketed(generics) = &path_segment.arguments { - let mut iter = generics.args.iter(); - if let ( - Some(GenericArgument::Type(Type::Path(type_path_1))), - Some(GenericArgument::Type(Type::Path(type_path_2))), - ) = (iter.next(), iter.next()) - { - if let (Some(path_segment_1), Some(path_segment_2)) = - (type_path_1.path.segments.last(), type_path_2.path.segments.last()) - { - if let syn::PathArguments::AngleBracketed(generics_) = &path_segment_1.arguments { - if let Some(GenericArgument::Const(Expr::Lit(lit))) = generics_.args.first() { - if let Lit::Int(int) = &lit.lit { - if let Ok(precompile_id) = int.base10_parse() { - if &path_segment_2.ident.to_string() == "CollectivePrecompile" { - if let Some(instance_ident) = - precompile_instance_ident(path_segment_2) - { - return Some((instance_ident, precompile_id)); - } - } else { - return Some((path_segment_2.ident.clone(), precompile_id)); - } - } - } - } - } - } - } - } - - None -} - -fn precompile_instance_ident(path_segment: &syn::PathSegment) -> Option { - if let syn::PathArguments::AngleBracketed(generics_) = &path_segment.arguments { - if let Some(GenericArgument::Type(Type::Path(instance_type_path))) = generics_.args.last() { - if let Some(instance_type) = instance_type_path.path.segments.last() { - return Some(instance_type.ident.clone()); - } - } - } - - None -} diff --git a/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.rs b/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.rs deleted file mode 100644 index ea2cd4621..000000000 --- a/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.rs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use precompile_utils::prelude::*; - -#[derive(solidity::Codec)] -struct Empty1; - -#[derive(solidity::Codec)] -struct Empty2 {} - -#[derive(solidity::Codec)] -struct Empty3 (); - -fn main() {} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.stderr b/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.stderr deleted file mode 100644 index 8c0a9d8ba..000000000 --- a/precompiles/utils/macro/tests/compile-fail/derive_codec/empty_struct.stderr +++ /dev/null @@ -1,17 +0,0 @@ -error: Codec can only be derived for structs with named fields - --> tests/compile-fail/derive_codec/empty_struct.rs:20:8 - | -20 | struct Empty1; - | ^^^^^^ - -error: Codec can only be derived for structs with at least one field - --> tests/compile-fail/derive_codec/empty_struct.rs:23:8 - | -23 | struct Empty2 {} - | ^^^^^^ - -error: Codec can only be derived for structs with named fields - --> tests/compile-fail/derive_codec/empty_struct.rs:26:8 - | -26 | struct Empty3 (); - | ^^^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.rs b/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.rs deleted file mode 100644 index de0a7a612..000000000 --- a/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use precompile_utils::prelude::*; - -#[derive(solidity::Codec)] -enum Test { - One, - Two(u8), - Three { test: u16 } -} - -fn main() {} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.stderr b/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.stderr deleted file mode 100644 index 42a65d4a1..000000000 --- a/precompiles/utils/macro/tests/compile-fail/derive_codec/enum.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: Codec can only be derived for structs with named fields - --> tests/compile-fail/derive_codec/enum.rs:20:6 - | -20 | enum Test { - | ^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs b/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs deleted file mode 100644 index d37fda0e7..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; -use fp_evm::PrecompileHandle; -use precompile_utils::EvmResult; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(test: &mut impl PrecompileHandle, arg: String) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.stderr deleted file mode 100644 index 1e87e3c77..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/arg-dont-impl-codec.stderr +++ /dev/null @@ -1,61 +0,0 @@ -error[E0277]: the trait bound `String: Codec` is not satisfied - --> tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs:26:43 - | -26 | fn foo(test: &mut impl PrecompileHandle, arg: String) -> EvmResult { - | ^^^ the trait `Codec` is not implemented for `String` - | - = help: the following other types implement trait `Codec`: - () - (TupleElement0, TupleElement1) - (TupleElement0, TupleElement1, TupleElement2) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) - and $N others -note: required by a bound in `Reader::<'inner>::read` - --> $WORKSPACE/precompiles/utils/src/solidity/codec/mod.rs - | - | pub fn read(&mut self) -> MayRevert { - | ^^^^^ required by this bound in `Reader::<'inner>::read` - -error[E0277]: the trait bound `String: Codec` is not satisfied - --> tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs:26:43 - | -26 | fn foo(test: &mut impl PrecompileHandle, arg: String) -> EvmResult { - | ^^^ the trait `Codec` is not implemented for `String` - | - = help: the following other types implement trait `Codec`: - () - (TupleElement0, TupleElement1) - (TupleElement0, TupleElement1, TupleElement2) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) - and $N others -note: required by a bound in `precompile_utils::solidity::codec::Writer::write` - --> $WORKSPACE/precompiles/utils/src/solidity/codec/mod.rs - | - | pub fn write(mut self, value: T) -> Self { - | ^^^^^ required by this bound in `Writer::write` - -error[E0277]: the trait bound `String: Codec` is not satisfied - --> tests/compile-fail/precompile/codec/arg-dont-impl-codec.rs:26:5 - | -26 | fn foo(test: &mut impl PrecompileHandle, arg: String) -> EvmResult { - | ^^^ the trait `Codec` is not implemented for `String` - | - = help: the following other types implement trait `Codec`: - () - (TupleElement0, TupleElement1) - (TupleElement0, TupleElement1, TupleElement2) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) - and $N others - = note: required for `(String,)` to implement `Codec` diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.rs b/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.rs deleted file mode 100644 index 1f0ab2aeb..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(test: &mut impl PrecompileHandle) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.stderr deleted file mode 100644 index 7a2758d0f..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/no-output.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: A precompile method must have a return type of `EvmResult<_>` (exposed by `precompile_utils`) - --> tests/compile-fail/precompile/codec/no-output.rs:24:2 - | -24 | fn foo(test: &mut impl PrecompileHandle) { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.rs b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.rs deleted file mode 100644 index bb7ffb723..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; -use fp_evm::PrecompileHandle; -use precompile_utils::EvmResult; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.stderr deleted file mode 100644 index 52ba67e65..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-dont-impl-codec.stderr +++ /dev/null @@ -1,21 +0,0 @@ -error[E0277]: the trait bound `String: Codec` is not satisfied - --> tests/compile-fail/precompile/codec/output-dont-impl-codec.rs:26:46 - | -26 | fn foo(test: &mut impl PrecompileHandle) -> EvmResult { - | ^^^^^^^^^ the trait `Codec` is not implemented for `String` - | - = help: the following other types implement trait `Codec`: - () - (TupleElement0, TupleElement1) - (TupleElement0, TupleElement1, TupleElement2) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) - (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) - and $N others -note: required by a bound in `encode_arguments` - --> $WORKSPACE/precompiles/utils/src/solidity/codec/mod.rs - | - | pub fn encode_arguments(value: T) -> Vec { - | ^^^^^ required by this bound in `encode_arguments` diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.rs b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.rs deleted file mode 100644 index 686f3bd04..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; -use fp_evm::PrecompileHandle; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(test: &mut impl PrecompileHandle) -> String { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.stderr deleted file mode 100644 index c104ae8fb..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-not-result.stderr +++ /dev/null @@ -1,7 +0,0 @@ -error[E0277]: the `?` operator can only be applied to values that implement `Try` - --> tests/compile-fail/precompile/codec/output-not-result.rs:25:46 - | -25 | fn foo(test: &mut impl PrecompileHandle) -> String { - | ^^^^^^ the `?` operator cannot be applied to type `String` - | - = help: the trait `Try` is not implemented for `String` diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.rs b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.rs deleted file mode 100644 index df90aadd7..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; -use fp_evm::PrecompileHandle; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(test: &mut impl PrecompileHandle) -> Result<(), String> { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.stderr deleted file mode 100644 index fa1fc8f71..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/codec/output-wrong-error-result.stderr +++ /dev/null @@ -1,13 +0,0 @@ -error[E0277]: `?` couldn't convert the error to `PrecompileFailure` - --> tests/compile-fail/precompile/codec/output-wrong-error-result.rs:25:51 - | -25 | fn foo(test: &mut impl PrecompileHandle) -> Result<(), String> { - | ^ the trait `From` is not implemented for `PrecompileFailure` - | - = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait - = help: the following other types implement trait `From`: - > - > - > - > - = note: required for `Result` to implement `FromResidual>` diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.rs deleted file mode 100644 index ca9faeaf1..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::discriminant] - fn discriminant(address: H160) -> u32 { - 42 - } - - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.stderr deleted file mode 100644 index 66d90708f..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/dont-return-option.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The discriminant function must return an Option<_> (no type alias) - --> tests/compile-fail/precompile/discriminant/dont-return-option.rs:25:36 - | -25 | fn discriminant(address: H160) -> u32 { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.rs deleted file mode 100644 index 9eb81c8d2..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::public("foo()")] - fn foo(_discriminant: u32, handle: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.stderr deleted file mode 100644 index b24b8dddc..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-fn.stderr +++ /dev/null @@ -1,7 +0,0 @@ -error: A PrecompileSet must have exactly one function tagged with `#[precompile::discriminant]` - --> tests/compile-fail/precompile/discriminant/missing-fn.rs:21:1 - | -21 | #[precompile_utils_macro::precompile] - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: this error originates in the attribute macro `precompile_utils_macro::precompile` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.rs deleted file mode 100644 index 534c9b2a2..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::discriminant] - fn discriminant() -> Option { - Some(42) - } - - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.stderr deleted file mode 100644 index 3026b5ce4..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/missing-param.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The discriminant function must only take the code address (H160) as parameter. - --> tests/compile-fail/precompile/discriminant/missing-param.rs:25:2 - | -25 | fn discriminant() -> Option { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.rs deleted file mode 100644 index 8d08a6afb..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::discriminant] - fn discriminant(address: H160) -> Option { - None - } - - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.stderr deleted file mode 100644 index dc6db9f60..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/return-incomplete-option.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The discriminant function must return an Option<_> (no type alias) - --> tests/compile-fail/precompile/discriminant/return-incomplete-option.rs:25:36 - | -25 | fn discriminant(address: H160) -> Option { - | ^^^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.rs deleted file mode 100644 index 63281a7a2..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::discriminant] - fn discriminant(address: H160, other: u32) -> Option { - Some(42) - } - - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.stderr deleted file mode 100644 index a1b6e8786..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/too-many-arguments.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The discriminant function must only take the code address (H160) as parameter. - --> tests/compile-fail/precompile/discriminant/too-many-arguments.rs:25:2 - | -25 | fn discriminant(address: H160, other: u32) -> Option { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.rs deleted file mode 100644 index 9a392560b..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::discriminant] - fn discriminant(address: H160) -> Option { - Some(42) - } - - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.stderr deleted file mode 100644 index 8d999769e..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-1.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: All discriminants must have the same type (found u64 before) - --> tests/compile-fail/precompile/discriminant/type-mismatch-1.rs:30:24 - | -30 | fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.rs b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.rs deleted file mode 100644 index 4ebfdd84a..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::public("foo()")] - fn foo(_discriminant: u32, test: &mut impl PrecompileHandle) -> EvmResult { - todo!() - } - - #[precompile::discriminant] - fn discriminant(address: H160) -> Option { - Some(42) - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.stderr deleted file mode 100644 index d5ed6750a..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/discriminant/type-mismatch-2.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: All discriminants must have the same type (found u32 before) - --> tests/compile-fail/precompile/discriminant/type-mismatch-2.rs:30:43 - | -30 | fn discriminant(address: H160) -> Option { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.rs b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.rs deleted file mode 100644 index 6aac2cd21..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct PrecompileSet(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl PrecompileSet { - #[precompile::discriminant] - #[precompile::view] - fn foo(address: H160) -> Option { - None - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.stderr deleted file mode 100644 index 93f4fb261..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The discriminant attribute must be the only precompile attribute of a function - --> tests/compile-fail/precompile/fn-modifiers/discriminant-multiple.rs:24:16 - | -24 | #[precompile::discriminant] - | ^^^^^^^^^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.rs b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.rs deleted file mode 100644 index 70d5ea920..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - #[precompile::view] - #[precompile::payable] - fn foo(_handle: &mut impl PrecompileHandle) -> EvmResult { - Ok(()) - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.stderr deleted file mode 100644 index 678199ab8..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: A precompile method can have at most one modifier (payable, view) - --> tests/compile-fail/precompile/fn-modifiers/multiple-modifiers.rs:25:16 - | -25 | #[precompile::payable] - | ^^^^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.rs b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.rs deleted file mode 100644 index f80194ee3..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::pre_check] - #[precompile::view] - fn foo(handle: &mut impl PrecompileHandle) -> EvmResult { - Ok(()) - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.stderr deleted file mode 100644 index 7f96f8b56..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: The pre_check attribute must be the only precompile attribute of a function - --> tests/compile-fail/precompile/fn-modifiers/pre-check-multiple.rs:23:16 - | -23 | #[precompile::pre_check] - | ^^^^^^^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.rs b/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.rs deleted file mode 100644 index 50bee5b97..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo() { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.stderr deleted file mode 100644 index 2760a7198..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/missing.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: Precompile methods must have at least 1 parameter (the PrecompileHandle) - --> tests/compile-fail/precompile/handle/missing.rs:24:2 - | -24 | fn foo() { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.rs b/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.rs deleted file mode 100644 index 14477da6b..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::public("foo()")] - fn foo(_: u32) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.stderr deleted file mode 100644 index 8f0a10d8f..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-missing.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: PrecompileSet methods must have at least 2 parameters (the precompile instance discriminant and the PrecompileHandle) - --> tests/compile-fail/precompile/handle/set-missing.rs:25:2 - | -25 | fn foo(_: u32) { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.rs b/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.rs deleted file mode 100644 index 0c33d1507..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl Precompile { - #[precompile::public("foo()")] - fn foo(_discriminant: u32, _handle: u32) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.stderr deleted file mode 100644 index bf62c1381..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/set-wrong-type.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: This parameter must have type `&mut impl PrecompileHandle` - --> tests/compile-fail/precompile/handle/set-wrong-type.rs:25:38 - | -25 | fn foo(_discriminant: u32, _handle: u32) { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.rs b/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.rs deleted file mode 100644 index 39efe0521..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::public("foo()")] - fn foo(_handle: u32) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.stderr deleted file mode 100644 index 12e06e488..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/handle/wrong-type.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: This parameter must have type `&mut impl PrecompileHandle` - --> tests/compile-fail/precompile/handle/wrong-type.rs:24:18 - | -24 | fn foo(_handle: u32) { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.rs b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.rs deleted file mode 100644 index 0c40d7158..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.rs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::pre_check] - fn pre_check() { - todo!() - } - - #[precompile::public("foo()")] - fn foo(_handle: &mut impl PrecompileHandle) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.stderr deleted file mode 100644 index 406806c51..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/no-parameter.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: Precompile methods must have at least 1 parameter (the PrecompileHandle) - --> tests/compile-fail/precompile/pre-check/no-parameter.rs:24:2 - | -24 | fn pre_check() { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.rs b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.rs deleted file mode 100644 index 1ad09c62f..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.rs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::pre_check] - fn pre_check(_: &mut impl PrecompileHandle, _: u32) { - todo!() - } - - #[precompile::public("foo()")] - fn foo(_handle: &mut impl PrecompileHandle) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.stderr deleted file mode 100644 index 474b5c9dc..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/too-many-parameters.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: Precompile pre_check method must have exactly 1 parameter (the PrecompileHandle) - --> tests/compile-fail/precompile/pre-check/too-many-parameters.rs:24:2 - | -24 | fn pre_check(_: &mut impl PrecompileHandle, _: u32) { - | ^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.rs b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.rs deleted file mode 100644 index d081415b1..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.rs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl Precompile { - #[precompile::pre_check] - fn pre_check(_: u32) { - todo!() - } - - #[precompile::public("foo()")] - fn foo(_handle: &mut impl PrecompileHandle) { - todo!() - } -} - -fn main() { } \ No newline at end of file diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.stderr deleted file mode 100644 index ea95fb0de..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/pre-check/wrong-parameter.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: This parameter must have type `&mut impl PrecompileHandle` - --> tests/compile-fail/precompile/pre-check/wrong-parameter.rs:24:18 - | -24 | fn pre_check(_: u32) { - | ^^^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.rs b/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.rs deleted file mode 100644 index c5670db2e..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use core::marker::PhantomData; - -pub struct Precompile(PhantomData); - -#[precompile_utils_macro::precompile] -impl> Precompile { - #[precompile::public("foo(bytes)")] - fn foo(handle: &mut impl PrecompileHandle, arg: BoundedBytes) -> EvmResult { - Ok(()) - } -} - -fn main() {} diff --git a/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.stderr b/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.stderr deleted file mode 100644 index 8b4daeb35..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile/test-gen/generic-arg.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error: impl type parameter is used in functions arguments. Arguments should not have a type - depending on a type parameter, unless it is a length bound for BoundedBytes, - BoundedString or alike, which doesn't affect the Solidity type. - - In that case, you must add a #[precompile::test_concrete_types(...)] attribute on the impl - block to provide concrete types that will be used to run the automatically generated tests - ensuring the Solidity function signatures are correct. - --> tests/compile-fail/precompile/test-gen/generic-arg.rs:24:63 - | -24 | fn foo(handle: &mut impl PrecompileHandle, arg: BoundedBytes) -> EvmResult { - | ^ diff --git a/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.rs b/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.rs deleted file mode 100644 index 838e53d28..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.rs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019-2023 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -struct Dummy; - -#[precompile_utils_macro::precompile_name_from_address] -type Precompiles = Dummy; - -fn main() {} diff --git a/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.stderr b/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.stderr deleted file mode 100644 index 343443a24..000000000 --- a/precompiles/utils/macro/tests/compile-fail/precompile_name/not_tuple.stderr +++ /dev/null @@ -1,5 +0,0 @@ -error: Expected tuple - --> tests/compile-fail/precompile_name/not_tuple.rs:20:20 - | -20 | type Precompiles = Dummy; - | ^^^^^ diff --git a/precompiles/utils/macro/tests/expand/precompile.expanded.rs b/precompiles/utils/macro/tests/expand/precompile.expanded.rs deleted file mode 100644 index c5c5d5f45..000000000 --- a/precompiles/utils/macro/tests/expand/precompile.expanded.rs +++ /dev/null @@ -1,383 +0,0 @@ -use { - core::marker::PhantomData, precompile_utils::{EvmResult, prelude::*}, - sp_core::{H160, U256}, - frame_support::pallet_prelude::{Get, ConstU32}, -}; -struct BatchPrecompile(PhantomData); -type GetCallDataLimit = ConstU32<42>; -type GetArrayLimit = ConstU32<42>; -impl BatchPrecompile -where - Runtime: Get, -{ - fn pre_check(handle: &mut impl PrecompileHandle) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("pre_check")), - ) - } - fn batch_some( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("batch_some")), - ) - } - fn batch_some_until_failure( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!( - "not yet implemented: {0}", format_args!("batch_some_until_failure") - ), - ) - } - fn batch_all( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("batch_all")), - ) - } - fn fallback(handle: &mut impl PrecompileHandle) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("fallback")), - ) - } -} -#[allow(non_camel_case_types)] -pub enum BatchPrecompileCall -where - Runtime: Get, -{ - batch_all { - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - }, - batch_some { - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - }, - batch_some_until_failure { - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - }, - fallback {}, - #[doc(hidden)] - __phantom(::core::marker::PhantomData<(Runtime)>, ::core::convert::Infallible), -} -impl BatchPrecompileCall -where - Runtime: Get, -{ - pub fn parse_call_data( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::RevertReason; - let input = handle.input(); - let selector = input - .get(0..4) - .map(|s| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(s); - u32::from_be_bytes(buffer) - }); - match selector { - Some(2044677020u32) => Self::_parse_batch_some(handle), - Some(2531431096u32) => Self::_parse_batch_all(handle), - Some(3473183175u32) => Self::_parse_batch_some_until_failure(handle), - _ => Self::_parse_fallback(handle), - } - } - fn _parse_batch_all( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(4usize)?; - Ok(Self::batch_all { - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - call_data: input.read().in_field("callData")?, - gas_limit: input.read().in_field("gasLimit")?, - }) - } - fn _parse_batch_some( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(4usize)?; - Ok(Self::batch_some { - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - call_data: input.read().in_field("callData")?, - gas_limit: input.read().in_field("gasLimit")?, - }) - } - fn _parse_batch_some_until_failure( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(4usize)?; - Ok(Self::batch_some_until_failure { - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - call_data: input.read().in_field("callData")?, - gas_limit: input.read().in_field("gasLimit")?, - }) - } - fn _parse_fallback( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::fallback {}) - } - pub fn execute( - self, - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - use ::precompile_utils::solidity::codec::Writer; - use ::fp_evm::{PrecompileOutput, ExitSucceed}; - let output = match self { - Self::batch_all { to, value, call_data, gas_limit } => { - let output = >::batch_all(handle, to, value, call_data, gas_limit); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::batch_some { to, value, call_data, gas_limit } => { - let output = >::batch_some(handle, to, value, call_data, gas_limit); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::batch_some_until_failure { to, value, call_data, gas_limit } => { - let output = >::batch_some_until_failure(handle, to, value, call_data, gas_limit); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::fallback {} => { - let output = >::fallback(handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - }; - Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output, - }) - } - pub fn supports_selector(selector: u32) -> bool { - match selector { - 2044677020u32 => true, - 2531431096u32 => true, - 3473183175u32 => true, - _ => false, - } - } - pub fn selectors() -> &'static [u32] { - &[2044677020u32, 2531431096u32, 3473183175u32] - } - pub fn batch_all_selectors() -> &'static [u32] { - &[2531431096u32] - } - pub fn batch_some_selectors() -> &'static [u32] { - &[2044677020u32] - } - pub fn batch_some_until_failure_selectors() -> &'static [u32] { - &[3473183175u32] - } - pub fn fallback_selectors() -> &'static [u32] { - &[] - } - pub fn encode(self) -> ::sp_std::vec::Vec { - use ::precompile_utils::solidity::codec::Writer; - match self { - Self::batch_all { to, value, call_data, gas_limit } => { - Writer::new_with_selector(2531431096u32) - .write(to) - .write(value) - .write(call_data) - .write(gas_limit) - .build() - } - Self::batch_some { to, value, call_data, gas_limit } => { - Writer::new_with_selector(2044677020u32) - .write(to) - .write(value) - .write(call_data) - .write(gas_limit) - .build() - } - Self::batch_some_until_failure { to, value, call_data, gas_limit } => { - Writer::new_with_selector(3473183175u32) - .write(to) - .write(value) - .write(call_data) - .write(gas_limit) - .build() - } - Self::fallback {} => Default::default(), - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - } - } -} -impl From> for ::sp_std::vec::Vec -where - Runtime: Get, -{ - fn from(a: BatchPrecompileCall) -> ::sp_std::vec::Vec { - a.encode() - } -} -impl ::fp_evm::Precompile for BatchPrecompile -where - Runtime: Get, -{ - fn execute( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - let _: () = >::pre_check(handle)?; - >::parse_call_data(handle)?.execute(handle) - } -} -#[allow(non_snake_case)] -pub(crate) fn __BatchPrecompile_test_solidity_signatures_inner() { - use ::precompile_utils::solidity::Codec; - match ( - &"(address[],uint256[],bytes[],uint64[])", - &<( - BoundedVec, - BoundedVec, - BoundedVec, GetArrayLimit>, - BoundedVec, - ) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "batch_all" - ), - ), - ); - } - } - }; - match ( - &"(address[],uint256[],bytes[],uint64[])", - &<( - BoundedVec, - BoundedVec, - BoundedVec, GetArrayLimit>, - BoundedVec, - ) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "batch_some" - ), - ), - ); - } - } - }; - match ( - &"(address[],uint256[],bytes[],uint64[])", - &<( - BoundedVec, - BoundedVec, - BoundedVec, GetArrayLimit>, - BoundedVec, - ) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "batch_some_until_failure" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "fallback" - ), - ), - ); - } - } - }; -} diff --git a/precompiles/utils/macro/tests/expand/precompile.rs b/precompiles/utils/macro/tests/expand/precompile.rs deleted file mode 100644 index fc1d76e78..000000000 --- a/precompiles/utils/macro/tests/expand/precompile.rs +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use { - core::marker::PhantomData, - precompile_utils::{EvmResult, prelude::*}, - sp_core::{H160, U256}, - frame_support::pallet_prelude::{Get, ConstU32}, -}; - -// Based on Batch with stripped code. - -struct BatchPrecompile(PhantomData); - -type GetCallDataLimit = ConstU32<42>; -type GetArrayLimit = ConstU32<42>; - - -#[precompile_utils_macro::precompile] -impl BatchPrecompile -where - Runtime: Get, -{ - #[precompile::pre_check] - fn pre_check(handle: &mut impl PrecompileHandle) -> EvmResult { - todo!("pre_check") - } - - #[precompile::public("batchSome(address[],uint256[],bytes[],uint64[])")] - fn batch_some( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - todo!("batch_some") - } - - #[precompile::public("batchSomeUntilFailure(address[],uint256[],bytes[],uint64[])")] - fn batch_some_until_failure( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - todo!("batch_some_until_failure") - } - - #[precompile::public("batchAll(address[],uint256[],bytes[],uint64[])")] - fn batch_all( - handle: &mut impl PrecompileHandle, - to: BoundedVec, - value: BoundedVec, - call_data: BoundedVec, GetArrayLimit>, - gas_limit: BoundedVec, - ) -> EvmResult { - todo!("batch_all") - } - - // additional function to check fallback - #[precompile::fallback] - fn fallback( - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("fallback") - } -} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/expand/precompile_name.expanded.rs b/precompiles/utils/macro/tests/expand/precompile_name.expanded.rs deleted file mode 100644 index 1d04b9ed7..000000000 --- a/precompiles/utils/macro/tests/expand/precompile_name.expanded.rs +++ /dev/null @@ -1,37 +0,0 @@ -struct PrecompileAt(PhantomData<(T, U, V)>); -struct AddressU64; -struct FooPrecompile(PhantomData); -struct BarPrecompile(PhantomData<(R, S)>); -struct MockCheck; -type Precompiles = ( - PrecompileAt, FooPrecompile>, - PrecompileAt, BarPrecompile, (MockCheck, MockCheck)>, -); -#[repr(u64)] -pub enum PrecompileName { - FooPrecompile = 1u64, - BarPrecompile = 2u64, -} -#[automatically_derived] -impl ::core::fmt::Debug for PrecompileName { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::write_str( - f, - match self { - PrecompileName::FooPrecompile => "FooPrecompile", - PrecompileName::BarPrecompile => "BarPrecompile", - }, - ) - } -} -impl PrecompileName { - pub fn from_address(address: sp_core::H160) -> Option { - let _u64 = address.to_low_u64_be(); - if address == sp_core::H160::from_low_u64_be(_u64) { - use num_enum::TryFromPrimitive; - Self::try_from_primitive(_u64).ok() - } else { - None - } - } -} diff --git a/precompiles/utils/macro/tests/expand/precompile_name.rs b/precompiles/utils/macro/tests/expand/precompile_name.rs deleted file mode 100644 index 3e14f9fb0..000000000 --- a/precompiles/utils/macro/tests/expand/precompile_name.rs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -// Few mock structs to check the macro. -struct PrecompileAt(PhantomData<(T, U, V)>); -struct AddressU64; -struct FooPrecompile(PhantomData); -struct BarPrecompile(PhantomData<(R, S)>); -struct MockCheck; - -#[precompile_utils_macro::precompile_name_from_address] -type Precompiles = ( - PrecompileAt, FooPrecompile>, - PrecompileAt, BarPrecompile, (MockCheck, MockCheck)>, -); diff --git a/precompiles/utils/macro/tests/expand/precompileset.expanded.rs b/precompiles/utils/macro/tests/expand/precompileset.expanded.rs deleted file mode 100644 index 59163757a..000000000 --- a/precompiles/utils/macro/tests/expand/precompileset.expanded.rs +++ /dev/null @@ -1,1426 +0,0 @@ -use { - core::marker::PhantomData, - precompile_utils::{EvmResult, prelude::*, testing::PrecompileTesterExt}, - sp_core::H160, -}; -struct PrecompileSet(PhantomData); -type Discriminant = u32; -type GetAssetsStringLimit = R; -type MockRuntime = ConstU32<42>; -impl PrecompileSet -where - Runtime: Get, -{ - /// PrecompileSet discrimiant. Allows to knows if the address maps to an asset id, - /// and if this is the case which one. - fn discriminant(address: H160) -> Option { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("discriminant")), - ) - } - fn total_supply( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("total_supply")), - ) - } - fn balance_of( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - who: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("balance_of")), - ) - } - fn allowance( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - spender: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("allowance")), - ) - } - fn approve( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - spender: Address, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("approve")), - ) - } - fn approve_inner( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: H160, - spender: H160, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("approve_inner")), - ) - } - fn transfer( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - to: Address, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("transfer")), - ) - } - fn transfer_from( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - from: Address, - to: Address, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("transfer_from")), - ) - } - fn name( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("name")), - ) - } - fn symbol( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("symbol")), - ) - } - fn decimals( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("decimals")), - ) - } - fn mint( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - to: Address, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("mint")), - ) - } - fn burn( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - from: Address, - value: U256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("burn")), - ) - } - fn freeze( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - account: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("freeze")), - ) - } - fn thaw( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - account: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("thaw")), - ) - } - fn freeze_asset( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("freeze_asset")), - ) - } - fn thaw_asset( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("thaw_asset")), - ) - } - fn transfer_ownership( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("transfer_ownership")), - ) - } - fn set_team( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - issuer: Address, - admin: Address, - freezer: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("set_team")), - ) - } - fn set_metadata( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - name: BoundedString>, - symbol: BoundedString>, - decimals: u8, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("set_metadata")), - ) - } - fn clear_metadata( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("clear_metadata")), - ) - } - fn eip2612_permit( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - spender: Address, - value: U256, - deadline: U256, - v: u8, - r: H256, - s: H256, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("eip2612_permit")), - ) - } - fn eip2612_nonces( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("eip2612_nonces")), - ) - } - fn eip2612_domain_separator( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - ::core::panicking::panic_fmt( - format_args!( - "not yet implemented: {0}", format_args!("eip2612_domain_separator") - ), - ) - } -} -#[allow(non_camel_case_types)] -pub enum PrecompileSetCall -where - Runtime: Get, -{ - allowance { owner: Address, spender: Address }, - approve { spender: Address, value: U256 }, - balance_of { who: Address }, - burn { from: Address, value: U256 }, - clear_metadata {}, - decimals {}, - eip2612_domain_separator {}, - eip2612_nonces { owner: Address }, - eip2612_permit { - owner: Address, - spender: Address, - value: U256, - deadline: U256, - v: u8, - r: H256, - s: H256, - }, - freeze { account: Address }, - freeze_asset {}, - mint { to: Address, value: U256 }, - name {}, - set_metadata { - name: BoundedString>, - symbol: BoundedString>, - decimals: u8, - }, - set_team { issuer: Address, admin: Address, freezer: Address }, - symbol {}, - thaw { account: Address }, - thaw_asset {}, - total_supply {}, - transfer { to: Address, value: U256 }, - transfer_from { from: Address, to: Address, value: U256 }, - transfer_ownership { owner: Address }, - #[doc(hidden)] - __phantom(::core::marker::PhantomData<(Runtime)>, ::core::convert::Infallible), -} -impl PrecompileSetCall -where - Runtime: Get, -{ - pub fn parse_call_data( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::RevertReason; - let input = handle.input(); - let selector = input - .get(0..4) - .map(|s| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(s); - u32::from_be_bytes(buffer) - }); - match selector { - Some(117300739u32) => Self::_parse_name(handle), - Some(157198259u32) => Self::_parse_approve(handle), - Some(404098525u32) => Self::_parse_total_supply(handle), - Some(484305945u32) => Self::_parse_thaw_asset(handle), - Some(599290589u32) => Self::_parse_transfer_from(handle), - Some(826074471u32) => Self::_parse_decimals(handle), - Some(910484757u32) => Self::_parse_eip2612_domain_separator(handle), - Some(936559348u32) => Self::_parse_set_metadata(handle), - Some(1086394137u32) => Self::_parse_mint(handle), - Some(1374431959u32) => Self::_parse_thaw_asset(handle), - Some(1587675670u32) => Self::_parse_thaw(handle), - Some(1804030401u32) => Self::_parse_freeze_asset(handle), - Some(1889567281u32) => Self::_parse_balance_of(handle), - Some(2127478272u32) => Self::_parse_eip2612_nonces(handle), - Some(2367676207u32) => Self::_parse_freeze(handle), - Some(2514000705u32) => Self::_parse_symbol(handle), - Some(2646777772u32) => Self::_parse_burn(handle), - Some(2835717307u32) => Self::_parse_transfer(handle), - Some(3352902745u32) => Self::_parse_set_team(handle), - Some(3552201630u32) => Self::_parse_clear_metadata(handle), - Some(3566436177u32) => Self::_parse_freeze_asset(handle), - Some(3573918927u32) => Self::_parse_eip2612_permit(handle), - Some(3714247998u32) => Self::_parse_allowance(handle), - Some(3999121892u32) => Self::_parse_set_metadata(handle), - Some(4021736498u32) => Self::_parse_clear_metadata(handle), - Some(4030008324u32) => Self::_parse_transfer_ownership(handle), - Some(4076725131u32) => Self::_parse_transfer_ownership(handle), - Some(4173303445u32) => Self::_parse_set_team(handle), - Some(_) => Err(RevertReason::UnknownSelector.into()), - None => Err(RevertReason::read_out_of_bounds("selector").into()), - } - } - fn _parse_allowance( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(2usize)?; - Ok(Self::allowance { - owner: input.read().in_field("owner")?, - spender: input.read().in_field("spender")?, - }) - } - fn _parse_approve( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(2usize)?; - Ok(Self::approve { - spender: input.read().in_field("spender")?, - value: input.read().in_field("value")?, - }) - } - fn _parse_balance_of( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(1usize)?; - Ok(Self::balance_of { - who: input.read().in_field("who")?, - }) - } - fn _parse_burn( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(2usize)?; - Ok(Self::burn { - from: input.read().in_field("from")?, - value: input.read().in_field("value")?, - }) - } - fn _parse_clear_metadata( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::clear_metadata {}) - } - fn _parse_decimals( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::decimals {}) - } - fn _parse_eip2612_domain_separator( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::View)?; - Ok(Self::eip2612_domain_separator {}) - } - fn _parse_eip2612_nonces( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::View)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(1usize)?; - Ok(Self::eip2612_nonces { - owner: input.read().in_field("owner")?, - }) - } - fn _parse_eip2612_permit( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(7usize)?; - Ok(Self::eip2612_permit { - owner: input.read().in_field("owner")?, - spender: input.read().in_field("spender")?, - value: input.read().in_field("value")?, - deadline: input.read().in_field("deadline")?, - v: input.read().in_field("v")?, - r: input.read().in_field("r")?, - s: input.read().in_field("s")?, - }) - } - fn _parse_freeze( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(1usize)?; - Ok(Self::freeze { - account: input.read().in_field("account")?, - }) - } - fn _parse_freeze_asset( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::freeze_asset {}) - } - fn _parse_mint( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(2usize)?; - Ok(Self::mint { - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - }) - } - fn _parse_name( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::name {}) - } - fn _parse_set_metadata( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(3usize)?; - Ok(Self::set_metadata { - name: input.read().in_field("name")?, - symbol: input.read().in_field("symbol")?, - decimals: input.read().in_field("decimals")?, - }) - } - fn _parse_set_team( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(3usize)?; - Ok(Self::set_team { - issuer: input.read().in_field("issuer")?, - admin: input.read().in_field("admin")?, - freezer: input.read().in_field("freezer")?, - }) - } - fn _parse_symbol( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::symbol {}) - } - fn _parse_thaw( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(1usize)?; - Ok(Self::thaw { - account: input.read().in_field("account")?, - }) - } - fn _parse_thaw_asset( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::thaw_asset {}) - } - fn _parse_total_supply( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::total_supply {}) - } - fn _parse_transfer( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(2usize)?; - Ok(Self::transfer { - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - }) - } - fn _parse_transfer_from( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(3usize)?; - Ok(Self::transfer_from { - from: input.read().in_field("from")?, - to: input.read().in_field("to")?, - value: input.read().in_field("value")?, - }) - } - fn _parse_transfer_ownership( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - let mut input = handle.read_after_selector()?; - input.expect_arguments(1usize)?; - Ok(Self::transfer_ownership { - owner: input.read().in_field("owner")?, - }) - } - pub fn execute( - self, - discriminant: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - use ::precompile_utils::solidity::codec::Writer; - use ::fp_evm::{PrecompileOutput, ExitSucceed}; - let output = match self { - Self::allowance { owner, spender } => { - let output = >::allowance(discriminant, handle, owner, spender); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::approve { spender, value } => { - let output = >::approve(discriminant, handle, spender, value); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::balance_of { who } => { - let output = >::balance_of(discriminant, handle, who); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::burn { from, value } => { - let output = >::burn(discriminant, handle, from, value); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::clear_metadata {} => { - let output = >::clear_metadata(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::decimals {} => { - let output = >::decimals(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::eip2612_domain_separator {} => { - let output = >::eip2612_domain_separator(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::eip2612_nonces { owner } => { - let output = >::eip2612_nonces(discriminant, handle, owner); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::eip2612_permit { owner, spender, value, deadline, v, r, s } => { - let output = >::eip2612_permit( - discriminant, - handle, - owner, - spender, - value, - deadline, - v, - r, - s, - ); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::freeze { account } => { - let output = >::freeze(discriminant, handle, account); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::freeze_asset {} => { - let output = >::freeze_asset(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::mint { to, value } => { - let output = >::mint(discriminant, handle, to, value); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::name {} => { - let output = >::name(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::set_metadata { name, symbol, decimals } => { - let output = >::set_metadata(discriminant, handle, name, symbol, decimals); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::set_team { issuer, admin, freezer } => { - let output = >::set_team(discriminant, handle, issuer, admin, freezer); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::symbol {} => { - let output = >::symbol(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::thaw { account } => { - let output = >::thaw(discriminant, handle, account); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::thaw_asset {} => { - let output = >::thaw_asset(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::total_supply {} => { - let output = >::total_supply(discriminant, handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::transfer { to, value } => { - let output = >::transfer(discriminant, handle, to, value); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::transfer_from { from, to, value } => { - let output = >::transfer_from(discriminant, handle, from, to, value); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::transfer_ownership { owner } => { - let output = >::transfer_ownership(discriminant, handle, owner); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - }; - Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output, - }) - } - pub fn supports_selector(selector: u32) -> bool { - match selector { - 117300739u32 => true, - 157198259u32 => true, - 404098525u32 => true, - 484305945u32 => true, - 599290589u32 => true, - 826074471u32 => true, - 910484757u32 => true, - 936559348u32 => true, - 1086394137u32 => true, - 1374431959u32 => true, - 1587675670u32 => true, - 1804030401u32 => true, - 1889567281u32 => true, - 2127478272u32 => true, - 2367676207u32 => true, - 2514000705u32 => true, - 2646777772u32 => true, - 2835717307u32 => true, - 3352902745u32 => true, - 3552201630u32 => true, - 3566436177u32 => true, - 3573918927u32 => true, - 3714247998u32 => true, - 3999121892u32 => true, - 4021736498u32 => true, - 4030008324u32 => true, - 4076725131u32 => true, - 4173303445u32 => true, - _ => false, - } - } - pub fn selectors() -> &'static [u32] { - &[ - 117300739u32, - 157198259u32, - 404098525u32, - 484305945u32, - 599290589u32, - 826074471u32, - 910484757u32, - 936559348u32, - 1086394137u32, - 1374431959u32, - 1587675670u32, - 1804030401u32, - 1889567281u32, - 2127478272u32, - 2367676207u32, - 2514000705u32, - 2646777772u32, - 2835717307u32, - 3352902745u32, - 3552201630u32, - 3566436177u32, - 3573918927u32, - 3714247998u32, - 3999121892u32, - 4021736498u32, - 4030008324u32, - 4076725131u32, - 4173303445u32, - ] - } - pub fn allowance_selectors() -> &'static [u32] { - &[3714247998u32] - } - pub fn approve_selectors() -> &'static [u32] { - &[157198259u32] - } - pub fn balance_of_selectors() -> &'static [u32] { - &[1889567281u32] - } - pub fn burn_selectors() -> &'static [u32] { - &[2646777772u32] - } - pub fn clear_metadata_selectors() -> &'static [u32] { - &[4021736498u32, 3552201630u32] - } - pub fn decimals_selectors() -> &'static [u32] { - &[826074471u32] - } - pub fn eip2612_domain_separator_selectors() -> &'static [u32] { - &[910484757u32] - } - pub fn eip2612_nonces_selectors() -> &'static [u32] { - &[2127478272u32] - } - pub fn eip2612_permit_selectors() -> &'static [u32] { - &[3573918927u32] - } - pub fn freeze_selectors() -> &'static [u32] { - &[2367676207u32] - } - pub fn freeze_asset_selectors() -> &'static [u32] { - &[3566436177u32, 1804030401u32] - } - pub fn mint_selectors() -> &'static [u32] { - &[1086394137u32] - } - pub fn name_selectors() -> &'static [u32] { - &[117300739u32] - } - pub fn set_metadata_selectors() -> &'static [u32] { - &[936559348u32, 3999121892u32] - } - pub fn set_team_selectors() -> &'static [u32] { - &[3352902745u32, 4173303445u32] - } - pub fn symbol_selectors() -> &'static [u32] { - &[2514000705u32] - } - pub fn thaw_selectors() -> &'static [u32] { - &[1587675670u32] - } - pub fn thaw_asset_selectors() -> &'static [u32] { - &[1374431959u32, 484305945u32] - } - pub fn total_supply_selectors() -> &'static [u32] { - &[404098525u32] - } - pub fn transfer_selectors() -> &'static [u32] { - &[2835717307u32] - } - pub fn transfer_from_selectors() -> &'static [u32] { - &[599290589u32] - } - pub fn transfer_ownership_selectors() -> &'static [u32] { - &[4076725131u32, 4030008324u32] - } - pub fn encode(self) -> ::sp_std::vec::Vec { - use ::precompile_utils::solidity::codec::Writer; - match self { - Self::allowance { owner, spender } => { - Writer::new_with_selector(3714247998u32) - .write(owner) - .write(spender) - .build() - } - Self::approve { spender, value } => { - Writer::new_with_selector(157198259u32) - .write(spender) - .write(value) - .build() - } - Self::balance_of { who } => { - Writer::new_with_selector(1889567281u32).write(who).build() - } - Self::burn { from, value } => { - Writer::new_with_selector(2646777772u32).write(from).write(value).build() - } - Self::clear_metadata {} => Writer::new_with_selector(4021736498u32).build(), - Self::decimals {} => Writer::new_with_selector(826074471u32).build(), - Self::eip2612_domain_separator {} => { - Writer::new_with_selector(910484757u32).build() - } - Self::eip2612_nonces { owner } => { - Writer::new_with_selector(2127478272u32).write(owner).build() - } - Self::eip2612_permit { owner, spender, value, deadline, v, r, s } => { - Writer::new_with_selector(3573918927u32) - .write(owner) - .write(spender) - .write(value) - .write(deadline) - .write(v) - .write(r) - .write(s) - .build() - } - Self::freeze { account } => { - Writer::new_with_selector(2367676207u32).write(account).build() - } - Self::freeze_asset {} => Writer::new_with_selector(3566436177u32).build(), - Self::mint { to, value } => { - Writer::new_with_selector(1086394137u32).write(to).write(value).build() - } - Self::name {} => Writer::new_with_selector(117300739u32).build(), - Self::set_metadata { name, symbol, decimals } => { - Writer::new_with_selector(936559348u32) - .write(name) - .write(symbol) - .write(decimals) - .build() - } - Self::set_team { issuer, admin, freezer } => { - Writer::new_with_selector(3352902745u32) - .write(issuer) - .write(admin) - .write(freezer) - .build() - } - Self::symbol {} => Writer::new_with_selector(2514000705u32).build(), - Self::thaw { account } => { - Writer::new_with_selector(1587675670u32).write(account).build() - } - Self::thaw_asset {} => Writer::new_with_selector(1374431959u32).build(), - Self::total_supply {} => Writer::new_with_selector(404098525u32).build(), - Self::transfer { to, value } => { - Writer::new_with_selector(2835717307u32).write(to).write(value).build() - } - Self::transfer_from { from, to, value } => { - Writer::new_with_selector(599290589u32) - .write(from) - .write(to) - .write(value) - .build() - } - Self::transfer_ownership { owner } => { - Writer::new_with_selector(4076725131u32).write(owner).build() - } - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - } - } -} -impl From> for ::sp_std::vec::Vec -where - Runtime: Get, -{ - fn from(a: PrecompileSetCall) -> ::sp_std::vec::Vec { - a.encode() - } -} -impl ::fp_evm::PrecompileSet for PrecompileSet -where - Runtime: Get, -{ - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option<::precompile_utils::EvmResult<::fp_evm::PrecompileOutput>> { - let discriminant = match >::discriminant(handle.code_address()) { - Some(d) => d, - None => return None, - }; - Some( - >::parse_call_data(handle) - .and_then(|call| call.execute(discriminant, handle)), - ) - } - fn is_precompile(&self, address: H160, gas: u64) -> ::fp_evm::IsPrecompileResult { - >::discriminant(address, gas).is_some() - } -} -#[allow(non_snake_case)] -pub(crate) fn __PrecompileSet_test_solidity_signatures_inner() -where - Runtime: Get, -{ - use ::precompile_utils::solidity::Codec; - match (&"(address,address)", &<(Address, Address) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "allowance" - ), - ), - ); - } - } - }; - match (&"(address,uint256)", &<(Address, U256) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "approve" - ), - ), - ); - } - } - }; - match (&"(address)", &<(Address,) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "balance_of" - ), - ), - ); - } - } - }; - match (&"(address,uint256)", &<(Address, U256) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "burn" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "clear_metadata" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "decimals" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "eip2612_domain_separator" - ), - ), - ); - } - } - }; - match (&"(address)", &<(Address,) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "eip2612_nonces" - ), - ), - ); - } - } - }; - match ( - &"(address,address,uint256,uint256,uint8,bytes32,bytes32)", - &<(Address, Address, U256, U256, u8, H256, H256) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "eip2612_permit" - ), - ), - ); - } - } - }; - match (&"(address)", &<(Address,) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "freeze" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "freeze_asset" - ), - ), - ); - } - } - }; - match (&"(address,uint256)", &<(Address, U256) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "mint" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "name" - ), - ), - ); - } - } - }; - match ( - &"(string,string,uint8)", - &<( - BoundedString>, - BoundedString>, - u8, - ) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "set_metadata" - ), - ), - ); - } - } - }; - match ( - &"(address,address,address)", - &<(Address, Address, Address) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "set_team" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "symbol" - ), - ), - ); - } - } - }; - match (&"(address)", &<(Address,) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "thaw" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "thaw_asset" - ), - ), - ); - } - } - }; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "total_supply" - ), - ), - ); - } - } - }; - match (&"(address,uint256)", &<(Address, U256) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "transfer" - ), - ), - ); - } - } - }; - match ( - &"(address,address,uint256)", - &<(Address, Address, U256) as Codec>::signature(), - ) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "transfer_from" - ), - ), - ); - } - } - }; - match (&"(address)", &<(Address,) as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "transfer_ownership" - ), - ), - ); - } - } - }; -} diff --git a/precompiles/utils/macro/tests/expand/precompileset.rs b/precompiles/utils/macro/tests/expand/precompileset.rs deleted file mode 100644 index 8edb5edd8..000000000 --- a/precompiles/utils/macro/tests/expand/precompileset.rs +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use { - core::marker::PhantomData, - precompile_utils::{EvmResult, prelude::*, testing::PrecompileTesterExt}, - sp_core::H160 -}; - -// Based on Erc20AssetsPrecompileSet with stripped code. - -struct PrecompileSet(PhantomData); - -type Discriminant = u32; -type GetAssetsStringLimit = R; -type MockRuntime = ConstU32<42>; - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -#[precompile::test_concrete_types(MockRuntime)] -impl PrecompileSet -where - Runtime: Get -{ - /// PrecompileSet discrimiant. Allows to knows if the address maps to an asset id, - /// and if this is the case which one. - #[precompile::discriminant] - fn discriminant(address: H160) -> Option { - todo!("discriminant") - } - - #[precompile::public("totalSupply()")] - fn total_supply( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("total_supply") - } - - #[precompile::public("balanceOf(address)")] - fn balance_of( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - who: Address, - ) -> EvmResult { - todo!("balance_of") - } - - #[precompile::public("allowance(address,address)")] - fn allowance( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - spender: Address, - ) -> EvmResult { - todo!("allowance") - } - - #[precompile::public("approve(address,uint256)")] - fn approve( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - spender: Address, - value: U256, - ) -> EvmResult { - todo!("approve") - } - - fn approve_inner( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: H160, - spender: H160, - value: U256, - ) -> EvmResult { - todo!("approve_inner") - } - - #[precompile::public("transfer(address,uint256)")] - fn transfer( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - to: Address, - value: U256, - ) -> EvmResult { - todo!("transfer") - } - - #[precompile::public("transferFrom(address,address,uint256)")] - fn transfer_from( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - from: Address, - to: Address, - value: U256, - ) -> EvmResult { - todo!("transfer_from") - } - - #[precompile::public("name()")] - fn name( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("name") - } - - #[precompile::public("symbol()")] - fn symbol( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("symbol") - } - - #[precompile::public("decimals()")] - fn decimals( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("decimals") - } - - // From here: only for locals, we need to check whether we are in local assets otherwise fail - #[precompile::public("mint(address,uint256)")] - fn mint( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - to: Address, - value: U256, - ) -> EvmResult { - todo!("mint") - } - - #[precompile::public("burn(address,uint256)")] - fn burn( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - from: Address, - value: U256, - ) -> EvmResult { - todo!("burn") - } - - #[precompile::public("freeze(address)")] - fn freeze( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - account: Address, - ) -> EvmResult { - todo!("freeze") - } - - #[precompile::public("thaw(address)")] - fn thaw( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - account: Address, - ) -> EvmResult { - todo!("thaw") - } - - #[precompile::public("freezeAsset()")] - #[precompile::public("freeze_asset()")] - fn freeze_asset( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("freeze_asset") - } - - #[precompile::public("thawAsset()")] - #[precompile::public("thaw_asset()")] - fn thaw_asset( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("thaw_asset") - } - - #[precompile::public("transferOwnership(address)")] - #[precompile::public("transfer_ownership(address)")] - fn transfer_ownership( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - ) -> EvmResult { - todo!("transfer_ownership") - } - - #[precompile::public("setTeam(address,address,address)")] - #[precompile::public("set_team(address,address,address)")] - fn set_team( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - issuer: Address, - admin: Address, - freezer: Address, - ) -> EvmResult { - todo!("set_team") - } - - #[precompile::public("setMetadata(string,string,uint8)")] - #[precompile::public("set_metadata(string,string,uint8)")] - fn set_metadata( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - name: BoundedString>, - symbol: BoundedString>, - decimals: u8, - ) -> EvmResult { - todo!("set_metadata") - } - - #[precompile::public("clearMetadata()")] - #[precompile::public("clear_metadata()")] - fn clear_metadata( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("clear_metadata") - } - - #[precompile::public("permit(address,address,uint256,uint256,uint8,bytes32,bytes32)")] - fn eip2612_permit( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - spender: Address, - value: U256, - deadline: U256, - v: u8, - r: H256, - s: H256, - ) -> EvmResult { - todo!("eip2612_permit") - } - - #[precompile::public("nonces(address)")] - #[precompile::view] - fn eip2612_nonces( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - owner: Address, - ) -> EvmResult { - todo!("eip2612_nonces") - } - - #[precompile::public("DOMAIN_SEPARATOR()")] - #[precompile::view] - fn eip2612_domain_separator( - asset_id: Discriminant, - handle: &mut impl PrecompileHandle, - ) -> EvmResult { - todo!("eip2612_domain_separator") - } -} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/expand/returns_tuple.expanded.rs b/precompiles/utils/macro/tests/expand/returns_tuple.expanded.rs deleted file mode 100644 index 1f4f46425..000000000 --- a/precompiles/utils/macro/tests/expand/returns_tuple.expanded.rs +++ /dev/null @@ -1,128 +0,0 @@ -use { - precompile_utils::{EvmResult, prelude::*}, - sp_core::{H160, U256}, -}; -struct ExamplePrecompile; -impl ExamplePrecompile { - fn example( - handle: &mut impl PrecompileHandle, - ) -> EvmResult<(Address, U256, UnboundedBytes)> { - ::core::panicking::panic_fmt( - format_args!("not yet implemented: {0}", format_args!("example")), - ) - } -} -#[allow(non_camel_case_types)] -pub enum ExamplePrecompileCall { - example {}, - #[doc(hidden)] - __phantom(::core::marker::PhantomData<()>, ::core::convert::Infallible), -} -impl ExamplePrecompileCall { - pub fn parse_call_data( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::RevertReason; - let input = handle.input(); - let selector = input - .get(0..4) - .map(|s| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(s); - u32::from_be_bytes(buffer) - }); - match selector { - Some(1412775727u32) => Self::_parse_example(handle), - Some(_) => Err(RevertReason::UnknownSelector.into()), - None => Err(RevertReason::read_out_of_bounds("selector").into()), - } - } - fn _parse_example( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult { - use ::precompile_utils::solidity::revert::InjectBacktrace; - use ::precompile_utils::solidity::modifier::FunctionModifier; - use ::precompile_utils::evm::handle::PrecompileHandleExt; - handle.check_function_modifier(FunctionModifier::NonPayable)?; - Ok(Self::example {}) - } - pub fn execute( - self, - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - use ::precompile_utils::solidity::codec::Writer; - use ::fp_evm::{PrecompileOutput, ExitSucceed}; - let output = match self { - Self::example {} => { - let output = ::example(handle); - ::precompile_utils::solidity::encode_return_value(output?) - } - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - }; - Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output, - }) - } - pub fn supports_selector(selector: u32) -> bool { - match selector { - 1412775727u32 => true, - _ => false, - } - } - pub fn selectors() -> &'static [u32] { - &[1412775727u32] - } - pub fn example_selectors() -> &'static [u32] { - &[1412775727u32] - } - pub fn encode(self) -> ::sp_std::vec::Vec { - use ::precompile_utils::solidity::codec::Writer; - match self { - Self::example {} => Writer::new_with_selector(1412775727u32).build(), - Self::__phantom(_, _) => { - ::core::panicking::panic_fmt( - format_args!("__phantom variant should not be used"), - ) - } - } - } -} -impl From for ::sp_std::vec::Vec { - fn from(a: ExamplePrecompileCall) -> ::sp_std::vec::Vec { - a.encode() - } -} -impl ::fp_evm::Precompile for ExamplePrecompile { - fn execute( - handle: &mut impl PrecompileHandle, - ) -> ::precompile_utils::EvmResult<::fp_evm::PrecompileOutput> { - ::parse_call_data(handle)?.execute(handle) - } -} -#[allow(non_snake_case)] -pub(crate) fn __ExamplePrecompile_test_solidity_signatures_inner() { - use ::precompile_utils::solidity::Codec; - match (&"()", &<() as Codec>::signature()) { - (left_val, right_val) => { - if !(*left_val == *right_val) { - let kind = ::core::panicking::AssertKind::Eq; - ::core::panicking::assert_failed( - kind, - &*left_val, - &*right_val, - ::core::option::Option::Some( - format_args!( - "{0} function signature doesn\'t match (left: attribute, right: computed from Rust types)", - "example" - ), - ), - ); - } - } - }; -} diff --git a/precompiles/utils/macro/tests/expand/returns_tuple.rs b/precompiles/utils/macro/tests/expand/returns_tuple.rs deleted file mode 100644 index b87fe1220..000000000 --- a/precompiles/utils/macro/tests/expand/returns_tuple.rs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use { - precompile_utils::{EvmResult, prelude::*}, - sp_core::{H160, U256}, -}; - -struct ExamplePrecompile; - -#[precompile_utils_macro::precompile] -impl ExamplePrecompile -{ - #[precompile::public("example()")] - fn example( - handle: &mut impl PrecompileHandle, - ) -> EvmResult<(Address, U256, UnboundedBytes)> { - todo!("example") - } -} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/pass/derive_codec.rs b/precompiles/utils/macro/tests/pass/derive_codec.rs deleted file mode 100644 index c23f5611d..000000000 --- a/precompiles/utils/macro/tests/pass/derive_codec.rs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use precompile_utils::solidity::codec::{Address, Codec, Reader, Writer}; -use sp_core::H160; - -#[derive(Debug, Clone, PartialEq, Eq, Codec)] -struct StaticSize { - id: u32, - address: Address, -} - -#[derive(Debug, Clone, PartialEq, Eq, Codec)] -struct DynamicSize { - id: u32, - array: Vec, -} - -fn main() { - // static - let static_size = StaticSize { - id: 5, - address: H160::repeat_byte(0x42).into(), - }; - - assert!(StaticSize::has_static_size()); - assert_eq!(&StaticSize::signature(), "(uint32,address)"); - - let bytes = Writer::new().write(static_size.clone()).build(); - assert_eq!( - bytes, - Writer::new() - .write(5u32) - .write(Address::from(H160::repeat_byte(0x42))) - .build() - ); - - let mut reader = Reader::new(&bytes); - let static_size_2: StaticSize = reader.read().expect("to decode properly"); - assert_eq!(static_size_2, static_size); - - // dynamic - let dynamic_size = DynamicSize { - id: 6, - array: vec![10u32, 15u32], - }; - assert!(!DynamicSize::::has_static_size()); - assert_eq!(DynamicSize::::signature(), "(uint32,uint32[])"); - - let bytes = Writer::new().write(dynamic_size.clone()).build(); - assert_eq!( - bytes, - Writer::new() - .write(0x20u32) // offset of struct - .write(6u32) // id - .write(0x40u32) // array offset - .write(2u32) // array size - .write(10u32) // array[0] - .write(15u32) // array[1] - .build() - ); - - let mut reader = Reader::new(&bytes); - let dynamic_size_2: DynamicSize = reader.read().expect("to decode properly"); - assert_eq!(dynamic_size_2, dynamic_size); -} diff --git a/precompiles/utils/macro/tests/pass/precompile_fn_modifiers.rs b/precompiles/utils/macro/tests/pass/precompile_fn_modifiers.rs deleted file mode 100644 index 7437a11ea..000000000 --- a/precompiles/utils/macro/tests/pass/precompile_fn_modifiers.rs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -use { - precompile_utils::{EvmResult, prelude::*, testing::PrecompileTesterExt}, - sp_core::H160 -}; - -pub struct PrecompileSet; - -#[precompile_utils_macro::precompile] -#[precompile::precompile_set] -impl PrecompileSet { - #[precompile::discriminant] - fn discriminant(_: H160) -> Option<()> { - Some(()) - } - - #[precompile::public("default()")] - fn default(_: (), _: &mut impl PrecompileHandle) -> EvmResult { - Ok(()) - } - - #[precompile::public("view()")] - #[precompile::view] - fn view(_: (), _: &mut impl PrecompileHandle) -> EvmResult { - Ok(()) - } - - #[precompile::public("payable()")] - #[precompile::payable] - fn payable(_: (), _: &mut impl PrecompileHandle) -> EvmResult { - Ok(()) - } -} - -fn main() { - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::default {} - ).with_value(1) - .execute_reverts(|output| output == b"Function is not payable"); - - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::default {} - ).with_static_call(true) - .execute_reverts(|output| output == b"Can't call non-static function in static context"); - - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::view {} - ).with_value(1) - .execute_reverts(|output| output == b"Function is not payable"); - - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::view {} - ).with_static_call(true) - .execute_returns(()); - - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::payable {} - ).with_value(1) - .execute_returns(()); - - PrecompileSet.prepare_test( - [0u8;20], - [0u8;20], - PrecompileSetCall::payable {} - ).with_static_call(true) - .execute_reverts(|output| output == b"Can't call non-static function in static context"); -} \ No newline at end of file diff --git a/precompiles/utils/macro/tests/tests.rs b/precompiles/utils/macro/tests/tests.rs deleted file mode 100644 index 219a58ff2..000000000 --- a/precompiles/utils/macro/tests/tests.rs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use sha3::{Digest, Keccak256}; - -#[test] -fn test_keccak256() { - assert_eq!(&precompile_utils_macro::keccak256!(""), Keccak256::digest(b"").as_slice(),); - assert_eq!( - &precompile_utils_macro::keccak256!("toto()"), - Keccak256::digest(b"toto()").as_slice(), - ); - assert_ne!( - &precompile_utils_macro::keccak256!("toto()"), - Keccak256::digest(b"tata()").as_slice(), - ); -} - -#[test] -#[ignore] -fn ui() { - let t = trybuild::TestCases::new(); - t.compile_fail("tests/compile-fail/**/*.rs"); - t.pass("tests/pass/**/*.rs"); -} - -// Cargo expand is not supported on stable rust -#[test] -#[ignore] -fn expand() { - // Use `expand` to update the expansions - // Replace it with `expand_without_refresh` afterward so that - // CI checks the expension don't change - - // macrotest::expand("tests/expand/**/*.rs"); - macrotest::expand_without_refresh("tests/expand/**/*.rs"); -} diff --git a/precompiles/utils/src/account.rs b/precompiles/utils/src/account.rs new file mode 100644 index 000000000..b05b226ae --- /dev/null +++ b/precompiles/utils/src/account.rs @@ -0,0 +1,406 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Moonbeam is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Moonbeam. If not, see . + +use pallet_evm::AddressMapping; +use parity_scale_codec::DecodeWithMemTracking; +use peaq_primitives_xcm::AssetId as PeaqAssetId; +use scale_info::TypeInfo; +use serde::{Deserialize, Serialize}; +use sp_core::{Decode, Encode, MaxEncodedLen, H160, H256}; + +#[derive( + Eq, + PartialEq, + Ord, + PartialOrd, + Clone, + Encode, + Decode, + Debug, + MaxEncodedLen, + TypeInfo, + Serialize, + Deserialize, + derive_more::Display, + DecodeWithMemTracking +)] +pub struct MockAccount(pub H160); + +impl MockAccount { + pub fn from_u64(v: u64) -> Self { + H160::from_low_u64_be(v).into() + } + + pub fn zero() -> Self { + H160::zero().into() + } + + pub fn has_prefix(&self, prefix: &[u8]) -> bool { + &self.0[0..4] == prefix + } + + pub fn has_prefix_u32(&self, prefix: u32) -> bool { + self.0[0..4] == prefix.to_be_bytes() + } + + pub fn without_prefix(&self) -> u128 { + u128::from_be_bytes(<[u8; 16]>::try_from(&self.0[4..20]).expect("slice have len 16")) + } +} + +impl From for H160 { + fn from(account: MockAccount) -> H160 { + account.0 + } +} + +impl From for [u8; 20] { + fn from(account: MockAccount) -> [u8; 20] { + let x: H160 = account.into(); + x.into() + } +} + +impl From for H256 { + fn from(x: MockAccount) -> H256 { + let x: H160 = x.into(); + x.into() + } +} + +impl From for MockAccount { + fn from(address: H160) -> MockAccount { + MockAccount(address) + } +} + +impl From<[u8; 20]> for MockAccount { + fn from(address: [u8; 20]) -> MockAccount { + let x: H160 = address.into(); + MockAccount(x) + } +} + +impl AddressMapping for MockAccount { + fn into_account_id(address: H160) -> MockAccount { + address.into() + } +} + +impl sp_runtime::traits::Convert for MockAccount { + fn convert(address: H160) -> MockAccount { + address.into() + } +} + +#[macro_export] +macro_rules! mock_account { + ($name:ident, $convert:expr) => { + pub struct $name; + mock_account!(# $name, $convert); + }; + ($name:ident ( $($field:ty),* ), $convert:expr) => { + pub struct $name($(pub $field),*); + mock_account!(# $name, $convert); + }; + (# $name:ident, $convert:expr) => { + impl From<$name> for MockAccount { + fn from(value: $name) -> MockAccount { + let convert = $convert; + convert(value) + } + } + + impl From<$name> for sp_core::H160 { + fn from(value: $name) -> sp_core::H160 { + MockAccount::from(value).into() + } + } + + impl From<$name> for sp_core::H256 { + fn from(value: $name) -> sp_core::H256 { + MockAccount::from(value).into() + } + } + }; +} + +mock_account!(Zero, |_| MockAccount::zero()); +mock_account!(Alice, |_| H160::repeat_byte(0xAA).into()); +mock_account!(Bob, |_| H160::repeat_byte(0xBB).into()); +mock_account!(Charlie, |_| H160::repeat_byte(0xCC).into()); +mock_account!(David, |_| H160::repeat_byte(0xDD).into()); + +mock_account!(Precompile1, |_| MockAccount::from_u64(1)); + +mock_account!(CryptoAlith, |_| H160::from(hex_literal::hex!( + "f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac" +)) +.into()); +mock_account!(CryptoBaltathar, |_| H160::from(hex_literal::hex!( + "3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0" +)) +.into()); +mock_account!(CryptoCarleth, |_| H160::from(hex_literal::hex!( + "798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc" +)) +.into()); + +mock_account!(AddressInPrefixedSet(u32, u128), |value: AddressInPrefixedSet| { + let prefix: u32 = value.0; + let index: u128 = value.1; + + let mut buffer = Vec::with_capacity(20); // 160 bits + + buffer.extend_from_slice(&prefix.to_be_bytes()); + buffer.extend_from_slice(&index.to_be_bytes()); + + assert_eq!(buffer.len(), 20, "address buffer should have len of 20"); + + H160::from_slice(&buffer).into() +}); + +pub fn alith_secret_key() -> [u8; 32] { + hex_literal::hex!("5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133") +} + +pub fn baltathar_secret_key() -> [u8; 32] { + hex_literal::hex!("8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b") +} + +pub fn charleth_secret_key() -> [u8; 32] { + hex_literal::hex!("0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b") +} + +mock_account!(SiblingParachainAccount(u32), |v: SiblingParachainAccount| { + AddressInPrefixedSet(0xffffffff, v.0 as u128).into() +}); + +/// A simple asset id type. +#[derive( + Eq, + PartialEq, + Ord, + PartialOrd, + Clone, + Copy, + Encode, + Decode, + Debug, + MaxEncodedLen, + Serialize, + Deserialize, + derive_more::Display, + TypeInfo, + DecodeWithMemTracking +)] +pub struct MockAssetId(pub u128); + +impl From for u128 { + fn from(asset_id: MockAssetId) -> u128 { + asset_id.0 + } +} + +impl From for MockAssetId { + fn from(index: u128) -> MockAssetId { + MockAssetId(index) + } +} + +impl TryFrom for MockAssetId { + type Error = (); + + fn try_from(index: u64) -> Result { + Ok(MockAssetId(index as u128)) + } +} + +impl TryFrom for PeaqAssetId { + type Error = (); + + fn try_from(asset: MockAssetId) -> Result { + Ok(PeaqAssetId::Token(asset.0 as u32)) + } +} + +impl peaq_primitives_xcm::AssetIdExt for MockAssetId { + fn is_native_token(&self) -> bool { + self.0 == 0 + } + + fn is_allow_to_create(&self) -> bool { + if self.is_native_token() { + return false; + } + true + } +} + +/// A simple account type. +#[derive( + Eq, + PartialEq, + Ord, + PartialOrd, + Clone, + Copy, + Encode, + Decode, + Debug, + MaxEncodedLen, + Serialize, + Deserialize, + derive_more::Display, + TypeInfo, + DecodeWithMemTracking +)] +pub enum MockPeaqAccount { + Alice, + Bob, + Charlie, + David, + Bogus, + + SelfReserve, + ParentAccount, + SlibingParaAccount, + + EVMu1Account, + EVMu2Account, + + AssetId(MockAssetId), +} + +impl Default for MockPeaqAccount { + fn default() -> Self { + Self::Bogus + } +} + +impl From for u64 { + fn from(x: MockPeaqAccount) -> u64 { + match x { + MockPeaqAccount::Alice => 0xAA, + MockPeaqAccount::Bob => 0xBB, + MockPeaqAccount::Charlie => 0xCC, + MockPeaqAccount::SelfReserve => 0xDD, + MockPeaqAccount::ParentAccount => 0xEE, + MockPeaqAccount::SlibingParaAccount => 0x11, + MockPeaqAccount::David => 0x12, + MockPeaqAccount::EVMu1Account => 1_u64, + MockPeaqAccount::EVMu2Account => 2_u64, + MockPeaqAccount::AssetId(asset_id) => asset_id.0 as u64, + MockPeaqAccount::Bogus => 0, + } + } +} +impl From for H160 { + fn from(x: MockPeaqAccount) -> H160 { + match x { + MockPeaqAccount::Alice => H160::repeat_byte(0xAA), + MockPeaqAccount::Bob => H160::repeat_byte(0xBB), + MockPeaqAccount::Charlie => H160::repeat_byte(0xCC), + MockPeaqAccount::SelfReserve => H160::repeat_byte(0xDD), + MockPeaqAccount::ParentAccount => H160::repeat_byte(0xEE), + MockPeaqAccount::SlibingParaAccount => H160::repeat_byte(0x11), + MockPeaqAccount::David => H160::repeat_byte(0x12), + MockPeaqAccount::EVMu1Account => H160::from_low_u64_be(1), + MockPeaqAccount::EVMu2Account => H160::from_low_u64_be(2), + MockPeaqAccount::AssetId(asset_id) => { + let mut data = [0u8; 20]; + let id_as_bytes = asset_id.0.to_be_bytes(); + data[0..4].copy_from_slice(&[255u8; 4]); + data[4..20].copy_from_slice(&id_as_bytes); + H160::from_slice(&data) + }, + MockPeaqAccount::Bogus => Default::default(), + } + } +} + +impl AddressMapping for MockPeaqAccount { + fn into_account_id(h160_account: H160) -> MockPeaqAccount { + match h160_account { + a if a == H160::repeat_byte(0xAA) => Self::Alice, + a if a == H160::repeat_byte(0xBB) => Self::Bob, + a if a == H160::repeat_byte(0xCC) => Self::Charlie, + a if a == H160::repeat_byte(0xDD) => Self::SelfReserve, + a if a == H160::repeat_byte(0xEE) => Self::ParentAccount, + a if a == H160::repeat_byte(0x11) => Self::SlibingParaAccount, + a if a == H160::repeat_byte(0x12) => Self::David, + a if a == H160::from_low_u64_be(1) => Self::EVMu1Account, + a if a == H160::from_low_u64_be(2) => Self::EVMu2Account, + _ => { + let mut data = [0u8; 16]; + let (prefix_part, id_part) = h160_account.as_fixed_bytes().split_at(4); + if prefix_part == [255u8; 4] { + data.copy_from_slice(id_part); + + return Self::AssetId(MockAssetId(u128::from_be_bytes(data))); + } + Self::Bogus + }, + } + } +} + +impl From for MockPeaqAccount { + fn from(x: H160) -> MockPeaqAccount { + MockPeaqAccount::into_account_id(x) + } +} + +impl From for [u8; 32] { + fn from(value: MockPeaqAccount) -> [u8; 32] { + match value { + MockPeaqAccount::Alice => [0xAA; 32], + MockPeaqAccount::Bob => [0xBB; 32], + MockPeaqAccount::Charlie => [0xCC; 32], + MockPeaqAccount::SelfReserve => [0xDD; 32], + MockPeaqAccount::ParentAccount => [0xEE; 32], + MockPeaqAccount::SlibingParaAccount => [0x11; 32], + MockPeaqAccount::David => [0x12; 32], + MockPeaqAccount::EVMu1Account => [0x13; 32], + MockPeaqAccount::EVMu2Account => [0x14; 32], + _ => Default::default(), + } + } +} + +impl From<[u8; 32]> for MockPeaqAccount { + fn from(value: [u8; 32]) -> MockPeaqAccount { + match value { + a if a == [0xAA; 32] => MockPeaqAccount::Alice, + a if a == [0xBB; 32] => MockPeaqAccount::Bob, + a if a == [0xCC; 32] => MockPeaqAccount::Charlie, + a if a == [0xDD; 32] => MockPeaqAccount::SelfReserve, + a if a == [0xEE; 32] => MockPeaqAccount::ParentAccount, + a if a == [0x11; 32] => MockPeaqAccount::SlibingParaAccount, + a if a == [0x12; 32] => MockPeaqAccount::David, + a if a == [0x13; 32] => MockPeaqAccount::EVMu1Account, + a if a == [0x14; 32] => MockPeaqAccount::EVMu2Account, + _ => MockPeaqAccount::Bogus, + } + } +} + +impl From for H256 { + fn from(x: MockPeaqAccount) -> H256 { + let x: H160 = x.into(); + x.into() + } +} diff --git a/precompiles/utils/src/evm/costs.rs b/precompiles/utils/src/evm/costs.rs deleted file mode 100644 index 07c74dae8..000000000 --- a/precompiles/utils/src/evm/costs.rs +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Cost calculations. -//! TODO: PR EVM to make those cost calculations public. - -use crate::EvmResult; -use fp_evm::{ExitError, PrecompileFailure}; -use sp_core::U256; - -pub fn log_costs(topics: usize, data_len: usize) -> EvmResult { - // Cost calculation is copied from EVM code that is not publicly exposed by the crates. - // https://github.com/rust-blockchain/evm/blob/master/gasometer/src/costs.rs#L148 - - const G_LOG: u64 = 375; - const G_LOGDATA: u64 = 8; - const G_LOGTOPIC: u64 = 375; - - let topic_cost = G_LOGTOPIC - .checked_mul(topics as u64) - .ok_or(PrecompileFailure::Error { exit_status: ExitError::OutOfGas })?; - - let data_cost = G_LOGDATA - .checked_mul(data_len as u64) - .ok_or(PrecompileFailure::Error { exit_status: ExitError::OutOfGas })?; - - G_LOG - .checked_add(topic_cost) - .ok_or(PrecompileFailure::Error { exit_status: ExitError::OutOfGas })? - .checked_add(data_cost) - .ok_or(PrecompileFailure::Error { exit_status: ExitError::OutOfGas }) -} - -// Compute the cost of doing a subcall. -// Some parameters cannot be known in advance, so we estimate the worst possible cost. -pub fn call_cost(value: U256, config: &evm::Config) -> u64 { - // Copied from EVM code since not public. - pub const G_CALLVALUE: u64 = 9000; - pub const G_NEWACCOUNT: u64 = 25000; - - fn address_access_cost(is_cold: bool, regular_value: u64, config: &evm::Config) -> u64 { - if config.increase_state_access_gas { - if is_cold { - config.gas_account_access_cold - } else { - config.gas_storage_read_warm - } - } else { - regular_value - } - } - - fn xfer_cost(is_call_or_callcode: bool, transfers_value: bool) -> u64 { - if is_call_or_callcode && transfers_value { - G_CALLVALUE - } else { - 0 - } - } - - fn new_cost( - is_call_or_staticcall: bool, - new_account: bool, - transfers_value: bool, - config: &evm::Config, - ) -> u64 { - let eip161 = !config.empty_considered_exists; - if is_call_or_staticcall { - if eip161 { - if transfers_value && new_account { - G_NEWACCOUNT - } else { - 0 - } - } else if new_account { - G_NEWACCOUNT - } else { - 0 - } - } else { - 0 - } - } - - let transfers_value = value != U256::default(); - let is_cold = true; - let is_call_or_callcode = true; - let is_call_or_staticcall = true; - let new_account = true; - - address_access_cost(is_cold, config.gas_call, config) + - xfer_cost(is_call_or_callcode, transfers_value) + - new_cost(is_call_or_staticcall, new_account, transfers_value, config) -} diff --git a/precompiles/utils/src/evm/handle.rs b/precompiles/utils/src/evm/handle.rs deleted file mode 100644 index 429799686..000000000 --- a/precompiles/utils/src/evm/handle.rs +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::{ - solidity::{ - codec::Reader, - modifier::FunctionModifier, - revert::{MayRevert, RevertReason}, - }, - EvmResult, -}; -use fp_evm::{Log, PrecompileHandle}; - -pub trait PrecompileHandleExt: PrecompileHandle { - /// Record cost of one DB read manually. - /// The max encoded lenght of the data that will be read should be provided. - fn record_db_read( - &mut self, - data_max_encoded_len: usize, - ) -> Result<(), evm::ExitError>; - - /// Record cost of a log manually. - /// This can be useful to record log costs early when their content have static size. - fn record_log_costs_manual(&mut self, topics: usize, data_len: usize) -> EvmResult; - - /// Record cost of logs. - fn record_log_costs(&mut self, logs: &[&Log]) -> EvmResult; - - /// Check that a function call is compatible with the context it is - /// called into. - fn check_function_modifier(&self, modifier: FunctionModifier) -> MayRevert; - - /// Read the selector from the input data. - fn read_u32_selector(&self) -> MayRevert; - - /// Returns a reader of the input, skipping the selector. - fn read_after_selector(&self) -> MayRevert; -} - -impl PrecompileHandleExt for T { - fn record_db_read( - &mut self, - data_max_encoded_len: usize, - ) -> Result<(), evm::ExitError> { - self.record_cost(crate::prelude::RuntimeHelper::::db_read_gas_cost())?; - // TODO: record ref time when precompile will be benchmarked - self.record_external_cost(None, Some(data_max_encoded_len as u64), None) - } - - /// Record cost of a log manualy. - /// This can be useful to record log costs early when their content have static size. - fn record_log_costs_manual(&mut self, topics: usize, data_len: usize) -> EvmResult { - self.record_cost(crate::evm::costs::log_costs(topics, data_len)?)?; - - Ok(()) - } - - /// Record cost of logs. - fn record_log_costs(&mut self, logs: &[&Log]) -> EvmResult { - for log in logs { - self.record_log_costs_manual(log.topics.len(), log.data.len())?; - } - - Ok(()) - } - - /// Check that a function call is compatible with the context it is - /// called into. - fn check_function_modifier(&self, modifier: FunctionModifier) -> MayRevert { - crate::solidity::modifier::check_function_modifier( - self.context(), - self.is_static(), - modifier, - ) - } - - /// Read the selector from the input data as u32. - fn read_u32_selector(&self) -> MayRevert { - crate::solidity::codec::selector(self.input()) - .ok_or(RevertReason::read_out_of_bounds("selector").into()) - } - - /// Returns a reader of the input, skipping the selector. - fn read_after_selector(&self) -> MayRevert { - Reader::new_skip_selector(self.input()) - } -} - -environmental::environmental!(EVM_CONTEXT: trait PrecompileHandle); - -pub fn using_precompile_handle<'a, R, F: FnOnce() -> R>( - precompile_handle: &'a mut dyn PrecompileHandle, - mutator: F, -) -> R { - // # Safety - // - // unsafe rust does not mean unsafe, but "the compiler cannot guarantee the safety of the - // memory". - // - // The only risk here is that the lifetime 'a comes to its end while the global variable - // `EVM_CONTEXT` still contains the reference to the precompile handle. - // The `using` method guarantee that it can't happen because the global variable is freed right - // after the execution of the `mutator` closure (whatever the result of the execution). - unsafe { - EVM_CONTEXT::using( - core::mem::transmute::<&'a mut dyn PrecompileHandle, &'static mut dyn PrecompileHandle>( - precompile_handle, - ), - mutator, - ) - } -} - -pub fn with_precompile_handle R>(f: F) -> Option { - EVM_CONTEXT::with(|precompile_handle| f(precompile_handle)) -} - -#[cfg(test)] -mod tests { - use super::*; - - struct MockPrecompileHandle; - impl PrecompileHandle for MockPrecompileHandle { - fn call( - &mut self, - _: sp_core::H160, - _: Option, - _: Vec, - _: Option, - _: bool, - _: &evm::Context, - ) -> (evm::ExitReason, Vec) { - unimplemented!() - } - - fn record_cost(&mut self, _: u64) -> Result<(), evm::ExitError> { - unimplemented!() - } - - fn remaining_gas(&self) -> u64 { - unimplemented!() - } - - fn log( - &mut self, - _: sp_core::H160, - _: Vec, - _: Vec, - ) -> Result<(), evm::ExitError> { - unimplemented!() - } - - fn code_address(&self) -> sp_core::H160 { - unimplemented!() - } - - fn input(&self) -> &[u8] { - unimplemented!() - } - - fn context(&self) -> &evm::Context { - unimplemented!() - } - - fn is_static(&self) -> bool { - true - } - - fn gas_limit(&self) -> Option { - unimplemented!() - } - - fn record_external_cost( - &mut self, - _ref_time: Option, - _proof_size: Option, - _storage_growth: Option, - ) -> Result<(), fp_evm::ExitError> { - Ok(()) - } - - fn refund_external_cost(&mut self, _ref_time: Option, _proof_size: Option) {} - - fn origin(&self) -> sp_core::H160 { - unimplemented!() - } - - fn is_contract_being_constructed(&self, address: sp_core::H160) -> bool { - unimplemented!() - } - } - - #[test] - fn with_precompile_handle_without_context() { - assert_eq!(with_precompile_handle(|_| {}), None); - } - - #[test] - fn with_precompile_handle_with_context() { - let mut precompile_handle = MockPrecompileHandle; - - assert_eq!( - using_precompile_handle(&mut precompile_handle, || with_precompile_handle(|handle| { - handle.is_static() - })), - Some(true) - ); - } -} diff --git a/precompiles/utils/src/evm/logs.rs b/precompiles/utils/src/evm/logs.rs deleted file mode 100644 index bd6d72a0a..000000000 --- a/precompiles/utils/src/evm/logs.rs +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::EvmResult; -use pallet_evm::{Log, PrecompileHandle}; -use sp_core::{H160, H256}; -use sp_std::{vec, vec::Vec}; - -/// Create a 0-topic log. -#[must_use] -pub fn log0(address: impl Into, data: impl Into>) -> Log { - Log { address: address.into(), topics: vec![], data: data.into() } -} - -/// Create a 1-topic log. -#[must_use] -pub fn log1(address: impl Into, topic0: impl Into, data: impl Into>) -> Log { - Log { address: address.into(), topics: vec![topic0.into()], data: data.into() } -} - -/// Create a 2-topics log. -#[must_use] -pub fn log2( - address: impl Into, - topic0: impl Into, - topic1: impl Into, - data: impl Into>, -) -> Log { - Log { address: address.into(), topics: vec![topic0.into(), topic1.into()], data: data.into() } -} - -/// Create a 3-topics log. -#[must_use] -pub fn log3( - address: impl Into, - topic0: impl Into, - topic1: impl Into, - topic2: impl Into, - data: impl Into>, -) -> Log { - Log { - address: address.into(), - topics: vec![topic0.into(), topic1.into(), topic2.into()], - data: data.into(), - } -} - -/// Create a 4-topics log. -#[must_use] -pub fn log4( - address: impl Into, - topic0: impl Into, - topic1: impl Into, - topic2: impl Into, - topic3: impl Into, - data: impl Into>, -) -> Log { - Log { - address: address.into(), - topics: vec![topic0.into(), topic1.into(), topic2.into(), topic3.into()], - data: data.into(), - } -} - -/// Extension trait allowing to record logs into a PrecompileHandle. -pub trait LogExt { - fn record(self, handle: &mut impl PrecompileHandle) -> EvmResult; - - fn compute_cost(&self) -> EvmResult; -} - -impl LogExt for Log { - fn record(self, handle: &mut impl PrecompileHandle) -> EvmResult { - handle.log(self.address, self.topics, self.data)?; - Ok(()) - } - - fn compute_cost(&self) -> EvmResult { - crate::evm::costs::log_costs(self.topics.len(), self.data.len()) - } -} - -/// Builder for PrecompileOutput. -#[derive(Clone, Debug)] -pub struct LogsBuilder { - address: H160, -} - -impl LogsBuilder { - /// Create a new builder with no logs. - /// Takes the address of the precompile (usually `context.address`). - pub fn new(address: H160) -> Self { - Self { address } - } - - /// Create a 0-topic log. - #[must_use] - pub fn log0(&self, data: impl Into>) -> Log { - Log { address: self.address, topics: vec![], data: data.into() } - } - - /// Create a 1-topic log. - #[must_use] - pub fn log1(&self, topic0: impl Into, data: impl Into>) -> Log { - Log { address: self.address, topics: vec![topic0.into()], data: data.into() } - } - - /// Create a 2-topics log. - #[must_use] - pub fn log2( - &self, - topic0: impl Into, - topic1: impl Into, - data: impl Into>, - ) -> Log { - Log { address: self.address, topics: vec![topic0.into(), topic1.into()], data: data.into() } - } - - /// Create a 3-topics log. - #[must_use] - pub fn log3( - &self, - topic0: impl Into, - topic1: impl Into, - topic2: impl Into, - data: impl Into>, - ) -> Log { - Log { - address: self.address, - topics: vec![topic0.into(), topic1.into(), topic2.into()], - data: data.into(), - } - } - - /// Create a 4-topics log. - #[must_use] - pub fn log4( - &self, - topic0: impl Into, - topic1: impl Into, - topic2: impl Into, - topic3: impl Into, - data: impl Into>, - ) -> Log { - Log { - address: self.address, - topics: vec![topic0.into(), topic1.into(), topic2.into(), topic3.into()], - data: data.into(), - } - } -} diff --git a/precompiles/utils/src/evm/mod.rs b/precompiles/utils/src/evm/mod.rs deleted file mode 100644 index 6b4cc27f8..000000000 --- a/precompiles/utils/src/evm/mod.rs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2019-2023 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -pub mod costs; -pub mod handle; -pub mod logs; diff --git a/precompiles/utils/src/lib.rs b/precompiles/utils/src/lib.rs index 82de52342..73f978aa1 100644 --- a/precompiles/utils/src/lib.rs +++ b/precompiles/utils/src/lib.rs @@ -16,69 +16,10 @@ #![cfg_attr(not(feature = "std"), no_std)] -extern crate alloc; - -// Allows to use inside this crate `solidity::Codec` derive macro,which depends on -// `precompile_utils` being in the list of imported crates. -extern crate self as precompile_utils; - -pub mod evm; -pub mod precompile_set; -pub mod substrate; - -pub mod solidity; - #[cfg(feature = "testing")] -pub mod testing; - -#[cfg(test)] -mod tests; - -use fp_evm::PrecompileFailure; - -// pub mod data; - -// pub use data::{solidity::Codec, Reader, Writer}; -pub use fp_evm::Precompile; -pub use precompile_utils_macro::{keccak256, precompile, precompile_name_from_address}; - -/// Alias for Result returning an EVM precompile error. -pub type EvmResult = Result; +pub mod account; +#[cfg(feature = "testing")] +pub use account::*; -pub mod prelude { - pub const DEFAULT_PROOF_SIZE: u64 = 256 * 1024; - pub use { - crate::{ - evm::{ - handle::PrecompileHandleExt, - logs::{log0, log1, log2, log3, log4, LogExt}, - }, - precompile_set::DiscriminantResult, - solidity::{ - // We export solidity itself to encourage using `solidity::Codec` to avoid - // confusion with parity_scale_codec, - self, - codec::{ - Address, - BoundedBytes, - BoundedString, - BoundedVec, - // Allow usage of Codec methods while not exporting the name directly. - Codec as _, - Convert, - UnboundedBytes, - UnboundedString, - }, - revert::{ - revert, BacktraceExt, InjectBacktrace, MayRevert, Revert, RevertExt, - RevertReason, - }, - }, - substrate::{RuntimeHelper, TryDispatchError, SYSTEM_ACCOUNT_SIZE}, - EvmResult, - }, - alloc::string::String, - pallet_evm::{PrecompileHandle, PrecompileOutput}, - precompile_utils_macro::{keccak256, precompile}, - }; -} +pub const SYSTEM_ACCOUNT_SIZE: u64 = 160; +pub const DEFAULT_PROOF_SIZE: u64 = 256 * 1024; diff --git a/precompiles/utils/src/precompile_set.rs b/precompiles/utils/src/precompile_set.rs deleted file mode 100644 index 639bd6e47..000000000 --- a/precompiles/utils/src/precompile_set.rs +++ /dev/null @@ -1,1117 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Provide utils to assemble precompiles and precompilesets into a -//! final precompile set with security checks. All security checks are enabled by -//! default and must be disabled explicely throught type annotations. - -use crate::{ - evm::handle::PrecompileHandleExt, - solidity::{codec::String, revert::revert}, - EvmResult, -}; -use fp_evm::{ - ExitError, IsPrecompileResult, Precompile, PrecompileFailure, PrecompileHandle, - PrecompileResult, PrecompileSet, -}; -use frame_support::pallet_prelude::Get; -use impl_trait_for_tuples::impl_for_tuples; -// use pallet_evm::AddressMapping; -use sp_core::{H160, H256}; -use sp_std::{ - cell::RefCell, collections::btree_map::BTreeMap, marker::PhantomData, ops::RangeInclusive, vec, - vec::Vec, -}; - -/// Trait representing checks that can be made on a precompile call. -/// Types implementing this trait are made to be chained in a tuple. -/// -/// For that reason every method returns an Option, None meaning that -/// the implementor have no constraint and the decision is left to -/// latter elements in the chain. If None is returned by all elements of -/// the chain then sensible defaults are used. -/// -/// Both `PrecompileAt` and `PrecompileSetStartingWith` have a type parameter that must -/// implement this trait to configure the checks of the precompile(set) it represents. -pub trait PrecompileChecks { - #[inline(always)] - /// Is there a limit to the amount of recursions this precompile - /// can make using subcalls? 0 means this specific precompile will not - /// be callable as a subcall of itself, 1 will allow one level of recursion, - /// etc... - /// - /// If all checks return None, defaults to `Some(0)` (no recursion allowed). - fn recursion_limit() -> Option> { - None - } - - #[inline(always)] - /// Does this precompile supports being called with DELEGATECALL or CALLCODE? - /// - /// If all checks return None, defaults to `false`. - fn accept_delegate_call() -> Option { - None - } - - #[inline(always)] - /// Is this precompile callable by a smart contract? - /// - /// If all checks return None, defaults to `false`. - fn callable_by_smart_contract(_caller: H160, _called_selector: Option) -> Option { - None - } - - #[inline(always)] - /// Is this precompile callable by a precompile? - /// - /// If all checks return None, defaults to `false`. - fn callable_by_precompile(_caller: H160, _called_selector: Option) -> Option { - None - } - - #[inline(always)] - /// Is this precompile able to do subcalls? - /// - /// If all checks return None, defaults to `false`. - fn allow_subcalls() -> Option { - None - } - - /// Summarize the checks when being called by a smart contract. - fn callable_by_smart_contract_summary() -> Option { - None - } - - /// Summarize the checks when being called by a precompile. - fn callable_by_precompile_summary() -> Option { - None - } -} - -#[derive(Debug, Clone)] -pub enum DiscriminantResult { - Some(T, u64), - None(u64), - OutOfGas, -} - -impl From> for IsPrecompileResult { - fn from(val: DiscriminantResult) -> Self { - match val { - DiscriminantResult::::Some(_, extra_cost) => - IsPrecompileResult::Answer { is_precompile: true, extra_cost }, - DiscriminantResult::::None(extra_cost) => - IsPrecompileResult::Answer { is_precompile: false, extra_cost }, - DiscriminantResult::::OutOfGas => IsPrecompileResult::OutOfGas, - } - } -} - -#[derive(Debug, Clone)] -#[cfg_attr(feature = "testing", derive(serde::Serialize, serde::Deserialize))] -pub enum PrecompileKind { - Single(H160), - Multiple(Vec), - Prefixed(Vec), -} - -#[derive(Debug, Clone)] -#[cfg_attr(feature = "testing", derive(serde::Serialize, serde::Deserialize))] -pub struct PrecompileCheckSummary { - pub name: Option, - pub precompile_kind: PrecompileKind, - pub recursion_limit: Option, - pub accept_delegate_call: bool, - pub callable_by_smart_contract: String, - pub callable_by_precompile: String, -} - -#[impl_for_tuples(0, 20)] -impl PrecompileChecks for Tuple { - #[inline(always)] - fn recursion_limit() -> Option> { - for_tuples!(#( - if let Some(check) = Tuple::recursion_limit() { - return Some(check); - } - )*); - - None - } - - #[inline(always)] - fn accept_delegate_call() -> Option { - for_tuples!(#( - if let Some(check) = Tuple::accept_delegate_call() { - return Some(check); - } - )*); - - None - } - - #[inline(always)] - fn callable_by_smart_contract(caller: H160, called_selector: Option) -> Option { - for_tuples!(#( - if let Some(check) = Tuple::callable_by_smart_contract(caller, called_selector) { - return Some(check); - } - )*); - - None - } - - #[inline(always)] - fn callable_by_precompile(caller: H160, called_selector: Option) -> Option { - for_tuples!(#( - if let Some(check) = Tuple::callable_by_precompile(caller, called_selector) { - return Some(check); - } - )*); - - None - } - - #[inline(always)] - fn allow_subcalls() -> Option { - for_tuples!(#( - if let Some(check) = Tuple::allow_subcalls() { - return Some(check); - } - )*); - - None - } - - fn callable_by_smart_contract_summary() -> Option { - for_tuples!(#( - if let Some(check) = Tuple::callable_by_smart_contract_summary() { - return Some(check); - } - )*); - - None - } - - fn callable_by_precompile_summary() -> Option { - for_tuples!(#( - if let Some(check) = Tuple::callable_by_precompile_summary() { - return Some(check); - } - )*); - - None - } -} - -/// Precompile can be called using DELEGATECALL/CALLCODE. -pub struct AcceptDelegateCall; - -impl PrecompileChecks for AcceptDelegateCall { - #[inline(always)] - fn accept_delegate_call() -> Option { - Some(true) - } -} - -/// Precompile is able to do subcalls with provided nesting limit. -pub struct SubcallWithMaxNesting; - -impl PrecompileChecks for SubcallWithMaxNesting { - #[inline(always)] - fn recursion_limit() -> Option> { - Some(Some(R)) - } - - #[inline(always)] - fn allow_subcalls() -> Option { - Some(true) - } -} - -pub trait SelectorFilter { - fn is_allowed(_caller: H160, _selector: Option) -> bool; - - fn description() -> String; -} -pub struct ForAllSelectors; -impl SelectorFilter for ForAllSelectors { - fn is_allowed(_caller: H160, _selector: Option) -> bool { - true - } - - fn description() -> String { - "Allowed for all selectors and callers".into() - } -} - -pub struct OnlyFrom(PhantomData); -impl> SelectorFilter for OnlyFrom { - fn is_allowed(caller: H160, _selector: Option) -> bool { - caller == T::get() - } - - fn description() -> String { - alloc::format!("Allowed for all selectors only if called from {}", T::get()) - } -} - -pub struct CallableByContract(PhantomData); - -impl PrecompileChecks for CallableByContract { - #[inline(always)] - fn callable_by_smart_contract(caller: H160, called_selector: Option) -> Option { - Some(T::is_allowed(caller, called_selector)) - } - - fn callable_by_smart_contract_summary() -> Option { - Some(T::description()) - } -} - -/// Precompiles are allowed to call this precompile. -pub struct CallableByPrecompile(PhantomData); - -impl PrecompileChecks for CallableByPrecompile { - #[inline(always)] - fn callable_by_precompile(caller: H160, called_selector: Option) -> Option { - Some(T::is_allowed(caller, called_selector)) - } - - fn callable_by_precompile_summary() -> Option { - Some(T::description()) - } -} - -/// The type of EVM address. -#[derive(PartialEq)] -#[cfg_attr(feature = "std", derive(Debug))] -pub enum AddressType { - /// The code stored at the address is less than 5 bytes, but not well known. - Unknown, - /// No code is stored at the address, therefore is EOA. - EOA, - /// The 5-byte magic constant for a precompile is stored at the address. - Precompile, - /// The code is greater than 5-bytes, potentially a Smart Contract. - Contract, -} - -/// Retrieves the type of address demarcated by `AddressType`. -pub fn get_address_type( - handle: &mut impl PrecompileHandle, - address: H160, -) -> Result { - // AccountCodesMetadata: - // Blake2128(16) + H160(20) + CodeMetadata(40) - handle.record_db_read::(76)?; - let code_len = pallet_evm::Pallet::::account_code_metadata(address).size; - - // 0 => either EOA or precompile without dummy code - if code_len == 0 { - return Ok(AddressType::EOA); - } - - // dummy code is 5 bytes long, so any other len means it is a contract. - if code_len != 5 { - return Ok(AddressType::Contract); - } - - // check code matches dummy code - handle.record_db_read::(code_len as usize)?; - let code = pallet_evm::AccountCodes::::get(address); - if code == [0x60, 0x00, 0x60, 0x00, 0xfd] { - return Ok(AddressType::Precompile); - } - - Ok(AddressType::Unknown) -} - -fn is_address_eoa_or_precompile( - handle: &mut impl PrecompileHandle, - address: H160, -) -> Result { - match get_address_type::(handle, address)? { - AddressType::EOA | AddressType::Precompile => Ok(true), - _ => Ok(false), - } -} - -/// Common checks for precompile and precompile sets. -/// Don't contain recursion check as precompile sets have recursion check for each member. -fn common_checks( - handle: &mut impl PrecompileHandle, -) -> EvmResult<()> { - let code_address = handle.code_address(); - let caller = handle.context().caller; - - // Check DELEGATECALL config. - let accept_delegate_call = C::accept_delegate_call().unwrap_or(false); - if !accept_delegate_call && code_address != handle.context().address { - return Err(revert("Cannot be called with DELEGATECALL or CALLCODE")); - } - - // Extract which selector is called. - let selector = handle.input().get(0..4).map(|bytes| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(bytes); - u32::from_be_bytes(buffer) - }); - - // Is this selector callable from a smart contract? - let callable_by_smart_contract = - C::callable_by_smart_contract(caller, selector).unwrap_or(false); - if !callable_by_smart_contract && !is_address_eoa_or_precompile::(handle, caller)? { - return Err(revert("Function not callable by smart contracts")); - } - - // Is this selector callable from a precompile? - let callable_by_precompile = C::callable_by_precompile(caller, selector).unwrap_or(false); - if !callable_by_precompile && is_precompile_or_fail::(caller, handle.remaining_gas())? { - return Err(revert("Function not callable by precompiles")); - } - - Ok(()) -} - -pub fn is_precompile_or_fail(address: H160, gas: u64) -> EvmResult { - match ::PrecompilesValue::get().is_precompile(address, gas) { - IsPrecompileResult::Answer { is_precompile, .. } => Ok(is_precompile), - IsPrecompileResult::OutOfGas => - Err(PrecompileFailure::Error { exit_status: ExitError::OutOfGas }), - } -} - -pub struct AddressU64; -impl Get for AddressU64 { - #[inline(always)] - fn get() -> H160 { - H160::from_low_u64_be(N) - } -} - -pub struct RestrictiveHandle<'a, H> { - handle: &'a mut H, - allow_subcalls: bool, -} - -impl<'a, H: PrecompileHandle> PrecompileHandle for RestrictiveHandle<'a, H> { - fn call( - &mut self, - address: H160, - transfer: Option, - input: Vec, - target_gas: Option, - is_static: bool, - context: &evm::Context, - ) -> (evm::ExitReason, Vec) { - if !self.allow_subcalls { - return ( - evm::ExitReason::Revert(evm::ExitRevert::Reverted), - crate::solidity::revert::revert_as_bytes("subcalls disabled for this precompile"), - ); - } - - self.handle.call(address, transfer, input, target_gas, is_static, context) - } - - fn record_cost(&mut self, cost: u64) -> Result<(), evm::ExitError> { - self.handle.record_cost(cost) - } - - fn remaining_gas(&self) -> u64 { - self.handle.remaining_gas() - } - - fn log( - &mut self, - address: H160, - topics: Vec, - data: Vec, - ) -> Result<(), evm::ExitError> { - self.handle.log(address, topics, data) - } - - fn code_address(&self) -> H160 { - self.handle.code_address() - } - - fn input(&self) -> &[u8] { - self.handle.input() - } - - fn context(&self) -> &evm::Context { - self.handle.context() - } - - fn is_static(&self) -> bool { - self.handle.is_static() - } - - fn gas_limit(&self) -> Option { - self.handle.gas_limit() - } - - fn record_external_cost( - &mut self, - ref_time: Option, - proof_size: Option, - storage_growth: Option, - ) -> Result<(), ExitError> { - self.handle.record_external_cost(ref_time, proof_size, storage_growth) - } - - fn refund_external_cost(&mut self, ref_time: Option, proof_size: Option) { - self.handle.refund_external_cost(ref_time, proof_size) - } - - fn origin(&self) -> H160 { - self.handle.origin() - } - - fn is_contract_being_constructed(&self, address: H160) -> bool { - self.handle.is_contract_being_constructed(address) - } -} - -/// Allows to know if a precompile is active or not. -/// This allows to detect deactivated precompile, that are still considered precompiles by -/// the EVM but that will always revert when called. -pub trait IsActivePrecompile { - /// Is the provided address an active precompile, a precompile that has - /// not be deactivated. Note that a deactivated precompile is still considered a precompile - /// for the EVM, but it will always revert when called. - fn is_active_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult; -} - -// INDIVIDUAL PRECOMPILE(SET) - -/// A fragment of a PrecompileSet. Should be implemented as is it -/// was a PrecompileSet containing only the precompile(set) it wraps. -/// They can be combined into a real PrecompileSet using `PrecompileSetBuilder`. -pub trait PrecompileSetFragment { - /// Instanciate the fragment. - fn new() -> Self; - - /// Execute the fragment. - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option; - - /// Is the provided address a precompile in this fragment? - fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult; - - /// Return the list of addresses covered by this fragment. - fn used_addresses(&self) -> Vec; - - /// Summarize - fn summarize_checks(&self) -> Vec; -} - -/// Wraps a stateless precompile: a type implementing the `Precompile` trait. -/// Type parameters allow to define: -/// - A: The address of the precompile -/// - R: The recursion limit (defaults to 1) -/// - D: If DELEGATECALL is supported (default to no) -pub struct PrecompileAt { - current_recursion_level: RefCell, - _phantom: PhantomData<(A, P, C)>, -} - -impl PrecompileSetFragment for PrecompileAt -where - A: Get, - P: Precompile, - C: PrecompileChecks, -{ - #[inline(always)] - fn new() -> Self { - Self { current_recursion_level: RefCell::new(0), _phantom: PhantomData } - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - let code_address = handle.code_address(); - - // Check if this is the address of the precompile. - if A::get() != code_address { - return None; - } - - // Perform common checks. - if let Err(err) = common_checks::(handle) { - return Some(Err(err)); - } - - // Check and increase recursion level if needed. - let recursion_limit = C::recursion_limit().unwrap_or(Some(0)); - if let Some(max_recursion_level) = recursion_limit { - match self.current_recursion_level.try_borrow_mut() { - Ok(mut recursion_level) => { - if *recursion_level > max_recursion_level { - return Some(Err(revert("Precompile is called with too high nesting"))); - } - - *recursion_level += 1; - }, - // We don't hold the borrow and are in single-threaded code, thus we should - // not be able to fail borrowing in nested calls. - Err(_) => return Some(Err(revert("Couldn't check precompile nesting"))), - } - } - - // Subcall protection. - let allow_subcalls = C::allow_subcalls().unwrap_or(false); - let mut handle = RestrictiveHandle { handle, allow_subcalls }; - - let res = P::execute(&mut handle); - - // Decrease recursion level if needed. - if recursion_limit.is_some() { - match self.current_recursion_level.try_borrow_mut() { - Ok(mut recursion_level) => { - *recursion_level -= 1; - }, - // We don't hold the borrow and are in single-threaded code, thus we should - // not be able to fail borrowing in nested calls. - Err(_) => return Some(Err(revert("Couldn't check precompile nesting"))), - } - } - - Some(res) - } - - #[inline(always)] - fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: address == A::get(), extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - vec![A::get()] - } - - fn summarize_checks(&self) -> Vec { - vec![PrecompileCheckSummary { - name: None, - precompile_kind: PrecompileKind::Single(A::get()), - recursion_limit: C::recursion_limit().unwrap_or(Some(0)), - accept_delegate_call: C::accept_delegate_call().unwrap_or(false), - callable_by_smart_contract: C::callable_by_smart_contract_summary() - .unwrap_or_else(|| "Not callable".into()), - callable_by_precompile: C::callable_by_precompile_summary() - .unwrap_or_else(|| "Not callable".into()), - }] - } -} - -impl IsActivePrecompile for PrecompileAt -where - A: Get, -{ - #[inline(always)] - fn is_active_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: address == A::get(), extra_cost: 0 } - } -} - -/// Wraps an inner PrecompileSet with all its addresses starting with -/// a common prefix. -/// Type parameters allow to define: -/// - A: The common prefix -/// - D: If DELEGATECALL is supported (default to no) -pub struct PrecompileSetStartingWith { - precompile_set: P, - current_recursion_level: RefCell>, - _phantom: PhantomData<(A, C)>, -} - -impl PrecompileSetFragment for PrecompileSetStartingWith -where - A: Get<&'static [u8]>, - P: PrecompileSet + Default, - C: PrecompileChecks, -{ - #[inline(always)] - fn new() -> Self { - Self { - precompile_set: P::default(), - current_recursion_level: RefCell::new(BTreeMap::new()), - _phantom: PhantomData, - } - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - let code_address = handle.code_address(); - if !is_precompile_or_fail::(code_address, handle.remaining_gas()).ok()? { - return None; - } - // Perform common checks. - if let Err(err) = common_checks::(handle) { - return Some(Err(err)); - } - - // Check and increase recursion level if needed. - let recursion_limit = C::recursion_limit().unwrap_or(Some(0)); - if let Some(max_recursion_level) = recursion_limit { - match self.current_recursion_level.try_borrow_mut() { - Ok(mut recursion_level_map) => { - let recursion_level = recursion_level_map.entry(code_address).or_insert(0); - - if *recursion_level > max_recursion_level { - return Some(Err(revert("Precompile is called with too high nesting"))); - } - - *recursion_level += 1; - }, - // We don't hold the borrow and are in single-threaded code, thus we should - // not be able to fail borrowing in nested calls. - Err(_) => return Some(Err(revert("Couldn't check precompile nesting"))), - } - } - - // Subcall protection. - let allow_subcalls = C::allow_subcalls().unwrap_or(false); - let mut handle = RestrictiveHandle { handle, allow_subcalls }; - - let res = self.precompile_set.execute(&mut handle); - - // Decrease recursion level if needed. - if recursion_limit.is_some() { - match self.current_recursion_level.try_borrow_mut() { - Ok(mut recursion_level_map) => { - let recursion_level = match recursion_level_map.get_mut(&code_address) { - Some(recursion_level) => recursion_level, - None => return Some(Err(revert("Couldn't retreive precompile nesting"))), - }; - - *recursion_level -= 1; - }, - // We don't hold the borrow and are in single-threaded code, thus we should - // not be able to fail borrowing in nested calls. - Err(_) => return Some(Err(revert("Couldn't check precompile nesting"))), - } - } - - res - } - - #[inline(always)] - fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - if address.as_bytes().starts_with(A::get()) { - return self.precompile_set.is_precompile(address, gas); - } - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - // TODO: We currently can't get the list of used addresses. - vec![] - } - - fn summarize_checks(&self) -> Vec { - let prefix = A::get(); - - vec![PrecompileCheckSummary { - name: None, - precompile_kind: PrecompileKind::Prefixed(prefix.to_vec()), - recursion_limit: C::recursion_limit().unwrap_or(Some(0)), - accept_delegate_call: C::accept_delegate_call().unwrap_or(false), - callable_by_smart_contract: C::callable_by_smart_contract_summary() - .unwrap_or_else(|| "Not callable".into()), - callable_by_precompile: C::callable_by_precompile_summary() - .unwrap_or_else(|| "Not callable".into()), - }] - } -} - -impl IsActivePrecompile for PrecompileSetStartingWith -where - Self: PrecompileSetFragment, -{ - #[inline(always)] - fn is_active_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - self.is_precompile(address, gas) - } -} - -/// Make a precompile that always revert. -/// Can be useful when writing tests. -pub struct RevertPrecompile(PhantomData); - -impl PrecompileSetFragment for RevertPrecompile -where - A: Get, -{ - #[inline(always)] - fn new() -> Self { - Self(PhantomData) - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - if A::get() == handle.code_address() { - Some(Err(revert("revert"))) - } else { - None - } - } - - #[inline(always)] - fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: address == A::get(), extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - vec![A::get()] - } - - fn summarize_checks(&self) -> Vec { - vec![PrecompileCheckSummary { - name: None, - precompile_kind: PrecompileKind::Single(A::get()), - recursion_limit: Some(0), - accept_delegate_call: true, - callable_by_smart_contract: "Reverts in all cases".into(), - callable_by_precompile: "Reverts in all cases".into(), - }] - } -} - -impl IsActivePrecompile for RevertPrecompile { - #[inline(always)] - fn is_active_precompile(&self, _address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: true, extra_cost: 0 } - } -} - -/// Precompiles that were removed from a precompile set. -/// Still considered precompiles but are inactive and always revert. -pub struct RemovedPrecompilesAt(PhantomData); -impl PrecompileSetFragment for RemovedPrecompilesAt -where - A: Get>, -{ - #[inline(always)] - fn new() -> Self { - Self(PhantomData) - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - if A::get().contains(&handle.code_address()) { - Some(Err(revert("Removed precompile"))) - } else { - None - } - } - - #[inline(always)] - fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: A::get().contains(&address), extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - A::get() - } - - fn summarize_checks(&self) -> Vec { - vec![PrecompileCheckSummary { - name: None, - precompile_kind: PrecompileKind::Multiple(A::get()), - recursion_limit: Some(0), - accept_delegate_call: true, - callable_by_smart_contract: "Reverts in all cases".into(), - callable_by_precompile: "Reverts in all cases".into(), - }] - } -} - -impl IsActivePrecompile for RemovedPrecompilesAt -where - Self: PrecompileSetFragment, -{ - #[inline(always)] - fn is_active_precompile(&self, _address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } -} - -/// A precompile that was removed from a precompile set. -/// Still considered a precompile but is inactive and always revert. -pub struct RemovedPrecompileAt(PhantomData); -impl PrecompileSetFragment for RemovedPrecompileAt -where - A: Get, -{ - #[inline(always)] - fn new() -> Self { - Self(PhantomData) - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - if A::get() == handle.code_address() { - Some(Err(revert("Removed precompile"))) - } else { - None - } - } - - #[inline(always)] - fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: address == A::get(), extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - vec![A::get()] - } - - fn summarize_checks(&self) -> Vec { - vec![PrecompileCheckSummary { - name: None, - precompile_kind: PrecompileKind::Single(A::get()), - recursion_limit: Some(0), - accept_delegate_call: true, - callable_by_smart_contract: "Reverts in all cases".into(), - callable_by_precompile: "Reverts in all cases".into(), - }] - } -} - -impl IsActivePrecompile for RemovedPrecompileAt { - #[inline(always)] - fn is_active_precompile(&self, _address: H160, _gas: u64) -> IsPrecompileResult { - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } -} - -// COMPOSITION OF PARTS -#[impl_for_tuples(1, 100)] -impl PrecompileSetFragment for Tuple { - #[inline(always)] - fn new() -> Self { - (for_tuples!(#( - Tuple::new() - ),*)) - } - - #[inline(always)] - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - for_tuples!(#( - if let Some(res) = self.Tuple.execute::(handle) { - return Some(res); - } - )*); - - None - } - - #[inline(always)] - fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - for_tuples!(#( - if let IsPrecompileResult::Answer { - is_precompile: true, - .. - } = self.Tuple.is_precompile(address, gas) { return IsPrecompileResult::Answer { - is_precompile: true, - extra_cost: 0, - } - }; - )*); - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } - - #[inline(always)] - fn used_addresses(&self) -> Vec { - let mut used_addresses = vec![]; - - for_tuples!(#( - let mut inner = self.Tuple.used_addresses(); - used_addresses.append(&mut inner); - )*); - - used_addresses - } - - fn summarize_checks(&self) -> Vec { - let mut checks = Vec::new(); - - for_tuples!(#( - let mut inner = self.Tuple.summarize_checks(); - checks.append(&mut inner); - )*); - - checks - } -} - -#[impl_for_tuples(1, 100)] -impl IsActivePrecompile for Tuple { - #[inline(always)] - fn is_active_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - for_tuples!(#( - if let IsPrecompileResult::Answer { - is_precompile: true, - .. - } = self.Tuple.is_active_precompile(address, gas) { return IsPrecompileResult::Answer { - is_precompile: true, - extra_cost: 0, - } - }; - )*); - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } -} - -/// Wraps a precompileset fragment into a range, and will skip processing it if the address -/// is out of the range. -pub struct PrecompilesInRangeInclusive { - inner: P, - range: RangeInclusive, - _phantom: PhantomData, -} - -impl PrecompileSetFragment for PrecompilesInRangeInclusive<(S, E), P> -where - S: Get, - E: Get, - P: PrecompileSetFragment, -{ - fn new() -> Self { - Self { - inner: P::new(), - range: RangeInclusive::new(S::get(), E::get()), - _phantom: PhantomData, - } - } - - fn execute( - &self, - handle: &mut impl PrecompileHandle, - ) -> Option { - if self.range.contains(&handle.code_address()) { - self.inner.execute::(handle) - } else { - None - } - } - - fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - if self.range.contains(&address) { - self.inner.is_precompile(address, gas) - } else { - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } - } - - fn used_addresses(&self) -> Vec { - self.inner.used_addresses() - } - - fn summarize_checks(&self) -> Vec { - self.inner.summarize_checks() - } -} - -impl IsActivePrecompile for PrecompilesInRangeInclusive<(S, E), P> -where - P: IsActivePrecompile, -{ - fn is_active_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - if self.range.contains(&address) { - self.inner.is_active_precompile(address, gas) - } else { - IsPrecompileResult::Answer { is_precompile: false, extra_cost: 0 } - } - } -} - -/// Wraps a tuple of `PrecompileSetFragment` to make a real `PrecompileSet`. -pub struct PrecompileSetBuilder { - inner: P, - _phantom: PhantomData, -} - -impl PrecompileSet for PrecompileSetBuilder { - fn execute(&self, handle: &mut impl PrecompileHandle) -> Option { - self.inner.execute::(handle) - } - - fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - self.inner.is_precompile(address, gas) - } -} - -impl IsActivePrecompile for PrecompileSetBuilder { - fn is_active_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult { - self.inner.is_active_precompile(address, gas) - } -} - -impl Default for PrecompileSetBuilder { - fn default() -> Self { - Self::new() - } -} - -impl PrecompileSetBuilder { - /// Create a new instance of the PrecompileSet. - pub fn new() -> Self { - Self { inner: P::new(), _phantom: PhantomData } - } - - /// Note: In peaq, we are use H256 as the AccountID, but eth address is H160, therefore, it's - /// not the same... Return the list of addresses contained in this PrecompileSet. - pub fn used_addresses() -> impl Iterator { - Self::new().inner.used_addresses().into_iter() - /* - * Self::new() - * .inner - * .used_addresses() - * .into_iter() - * .map(|x| R::AddressMapping::into_account_id(x)) - */ - } - - pub fn summarize_checks(&self) -> Vec { - self.inner.summarize_checks() - } -} diff --git a/precompiles/utils/src/solidity/codec/bytes.rs b/precompiles/utils/src/solidity/codec/bytes.rs deleted file mode 100644 index 64cbe95fe..000000000 --- a/precompiles/utils/src/solidity/codec/bytes.rs +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; -use alloc::borrow::ToOwned; -use sp_core::{ConstU32, Get}; - -type ConstU32Max = ConstU32<{ u32::MAX }>; - -pub type UnboundedBytes = BoundedBytesString; -pub type BoundedBytes = BoundedBytesString; - -pub type UnboundedString = BoundedBytesString; -pub type BoundedString = BoundedBytesString; - -trait Kind { - fn signature() -> String; -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct BytesKind; - -impl Kind for BytesKind { - fn signature() -> String { - String::from("bytes") - } -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct StringKind; - -impl Kind for StringKind { - fn signature() -> String { - String::from("string") - } -} - -/// The `bytes/string` type of Solidity. -/// It is different from `Vec` which will be serialized with padding for each `u8` element -/// of the array, while `Bytes` is tightly packed. -#[derive(Debug)] -pub struct BoundedBytesString { - data: Vec, - _phantom: PhantomData<(K, S)>, -} - -impl Default for BoundedBytesString { - fn default() -> Self { - Vec::default().into() - } -} - -impl> Clone for BoundedBytesString { - fn clone(&self) -> Self { - Self { data: self.data.clone(), _phantom: PhantomData } - } -} - -#[allow(clippy::unconditional_recursion)] -impl PartialEq> for BoundedBytesString { - fn eq(&self, other: &BoundedBytesString) -> bool { - self.data.eq(&other.data) - } -} - -impl Eq for BoundedBytesString {} - -impl> BoundedBytesString { - pub fn as_bytes(&self) -> &[u8] { - &self.data - } - - pub fn as_str(&self) -> Result<&str, sp_std::str::Utf8Error> { - sp_std::str::from_utf8(&self.data) - } -} - -impl> Codec for BoundedBytesString { - fn read(reader: &mut Reader) -> MayRevert { - let mut inner_reader = reader.read_pointer()?; - - // Read bytes/string size. - let array_size: usize = inner_reader - .read::() - .map_err(|_| RevertReason::read_out_of_bounds("length"))? - .try_into() - .map_err(|_| RevertReason::value_is_too_large("length"))?; - - if array_size > S::get() as usize { - return Err(RevertReason::value_is_too_large("length").into()); - } - - // Get valid range over the bytes data. - let range = inner_reader.move_cursor(array_size)?; - - let data = inner_reader - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds(K::signature()))?; - - let bytes = Self { data: data.to_owned(), _phantom: PhantomData }; - - Ok(bytes) - } - - fn write(writer: &mut Writer, value: Self) { - let value: Vec<_> = value.into(); - let length = value.len(); - - // Pad the data. - // Leave it as is if a multiple of 32, otherwise pad to next - // multiple or 32. - let chunks = length / 32; - let padded_size = match length % 32 { - 0 => chunks * 32, - _ => (chunks + 1) * 32, - }; - - let mut value = value.to_vec(); - value.resize(padded_size, 0); - - writer - .write_pointer(Writer::new().write(U256::from(length)).write_raw_bytes(&value).build()); - } - - fn has_static_size() -> bool { - false - } - - fn signature() -> String { - K::signature() - } -} - -// BytesString <=> Vec/&[u8] - -impl From> for Vec { - fn from(value: BoundedBytesString) -> Self { - value.data - } -} - -impl From> for BoundedBytesString { - fn from(value: Vec) -> Self { - Self { data: value, _phantom: PhantomData } - } -} - -impl From<&[u8]> for BoundedBytesString { - fn from(value: &[u8]) -> Self { - Self { data: value.to_vec(), _phantom: PhantomData } - } -} - -impl From<[u8; N]> for BoundedBytesString { - fn from(value: [u8; N]) -> Self { - Self { data: value.to_vec(), _phantom: PhantomData } - } -} - -impl From<&[u8; N]> for BoundedBytesString { - fn from(value: &[u8; N]) -> Self { - Self { data: value.to_vec(), _phantom: PhantomData } - } -} - -// BytesString <=> String/str - -impl TryFrom> for String { - type Error = alloc::string::FromUtf8Error; - - fn try_from(value: BoundedBytesString) -> Result { - alloc::string::String::from_utf8(value.data) - } -} - -impl From<&str> for BoundedBytesString { - fn from(value: &str) -> Self { - Self { data: value.as_bytes().into(), _phantom: PhantomData } - } -} - -impl From for BoundedBytesString { - fn from(value: String) -> Self { - Self { data: value.as_bytes().into(), _phantom: PhantomData } - } -} diff --git a/precompiles/utils/src/solidity/codec/mod.rs b/precompiles/utils/src/solidity/codec/mod.rs deleted file mode 100644 index 94f0fc934..000000000 --- a/precompiles/utils/src/solidity/codec/mod.rs +++ /dev/null @@ -1,349 +0,0 @@ -// Copyright 2019-2023 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Solidity encoding following the -//! [Contract ABI Specification](https://docs.soliditylang.org/en/v0.8.19/abi-spec.html#abi) - -pub mod bytes; -pub mod native; - -#[cfg(any(feature = "codec-xcm", test))] -pub mod xcm; - -use crate::solidity::revert::{MayRevert, RevertReason}; -use core::{marker::PhantomData, ops::Range}; -use sp_core::{H256, U256}; -use sp_std::{convert::TryInto, vec, vec::Vec}; - -pub use alloc::string::String; -pub use bytes::{BoundedBytes, BoundedString, UnboundedBytes, UnboundedString}; -pub use native::{Address, BoundedVec}; - -// derive macro -pub use precompile_utils_macro::Codec; - -/// Data that can be encoded/encoded followiong the Solidity ABI Specification. -pub trait Codec: Sized { - fn read(reader: &mut Reader) -> MayRevert; - fn write(writer: &mut Writer, value: Self); - fn has_static_size() -> bool; - fn signature() -> String; - fn is_explicit_tuple() -> bool { - false - } -} - -/// Encode the value into its Solidity ABI format. -/// If `T` is a tuple it is encoded as a Solidity tuple with dynamic-size offset. -fn encode(value: T) -> Vec { - Writer::new().write(value).build() -} - -/// Encode the value into its Solidity ABI format. -/// If `T` is a tuple every element is encoded without a prefixed offset. -/// It matches the encoding of Solidity function arguments and return value, or event data. -pub fn encode_arguments(value: T) -> Vec { - let output = encode(value); - if T::is_explicit_tuple() && !T::has_static_size() { - output[32..].to_vec() - } else { - output - } -} - -pub use self::{encode_arguments as encode_return_value, encode_arguments as encode_event_data}; - -/// Encode the value as the arguments of a Solidity function with given selector. -/// If `T` is a tuple each member represents an argument of the function. -pub fn encode_with_selector(selector: u32, value: T) -> Vec { - Writer::new_with_selector(selector) - .write_raw_bytes(&encode_arguments(value)) - .build() -} - -/// Decode the value from its Solidity ABI format. -/// If `T` is a tuple it is decoded as a Solidity tuple with dynamic-size offset. -fn decode(input: &[u8]) -> MayRevert { - Reader::new(input).read() -} - -/// Decode the value from its Solidity ABI format. -/// If `T` is a tuple every element is decoded without a prefixed offset. -/// It matches the encoding of Solidity function arguments and return value, or event data. -pub fn decode_arguments(input: &[u8]) -> MayRevert { - if T::is_explicit_tuple() && !T::has_static_size() { - let writer = Writer::new(); - let mut writer = writer.write(U256::from(32)); - writer.write_pointer(input.to_vec()); - let input = writer.build(); - decode(&input) - } else { - decode(input) - } -} - -pub use self::{decode_arguments as decode_return_value, decode_arguments as decode_event_data}; - -/// Extracts the selector from the start of the input, or returns `None` if the input is too short. -pub fn selector(input: &[u8]) -> Option { - input.get(0..4).map(|s| { - let mut buffer = [0u8; 4]; - buffer.copy_from_slice(s); - u32::from_be_bytes(buffer) - }) -} - -/// Wrapper around an EVM input slice. -#[derive(Clone, Copy, Debug)] -pub struct Reader<'inner> { - input: &'inner [u8], - cursor: usize, -} - -impl<'inner> Reader<'inner> { - /// Create a Reader. - pub fn new(input: &'inner [u8]) -> Self { - Self { input, cursor: 0 } - } - - /// Create a Reader while skipping an initial selector. - pub fn new_skip_selector(input: &'inner [u8]) -> MayRevert { - if input.len() < 4 { - return Err(RevertReason::read_out_of_bounds("selector").into()); - } - - Ok(Self::new(&input[4..])) - } - - /// Check the input has at least the correct amount of arguments before the end (32 bytes - /// values). - pub fn expect_arguments(&self, args: usize) -> MayRevert { - if self.input.len() >= self.cursor + args * 32 { - Ok(()) - } else { - Err(RevertReason::ExpectedAtLeastNArguments(args).into()) - } - } - - /// Read data from the input. - pub fn read(&mut self) -> MayRevert { - T::read(self) - } - - /// Read raw bytes from the input. - /// Doesn't handle any alignment checks, prefer using `read` instead of possible. - /// Returns an error if trying to parse out of bounds. - pub fn read_raw_bytes(&mut self, len: usize) -> MayRevert<&[u8]> { - let range = self.move_cursor(len)?; - - let data = self - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds("raw bytes"))?; - - Ok(data) - } - - /// Reads a pointer, returning a reader targetting the pointed location. - pub fn read_pointer(&mut self) -> MayRevert { - let offset: usize = self - .read::() - .map_err(|_| RevertReason::read_out_of_bounds("pointer"))? - .try_into() - .map_err(|_| RevertReason::value_is_too_large("pointer"))?; - - if offset >= self.input.len() { - return Err(RevertReason::PointerToOutofBound.into()); - } - - Ok(Self { input: &self.input[offset..], cursor: 0 }) - } - - /// Read remaining bytes - pub fn read_till_end(&mut self) -> MayRevert<&[u8]> { - let range = self.move_cursor(self.input.len() - self.cursor)?; - - let data = self - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds("raw bytes"))?; - - Ok(data) - } - - /// Move the reading cursor with provided length, and return a range from the previous cursor - /// location to the new one. - /// Checks cursor overflows. - fn move_cursor(&mut self, len: usize) -> MayRevert> { - let start = self.cursor; - let end = self.cursor.checked_add(len).ok_or(RevertReason::CursorOverflow)?; - - self.cursor = end; - - Ok(start..end) - } -} - -/// Help build an EVM input/output data. -/// -/// Functions takes `self` to allow chaining all calls like -/// `Writer::new().write(...).write(...).build()`. -/// While it could be more ergonomic to take &mut self, this would -/// prevent to have a `build` function that don't clone the output. -#[derive(Clone, Debug)] -pub struct Writer { - pub(crate) data: Vec, - offset_data: Vec, - selector: Option, -} - -#[derive(Clone, Debug)] -struct OffsetChunk { - // Offset location in the container data. - offset_position: usize, - // Data pointed by the offset that must be inserted at the end of container data. - data: Vec, - // Inside of arrays, the offset is not from the start of array data (length), but from the - // start of the item. This shift allow to correct this. - offset_shift: usize, -} - -impl Default for Writer { - fn default() -> Self { - Self::new() - } -} - -impl Writer { - /// Creates a new empty output builder (without selector). - pub fn new() -> Self { - Self { data: vec![], offset_data: vec![], selector: None } - } - - /// Creates a new empty output builder with provided selector. - /// Selector will only be appended before the data when calling - /// `build` to not mess with the offsets. - pub fn new_with_selector(selector: impl Into) -> Self { - Self { data: vec![], offset_data: vec![], selector: Some(selector.into()) } - } - - // Return the built data. - pub fn build(mut self) -> Vec { - Self::bake_offsets(&mut self.data, self.offset_data); - - if let Some(selector) = self.selector { - let mut output = selector.to_be_bytes().to_vec(); - output.append(&mut self.data); - output - } else { - self.data - } - } - - /// Add offseted data at the end of this writer's data, updating the offsets. - fn bake_offsets(output: &mut Vec, offsets: Vec) { - for mut offset_chunk in offsets { - let offset_position = offset_chunk.offset_position; - let offset_position_end = offset_position + 32; - - // The offset is the distance between the start of the data and the - // start of the pointed data (start of a struct, length of an array). - // Offsets in inner data are relative to the start of their respective "container". - // However in arrays the "container" is actually the item itself instead of the whole - // array, which is corrected by `offset_shift`. - let free_space_offset = output.len() - offset_chunk.offset_shift; - - output[offset_position..offset_position_end].copy_from_slice(U256::from(free_space_offset).to_big_endian().as_ref()); - - // Append this data at the end of the current output. - output.append(&mut offset_chunk.data); - } - } - - /// Write arbitrary bytes. - /// Doesn't handle any alignement checks, prefer using `write` instead if possible. - fn write_raw_bytes(mut self, value: &[u8]) -> Self { - self.data.extend_from_slice(value); - self - } - - /// Write data of requested type. - pub fn write(mut self, value: T) -> Self { - T::write(&mut self, value); - self - } - - /// Writes a pointer to given data. - /// The data will be appended when calling `build`. - /// Initially write a dummy value as offset in this writer's data, which will be replaced by - /// the correct offset once the pointed data is appended. - /// - /// Takes `&mut self` since its goal is to be used inside `solidity::Codec` impl and not in - /// chains. - pub fn write_pointer(&mut self, data: Vec) { - let offset_position = self.data.len(); - H256::write(self, H256::repeat_byte(0xff)); - - self.offset_data.push(OffsetChunk { offset_position, data, offset_shift: 0 }); - } -} - -/// Adapter to parse data as a first type then convert it to another one. -/// Useful for old precompiles in which Solidity arguments where set larger than -/// the needed Rust type. -#[derive(Clone, Copy, Debug)] -pub struct Convert { - inner: C, - _phantom: PhantomData

, -} - -impl From for Convert { - fn from(value: C) -> Self { - Self { inner: value, _phantom: PhantomData } - } -} - -impl Convert { - pub fn converted(self) -> C { - self.inner - } -} - -impl Codec for Convert -where - P: Codec + TryInto, - C: Codec + Into

, -{ - fn read(reader: &mut Reader) -> MayRevert { - let c = P::read(reader)? - .try_into() - .map_err(|_| RevertReason::value_is_too_large(C::signature()))?; - - Ok(Self { inner: c, _phantom: PhantomData }) - } - - fn write(writer: &mut Writer, value: Self) { - P::write(writer, value.inner.into()) - } - - fn has_static_size() -> bool { - P::has_static_size() - } - - fn signature() -> String { - P::signature() - } -} diff --git a/precompiles/utils/src/solidity/codec/native.rs b/precompiles/utils/src/solidity/codec/native.rs deleted file mode 100644 index 9af8e1462..000000000 --- a/precompiles/utils/src/solidity/codec/native.rs +++ /dev/null @@ -1,381 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use super::*; -use crate::solidity::revert::InjectBacktrace; -use impl_trait_for_tuples::impl_for_tuples; -use sp_core::{ConstU32, Get, H160}; - -impl Codec for () { - fn read(_reader: &mut Reader) -> MayRevert { - Ok(()) - } - - fn write(_writer: &mut Writer, _value: Self) {} - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - String::from("()") - } -} - -#[impl_for_tuples(1, 18)] -impl Codec for Tuple { - fn has_static_size() -> bool { - for_tuples!(#( Tuple::has_static_size() )&*) - } - - fn read(reader: &mut Reader) -> MayRevert { - if Self::has_static_size() { - let mut index = 0; - Ok(for_tuples!( ( #( { - let elem = reader.read::().in_tuple(index)?; - index +=1; - elem - } ),* ) )) - } else { - let reader = &mut reader.read_pointer()?; - let mut index = 0; - Ok(for_tuples!( ( #( { - let elem = reader.read::().in_tuple(index)?; - index +=1; - elem - } ),* ) )) - } - } - - fn write(writer: &mut Writer, value: Self) { - if Self::has_static_size() { - for_tuples!( #( Tuple::write(writer, value.Tuple); )* ); - } else { - let mut inner_writer = Writer::new(); - for_tuples!( #( Tuple::write(&mut inner_writer, value.Tuple); )* ); - writer.write_pointer(inner_writer.build()); - } - } - - fn signature() -> String { - let mut subtypes = Vec::new(); - for_tuples!( #( subtypes.push(Tuple::signature()); )* ); - alloc::format!("({})", subtypes.join(",")) - } - - fn is_explicit_tuple() -> bool { - true - } -} - -impl Codec for H256 { - fn read(reader: &mut Reader) -> MayRevert { - let range = reader.move_cursor(32)?; - - let data = reader - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds("bytes32"))?; - - Ok(H256::from_slice(data)) - } - - fn write(writer: &mut Writer, value: Self) { - writer.data.extend_from_slice(value.as_bytes()); - } - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - String::from("bytes32") - } -} - -/// The `address` type of Solidity. -/// H160 could represent 2 types of data (bytes20 and address) that are not encoded the same way. -/// To avoid issues writing H160 is thus not supported. -#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] -pub struct Address(pub H160); - -impl From for Address { - fn from(a: H160) -> Address { - Address(a) - } -} - -impl From

for H160 { - fn from(a: Address) -> H160 { - a.0 - } -} - -impl Address { - pub fn as_u64(&self) -> Option { - let _u64 = self.0.to_low_u64_be(); - if self.0 == H160::from_low_u64_be(_u64) { - Some(_u64) - } else { - None - } - } -} - -impl Codec for Address { - fn read(reader: &mut Reader) -> MayRevert { - let range = reader.move_cursor(32)?; - - let data = reader - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds("address"))?; - - Ok(H160::from_slice(&data[12..32]).into()) - } - - fn write(writer: &mut Writer, value: Self) { - H256::write(writer, value.0.into()); - } - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - String::from("address") - } -} - -impl Codec for U256 { - fn read(reader: &mut Reader) -> MayRevert { - let range = reader.move_cursor(32)?; - - let data = reader - .input - .get(range) - .ok_or_else(|| RevertReason::read_out_of_bounds("uint256"))?; - - Ok(U256::from_big_endian(data)) - } - - fn write(writer: &mut Writer, value: Self) { - let buffer: [u8; 32] = value.to_big_endian(); - // value.to_big_endian(&mut buffer); - writer.data.extend_from_slice(&buffer); - } - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - String::from("uint256") - } -} - -macro_rules! impl_evmdata_for_uints { - ($($uint:ty, )*) => { - $( - impl Codec for $uint { - fn read(reader: &mut Reader) -> MayRevert { - let value256: U256 = reader.read() - .map_err(|_| RevertReason::read_out_of_bounds( - Self::signature() - ))?; - - value256 - .try_into() - .map_err(|_| RevertReason::value_is_too_large( - Self::signature() - ).into()) - } - - fn write(writer: &mut Writer, value: Self) { - U256::write(writer, value.into()); - } - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - alloc::format!("uint{}", core::mem::size_of::() * 8) - } - } - )* - }; -} - -impl_evmdata_for_uints!(u8, u16, u32, u64, u128,); - -impl Codec for bool { - fn read(reader: &mut Reader) -> MayRevert { - let h256 = H256::read(reader).map_err(|_| RevertReason::read_out_of_bounds("bool"))?; - - Ok(!h256.is_zero()) - } - - fn write(writer: &mut Writer, value: Self) { - let mut buffer = [0u8; 32]; - if value { - buffer[31] = 1; - } - - writer.data.extend_from_slice(&buffer); - } - - fn has_static_size() -> bool { - true - } - - fn signature() -> String { - String::from("bool") - } -} - -type ConstU32Max = ConstU32<{ u32::MAX }>; - -impl Codec for Vec { - fn read(reader: &mut Reader) -> MayRevert { - BoundedVec::::read(reader).map(|x| x.into()) - } - - fn write(writer: &mut Writer, value: Self) { - BoundedVec::::write( - writer, - BoundedVec { inner: value, _phantom: PhantomData }, - ) - } - - fn has_static_size() -> bool { - false - } - - fn signature() -> String { - alloc::format!("{}[]", T::signature()) - } -} - -/// Wrapper around a Vec that provides a max length bound on read. -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct BoundedVec { - inner: Vec, - _phantom: PhantomData, -} - -impl> Codec for BoundedVec { - fn read(reader: &mut Reader) -> MayRevert { - let mut inner_reader = reader.read_pointer()?; - - let array_size: usize = inner_reader - .read::() - .map_err(|_| RevertReason::read_out_of_bounds("length"))? - .try_into() - .map_err(|_| RevertReason::value_is_too_large("length"))?; - - if array_size > S::get() as usize { - return Err(RevertReason::value_is_too_large("length").into()); - } - - let mut array = vec![]; - - let mut item_reader = Reader { - input: inner_reader - .input - .get(32..) - .ok_or_else(|| RevertReason::read_out_of_bounds("array content"))?, - cursor: 0, - }; - - for i in 0..array_size { - array.push(item_reader.read().in_array(i)?); - } - - Ok(BoundedVec { inner: array, _phantom: PhantomData }) - } - - fn write(writer: &mut Writer, value: Self) { - let value: Vec<_> = value.into(); - let mut inner_writer = Writer::new().write(U256::from(value.len())); - - for inner in value { - // Any offset in items are relative to the start of the item instead of the - // start of the array. However if there is offseted data it must but appended after - // all items (offsets) are written. We thus need to rely on `compute_offsets` to do - // that, and must store a "shift" to correct the offsets. - let shift = inner_writer.data.len(); - let item_writer = Writer::new().write(inner); - - inner_writer = inner_writer.write_raw_bytes(&item_writer.data); - for mut offset_datum in item_writer.offset_data { - offset_datum.offset_shift += 32; - offset_datum.offset_position += shift; - inner_writer.offset_data.push(offset_datum); - } - } - - writer.write_pointer(inner_writer.build()); - } - - fn has_static_size() -> bool { - false - } - - fn signature() -> String { - alloc::format!("{}[]", T::signature()) - } -} - -impl From> for BoundedVec { - fn from(value: Vec) -> Self { - BoundedVec { inner: value, _phantom: PhantomData } - } -} - -impl From<&[T]> for BoundedVec { - fn from(value: &[T]) -> Self { - BoundedVec { inner: value.to_vec(), _phantom: PhantomData } - } -} - -impl From<[T; N]> for BoundedVec { - fn from(value: [T; N]) -> Self { - BoundedVec { inner: value.to_vec(), _phantom: PhantomData } - } -} - -impl From> for Vec { - fn from(value: BoundedVec) -> Self { - value.inner - } -} - -impl Default for BoundedVec { - fn default() -> Self { - Self { inner: Default::default(), _phantom: PhantomData } - } -} - -impl BoundedVec { - pub fn len(&self) -> usize { - self.inner.len() - } - - pub fn is_empty(&self) -> bool { - self.len() == 0 - } -} diff --git a/precompiles/utils/src/solidity/codec/xcm.rs b/precompiles/utils/src/solidity/codec/xcm.rs deleted file mode 100644 index ed67785f0..000000000 --- a/precompiles/utils/src/solidity/codec/xcm.rs +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Encoding of XCM types for solidity - -use crate::solidity::{ - codec::{bytes::*, Codec, Reader, Writer}, - revert::{BacktraceExt, InjectBacktrace, MayRevert, RevertReason}, -}; -use alloc::string::String; -use frame_support::{ensure, traits::ConstU32}; -use sp_core::H256; -use sp_std::vec::Vec; -use sp_weights::Weight; -use xcm::latest::{Junction, Junctions, Location, NetworkId}; - -pub const JUNCTION_SIZE_LIMIT: u32 = 2u32.pow(16); - -// Function to convert network id to bytes -// We don't implement solidity::Codec here as these bytes will be appended only -// to certain Junction variants -// Each NetworkId variant is represented as bytes -// The first byte represents the enum variant to be used. -// - Indexes 0,2,3 represent XCM V2 variants -// - Index 1 changes name in V3 (`ByGenesis`), but is compatible with V2 `Named` -// - Indexes 4~11 represent new XCM V3 variants -// The rest of the bytes (if any), represent the additional data that such enum variant requires -// In such a case, since NetworkIds will be appended at the end, we will read the buffer until the -// end to recover the name - -pub(crate) fn network_id_to_bytes(network_id: Option) -> Vec { - let mut encoded: Vec = Vec::new(); - match network_id { - None => { - encoded.push(0u8); - encoded - }, - Some(NetworkId::ByGenesis(id)) => { - encoded.push(1u8); - encoded.append(&mut id.into()); - encoded - }, - Some(NetworkId::Polkadot) => { - encoded.push(2u8); - encoded.push(2u8); - encoded - }, - Some(NetworkId::Kusama) => { - encoded.push(3u8); - encoded.push(3u8); - encoded - }, - Some(NetworkId::ByFork { block_number, block_hash }) => { - encoded.push(4u8); - encoded.push(1u8); - encoded.append(&mut block_number.to_be_bytes().into()); - encoded.append(&mut block_hash.into()); - encoded - }, - Some(NetworkId::Ethereum { chain_id }) => { - encoded.push(8u8); - encoded.push(7u8); - encoded.append(&mut chain_id.to_be_bytes().into()); - encoded - }, - Some(NetworkId::BitcoinCore) => { - encoded.push(9u8); - encoded.push(8u8); - encoded - }, - Some(NetworkId::BitcoinCash) => { - encoded.push(10u8); - encoded.push(9u8); - encoded - }, - Some(NetworkId::PolkadotBulletin) => { - encoded.push(11u8); - encoded.push(10u8); - encoded - }, - } -} - -// Function to convert bytes to networkId -pub(crate) fn network_id_from_bytes(encoded_bytes: Vec) -> MayRevert> { - ensure!(!encoded_bytes.is_empty(), RevertReason::custom("Junctions cannot be empty")); - let mut encoded_network_id = Reader::new(&encoded_bytes); - - let network_selector = encoded_network_id - .read_raw_bytes(1) - .map_err(|_| RevertReason::read_out_of_bounds("network selector (1 byte)"))?; - - match network_selector[0] { - 0 => Ok(None), - 1 => Ok(Some(NetworkId::ByGenesis( - encoded_network_id - .read_till_end() - .in_field("genesis")? - .to_vec() - .try_into() - .map_err(|_| { - RevertReason::value_is_too_large("network by genesis").in_field("genesis") - })?, - ))), - 2 => Ok(Some(NetworkId::Polkadot)), - 3 => Ok(Some(NetworkId::Kusama)), - 4 => { - let mut block_number: [u8; 8] = Default::default(); - block_number.copy_from_slice(encoded_network_id.read_raw_bytes(8)?); - - let mut block_hash: [u8; 32] = Default::default(); - block_hash.copy_from_slice(encoded_network_id.read_raw_bytes(32)?); - Ok(Some(NetworkId::ByFork { - block_number: u64::from_be_bytes(block_number), - block_hash, - })) - }, - 8 => { - let mut chain_id: [u8; 8] = Default::default(); - chain_id.copy_from_slice(encoded_network_id.read_raw_bytes(8)?); - Ok(Some(NetworkId::Ethereum { chain_id: u64::from_be_bytes(chain_id) })) - }, - 9 => Ok(Some(NetworkId::BitcoinCore)), - 10 => Ok(Some(NetworkId::BitcoinCash)), - _ => Err(RevertReason::custom("Non-valid Network Id").into()), - } -} - -impl Codec for Junction { - fn read(reader: &mut Reader) -> MayRevert { - let junction = reader.read::>>()?; - let junction_bytes: Vec<_> = junction.into(); - - ensure!(!junction_bytes.is_empty(), RevertReason::custom("Junctions cannot be empty")); - - // For simplicity we use an EvmReader here - let mut encoded_junction = Reader::new(&junction_bytes); - - // We take the first byte - let enum_selector = encoded_junction - .read_raw_bytes(1) - .map_err(|_| RevertReason::read_out_of_bounds("junction variant"))?; - - // The firs byte selects the enum variant - match enum_selector[0] { - 0 => { - // In the case of Junction::Parachain, we need 4 additional bytes - let mut data: [u8; 4] = Default::default(); - data.copy_from_slice(encoded_junction.read_raw_bytes(4)?); - let para_id = u32::from_be_bytes(data); - Ok(Junction::Parachain(para_id)) - }, - 1 => { - // In the case of Junction::AccountId32, we need 32 additional bytes plus NetworkId - let mut account: [u8; 32] = Default::default(); - account.copy_from_slice(encoded_junction.read_raw_bytes(32)?); - - let network = encoded_junction.read_till_end()?.to_vec(); - Ok(Junction::AccountId32 { network: network_id_from_bytes(network)?, id: account }) - }, - 2 => { - // In the case of Junction::AccountIndex64, we need 8 additional bytes plus - // NetworkId - let mut index: [u8; 8] = Default::default(); - index.copy_from_slice(encoded_junction.read_raw_bytes(8)?); - // Now we read the network - let network = encoded_junction.read_till_end()?.to_vec(); - Ok(Junction::AccountIndex64 { - network: network_id_from_bytes(network)?, - index: u64::from_be_bytes(index), - }) - }, - 3 => { - // In the case of Junction::AccountKey20, we need 20 additional bytes plus NetworkId - let mut account: [u8; 20] = Default::default(); - account.copy_from_slice(encoded_junction.read_raw_bytes(20)?); - - let network = encoded_junction.read_till_end()?.to_vec(); - Ok(Junction::AccountKey20 { - network: network_id_from_bytes(network)?, - key: account, - }) - }, - 4 => Ok(Junction::PalletInstance(encoded_junction.read_raw_bytes(1)?[0])), - 5 => { - // In the case of Junction::GeneralIndex, we need 16 additional bytes - let mut general_index: [u8; 16] = Default::default(); - general_index.copy_from_slice(encoded_junction.read_raw_bytes(16)?); - Ok(Junction::GeneralIndex(u128::from_be_bytes(general_index))) - }, - 6 => { - let length = encoded_junction - .read_raw_bytes(1) - .map_err(|_| RevertReason::read_out_of_bounds("General Key length"))?[0]; - - let data = encoded_junction.read::().in_field("data")?.into(); - - Ok(Junction::GeneralKey { length, data }) - }, - 7 => Ok(Junction::OnlyChild), - 8 => Err(RevertReason::custom("Junction::Plurality not supported yet").into()), - 9 => { - let network = encoded_junction.read_till_end()?.to_vec(); - if let Some(network_id) = network_id_from_bytes(network)? { - Ok(Junction::GlobalConsensus(network_id)) - } else { - Err(RevertReason::custom("Unknown NetworkId").into()) - } - }, - _ => Err(RevertReason::custom("Unknown Junction variant").into()), - } - } - - fn write(writer: &mut Writer, value: Self) { - let mut encoded: Vec = Vec::new(); - let encoded_bytes: UnboundedBytes = match value { - Junction::Parachain(para_id) => { - encoded.push(0u8); - encoded.append(&mut para_id.to_be_bytes().to_vec()); - encoded.as_slice().into() - }, - Junction::AccountId32 { network, id } => { - encoded.push(1u8); - encoded.append(&mut id.to_vec()); - encoded.append(&mut network_id_to_bytes(network)); - encoded.as_slice().into() - }, - Junction::AccountIndex64 { network, index } => { - encoded.push(2u8); - encoded.append(&mut index.to_be_bytes().to_vec()); - encoded.append(&mut network_id_to_bytes(network)); - encoded.as_slice().into() - }, - Junction::AccountKey20 { network, key } => { - encoded.push(3u8); - encoded.append(&mut key.to_vec()); - encoded.append(&mut network_id_to_bytes(network)); - encoded.as_slice().into() - }, - Junction::PalletInstance(intance) => { - encoded.push(4u8); - encoded.append(&mut intance.to_be_bytes().to_vec()); - encoded.as_slice().into() - }, - Junction::GeneralIndex(id) => { - encoded.push(5u8); - encoded.append(&mut id.to_be_bytes().to_vec()); - encoded.as_slice().into() - }, - Junction::GeneralKey { length, data } => { - encoded.push(6u8); - encoded.push(length); - encoded.append(&mut data.into()); - encoded.as_slice().into() - }, - Junction::OnlyChild => { - encoded.push(7u8); - encoded.as_slice().into() - }, - Junction::GlobalConsensus(network_id) => { - encoded.push(9u8); - encoded.append(&mut network_id_to_bytes(Some(network_id))); - encoded.as_slice().into() - }, - // TODO: The only missing item here is Junciton::Plurality. This is a complex encoded - // type that we need to evaluate how to support - _ => unreachable!("Junction::Plurality not supported yet"), - }; - Codec::write(writer, encoded_bytes); - } - - fn has_static_size() -> bool { - false - } - - fn signature() -> String { - UnboundedBytes::signature() - } -} - -impl Codec for Junctions { - fn read(reader: &mut Reader) -> MayRevert { - let junctions_bytes: Vec = reader.read()?; - let mut junctions = Junctions::Here; - for item in junctions_bytes { - junctions - .push(item) - .map_err(|_| RevertReason::custom("overflow when reading junctions"))?; - } - - Ok(junctions) - } - - fn write(writer: &mut Writer, value: Self) { - let encoded: Vec = value.iter().copied().collect(); - Codec::write(writer, encoded); - } - - fn has_static_size() -> bool { - false - } - - fn signature() -> String { - Vec::::signature() - } -} - -// Cannot used derive macro since it is a foreign struct. -impl Codec for Location { - fn read(reader: &mut Reader) -> MayRevert { - let (parents, interior) = reader.read().map_in_tuple_to_field(&["parents", "interior"])?; - Ok(Location { parents, interior }) - } - - fn write(writer: &mut Writer, value: Self) { - Codec::write(writer, (value.parents, value.interior)); - } - - fn has_static_size() -> bool { - <(u8, Junctions)>::has_static_size() - } - - fn signature() -> String { - <(u8, Junctions)>::signature() - } -} - -impl Codec for Weight { - fn read(reader: &mut Reader) -> MayRevert { - let (ref_time, proof_size) = - reader.read().map_in_tuple_to_field(&["ref_time", "proof_size"])?; - Ok(Weight::from_parts(ref_time, proof_size)) - } - - fn write(writer: &mut Writer, value: Self) { - Codec::write(writer, (value.ref_time(), value.proof_size())); - } - - fn has_static_size() -> bool { - <(u64, u64)>::has_static_size() - } - - fn signature() -> String { - <(u64, u64)>::signature() - } -} diff --git a/precompiles/utils/src/solidity/mod.rs b/precompiles/utils/src/solidity/mod.rs deleted file mode 100644 index 13d6d6568..000000000 --- a/precompiles/utils/src/solidity/mod.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2019-2023 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Provides utilities for compatibility with Solidity tooling. - -pub mod codec; -pub mod modifier; -pub mod revert; - -pub use codec::{ - decode_arguments, decode_event_data, decode_return_value, encode_arguments, encode_event_data, - encode_return_value, encode_with_selector, Codec, -}; diff --git a/precompiles/utils/src/solidity/modifier.rs b/precompiles/utils/src/solidity/modifier.rs deleted file mode 100644 index 40fb968a7..000000000 --- a/precompiles/utils/src/solidity/modifier.rs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Provide checks related to function modifiers (view/payable). - -use crate::solidity::revert::{MayRevert, RevertReason}; -use fp_evm::Context; -use sp_core::U256; - -/// Represents modifiers a Solidity function can be annotated with. -#[derive(Copy, Clone, PartialEq, Eq)] -pub enum FunctionModifier { - /// Function that doesn't modify the state. - View, - /// Function that modifies the state but refuse receiving funds. - /// Correspond to a Solidity function with no modifiers. - NonPayable, - /// Function that modifies the state and accept funds. - Payable, -} - -/// Check that a function call is compatible with the context it is -/// called into. -pub fn check_function_modifier( - context: &Context, - is_static: bool, - modifier: FunctionModifier, -) -> MayRevert { - if is_static && modifier != FunctionModifier::View { - return Err(RevertReason::custom("Can't call non-static function in static context").into()); - } - - if modifier != FunctionModifier::Payable && context.apparent_value > U256::zero() { - return Err(RevertReason::custom("Function is not payable").into()); - } - - Ok(()) -} diff --git a/precompiles/utils/src/solidity/revert.rs b/precompiles/utils/src/solidity/revert.rs deleted file mode 100644 index 3b63ce997..000000000 --- a/precompiles/utils/src/solidity/revert.rs +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Utilities to work with revert messages with support for backtraces and -//! consistent formatting. - -use crate::solidity::{self, codec::bytes::UnboundedBytes}; -use alloc::string::{String, ToString}; -use fp_evm::{ExitRevert, PrecompileFailure}; -use sp_std::vec::Vec; - -/// Represent the result of a computation that can revert. -pub type MayRevert = Result; - -/// Generate an encoded revert from a simple String. -/// Returns a `PrecompileFailure` that fits in an `EvmResult::Err`. -pub fn revert(msg: impl Into) -> PrecompileFailure { - RevertReason::custom(msg).into() -} - -/// Generate an encoded revert from a simple String. -/// Returns a `Vec` in case `PrecompileFailure` is too high level. -pub fn revert_as_bytes(msg: impl Into) -> Vec { - Revert::new(RevertReason::custom(msg)).to_encoded_bytes() -} - -/// Generic error to build abi-encoded revert output. -/// See: https://docs.soliditylang.org/en/latest/control-structures.html?highlight=revert#revert -pub const ERROR_SELECTOR: u32 = 0x08c379a0; - -#[derive(Clone, PartialEq, Eq)] -enum BacktracePart { - Field(String), - Tuple(usize), - Array(usize), -} - -/// Backtrace of an revert. -/// Built depth-first. -/// Implement `Display` to render the backtrace as a string. -#[derive(Default, PartialEq, Eq)] -pub struct Backtrace(Vec); - -impl Backtrace { - /// Create a new empty backtrace. - pub fn new() -> Self { - Self(Vec::new()) - } - - /// Check if the backtrace is empty. - pub fn is_empty(&self) -> bool { - self.0.is_empty() - } -} - -impl core::fmt::Display for Backtrace { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - for (i, part) in self.0.iter().rev().enumerate() { - match (i, part) { - (0, BacktracePart::Field(field)) => write!(f, "{field}")?, - (_, BacktracePart::Field(field)) => write!(f, ".{field}")?, - (_, BacktracePart::Tuple(index)) => write!(f, ".{index}")?, - (_, BacktracePart::Array(index)) => write!(f, "[{index}]")?, - } - } - Ok(()) - } -} - -/// Possible revert reasons. -#[non_exhaustive] -#[derive(PartialEq, Eq)] -pub enum RevertReason { - /// A custom revert reason if other variants are not appropriate. - Custom(String), - /// Tried to read data out of bounds. - ReadOutOfBounds { - /// What was being read? - what: String, - }, - /// An unknown selector has been provided. - UnknownSelector, - /// A value is too large to fit in the wanted type. - /// For security reasons integers are always parsed as `uint256` then - /// casted to the wanted type. If the value overflows this type then this - /// revert is used. - ValueIsTooLarge { - /// What was being read? - what: String, - }, - /// A pointer (used for structs and arrays) points out of bounds. - PointerToOutofBound, - /// The reading cursor overflowed. - /// This should realistically never happen as it would require an input - /// of length larger than 2^64, which would cost too much to be included - /// in a block. - CursorOverflow, - /// Used by a check that the input contains at least N static arguments. - /// Often use to return early if the input is too short. - ExpectedAtLeastNArguments(usize), -} - -impl RevertReason { - /// Create a `RevertReason::Custom` from anything that can be converted to a `String`. - /// Argument is the custom revert message. - pub fn custom(s: impl Into) -> Self { - RevertReason::Custom(s.into()) - } - - /// Create a `RevertReason::ReadOutOfBounds` from anything that can be converted to a `String`. - /// Argument names what was expected to be read. - pub fn read_out_of_bounds(what: impl Into) -> Self { - RevertReason::ReadOutOfBounds { what: what.into() } - } - - /// Create a `RevertReason::ValueIsTooLarge` from anything that can be converted to a `String`. - /// Argument names what was expected to be read. - pub fn value_is_too_large(what: impl Into) -> Self { - RevertReason::ValueIsTooLarge { what: what.into() } - } -} - -impl core::fmt::Display for RevertReason { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - match self { - RevertReason::Custom(s) => write!(f, "{s}"), - RevertReason::ReadOutOfBounds { what } => { - write!(f, "Tried to read {what} out of bounds") - }, - RevertReason::UnknownSelector => write!(f, "Unknown selector"), - RevertReason::ValueIsTooLarge { what } => write!(f, "Value is too large for {what}"), - RevertReason::PointerToOutofBound => write!(f, "Pointer points to out of bound"), - RevertReason::CursorOverflow => write!(f, "Reading cursor overflowed"), - RevertReason::ExpectedAtLeastNArguments(n) => { - write!(f, "Expected at least {n} arguments") - }, - } - } -} - -/// An revert returned by various functions in precompile-utils. -/// Allows to dynamically construct the backtrace (backtrace) of the revert -/// and manage it in a typed way. -/// Can be transformed into a `PrecompileFailure::Revert` and `String`, and -/// implement `Display` and `Debug`. -#[derive(PartialEq, Eq)] -pub struct Revert { - reason: RevertReason, - backtrace: Backtrace, -} - -impl Revert { - /// Create a new `Revert` with a `RevertReason` and - /// an empty backtrace. - pub fn new(reason: RevertReason) -> Self { - Self { reason, backtrace: Backtrace::new() } - } - - /// For all `RevertReason` variants that have a `what` field, change its value. - /// Otherwise do nothing. - /// It is useful when writing custom types `solidity::Codec` implementations using - /// simpler types. - pub fn change_what(mut self, what: impl Into) -> Self { - let what = what.into(); - - self.reason = match self.reason { - RevertReason::ReadOutOfBounds { .. } => RevertReason::ReadOutOfBounds { what }, - RevertReason::ValueIsTooLarge { .. } => RevertReason::ValueIsTooLarge { what }, - other => other, - }; - - self - } - - /// Transforms the revert into its bytes representation (from a String). - pub fn to_encoded_bytes(self) -> Vec { - let bytes: Vec = self.into(); - solidity::encode_with_selector(ERROR_SELECTOR, UnboundedBytes::from(bytes)) - } -} - -impl From for Revert { - fn from(a: RevertReason) -> Revert { - Revert::new(a) - } -} - -impl core::fmt::Display for Revert { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - if !self.backtrace.is_empty() { - write!(f, "{}: ", self.backtrace)?; - } - - write!(f, "{}", self.reason) - } -} - -impl core::fmt::Debug for Revert { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - write!(f, "{}", self) - } -} - -impl From for Vec { - fn from(val: Revert) -> Self { - val.to_string().into() - } -} - -/// Allows to inject backtrace data. -pub trait InjectBacktrace { - /// Output type of the injection. - /// Should be a type that can hold a backtrace. - type Output; - - /// Occurs in a field. - fn in_field(self, field: impl Into) -> Self::Output; - - /// Occurs in a tuple. - fn in_tuple(self, index: usize) -> Self::Output; - - /// Occurs in an array at provided index. - fn in_array(self, index: usize) -> Self::Output; -} - -/// Additional function for everything having a Backtrace. -pub trait BacktraceExt { - /// Map last tuple entry into a field. - /// Does nothing if last entry is not a tuple. - /// As in Solidity structs are equivalent to tuples and are tricky to parse correctly, - /// it allows to parse any struct as a tuple (with the correct implementation in this crate) and - /// then map tuple indices to struct fields. - fn map_in_tuple_to_field(self, fields: &[&'static str]) -> Self; -} - -/// Additional functions for Revert and MayRevert. -pub trait RevertExt { - /// Map the reason while keeping the same backtrace. - fn map_reason(self, f: impl FnOnce(RevertReason) -> RevertReason) -> Self; -} - -impl InjectBacktrace for RevertReason { - // `RevertReason` cannot hold a backtrace, thus it wraps - // it into a `Revert`. - type Output = Revert; - - fn in_field(self, field: impl Into) -> Revert { - Revert::new(self).in_field(field) - } - - fn in_array(self, index: usize) -> Revert { - Revert::new(self).in_array(index) - } - - fn in_tuple(self, index: usize) -> Revert { - Revert::new(self).in_tuple(index) - } -} - -impl InjectBacktrace for Backtrace { - type Output = Self; - - fn in_field(mut self, field: impl Into) -> Self { - self.0.push(BacktracePart::Field(field.into())); - self - } - - fn in_array(mut self, index: usize) -> Self { - self.0.push(BacktracePart::Array(index)); - self - } - - fn in_tuple(mut self, index: usize) -> Self { - self.0.push(BacktracePart::Tuple(index)); - self - } -} - -impl BacktraceExt for Backtrace { - fn map_in_tuple_to_field(mut self, fields: &[&'static str]) -> Self { - if let Some(entry) = self.0.last_mut() { - if let BacktracePart::Tuple(index) = *entry { - if let Some(field) = fields.get(index) { - *entry = BacktracePart::Field(field.to_string()) - } - } - } - self - } -} - -impl InjectBacktrace for Revert { - type Output = Self; - - fn in_field(mut self, field: impl Into) -> Self { - self.backtrace = self.backtrace.in_field(field); - self - } - - fn in_array(mut self, index: usize) -> Self { - self.backtrace = self.backtrace.in_array(index); - self - } - - fn in_tuple(mut self, index: usize) -> Self { - self.backtrace = self.backtrace.in_tuple(index); - self - } -} - -impl RevertExt for Revert { - fn map_reason(mut self, f: impl FnOnce(RevertReason) -> RevertReason) -> Self { - self.reason = f(self.reason); - self - } -} - -impl BacktraceExt for Revert { - fn map_in_tuple_to_field(mut self, fields: &[&'static str]) -> Self { - self.backtrace = self.backtrace.map_in_tuple_to_field(fields); - self - } -} - -impl InjectBacktrace for MayRevert { - type Output = Self; - - fn in_field(self, field: impl Into) -> Self { - self.map_err(|e| e.in_field(field)) - } - - fn in_array(self, index: usize) -> Self { - self.map_err(|e| e.in_array(index)) - } - - fn in_tuple(self, index: usize) -> Self { - self.map_err(|e| e.in_tuple(index)) - } -} - -impl RevertExt for MayRevert { - fn map_reason(self, f: impl FnOnce(RevertReason) -> RevertReason) -> Self { - self.map_err(|e| e.map_reason(f)) - } -} - -impl BacktraceExt for MayRevert { - fn map_in_tuple_to_field(self, fields: &[&'static str]) -> Self { - self.map_err(|e| e.map_in_tuple_to_field(fields)) - } -} - -impl From for PrecompileFailure { - fn from(err: Revert) -> Self { - PrecompileFailure::Revert { - exit_status: ExitRevert::Reverted, - output: err.to_encoded_bytes(), - } - } -} - -impl From for PrecompileFailure { - fn from(err: RevertReason) -> Self { - Revert::new(err).into() - } -} diff --git a/precompiles/utils/src/substrate.rs b/precompiles/utils/src/substrate.rs deleted file mode 100644 index bd279c9b1..000000000 --- a/precompiles/utils/src/substrate.rs +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Utils related to Substrate features: -//! - Substrate call dispatch. -//! - Substrate DB read and write costs - -use sp_runtime::traits::Dispatchable; - -use crate::{evm::handle::using_precompile_handle, solidity::revert::revert}; -use core::marker::PhantomData; -use fp_evm::{ExitError, PrecompileFailure, PrecompileHandle}; -use frame_support::{ - dispatch::{GetDispatchInfo, PostDispatchInfo}, - pallet_prelude::*, - traits::Get, -}; -use pallet_evm::GasWeightMapping; - -/// System account size in bytes = Pallet_Name_Hash (16) + Storage_name_hash (16) + -/// Blake2_128Concat (16) + AccountId (32) + AccountInfo (4 + 12 + AccountData (4* 16)) = 160 -pub const SYSTEM_ACCOUNT_SIZE: u64 = 160; - -#[derive(Debug)] -pub enum TryDispatchError { - Evm(ExitError), - Substrate(DispatchError), -} - -impl From for PrecompileFailure { - fn from(f: TryDispatchError) -> PrecompileFailure { - match f { - TryDispatchError::Evm(e) => PrecompileFailure::Error { exit_status: e }, - TryDispatchError::Substrate(e) => - revert(alloc::format!("Dispatched call failed with error: {e:?}")), - } - } -} - -/// Helper functions requiring a Substrate runtime. -/// This runtime must of course implement `pallet_evm::Config`. -#[derive(Clone, Copy, Debug)] -pub struct RuntimeHelper(PhantomData); - -impl RuntimeHelper -where - Runtime: pallet_evm::Config, - Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, -{ - #[inline(always)] - pub fn reocrd_external_cost( - handle: &mut impl PrecompileHandle, - weight: Weight, - storage_growth: u64, - ) -> Result<(), ExitError> { - // Make sure there is enough gas. - let remaining_gas = handle.remaining_gas(); - let required_gas = Runtime::GasWeightMapping::weight_to_gas(weight); - if required_gas > remaining_gas { - return Err(ExitError::OutOfGas); - } - - // Make sure there is enough remaining weight - // TODO: record ref time when precompile will be benchmarked - handle.record_external_cost(None, Some(weight.proof_size()), Some(storage_growth)) - } - - #[inline(always)] - pub fn refund_weight_v2_cost( - handle: &mut impl PrecompileHandle, - weight: Weight, - maybe_actual_weight: Option, - ) -> Result { - // Refund weights and compute used weight them record used gas - // TODO: refund ref time when precompile will be benchmarked - let used_weight = if let Some(actual_weight) = maybe_actual_weight { - let refund_weight = weight.checked_sub(&actual_weight).unwrap_or_default(); - handle.refund_external_cost(None, Some(refund_weight.proof_size())); - actual_weight - } else { - weight - }; - let used_gas = Runtime::GasWeightMapping::weight_to_gas(used_weight); - handle.record_cost(used_gas)?; - Ok(used_gas) - } - - /// Try to dispatch a Substrate call. - /// Return an error if there are not enough gas, or if the call fails. - /// If successful returns the used gas using the Runtime GasWeightMapping. - pub fn try_dispatch( - handle: &mut impl PrecompileHandle, - origin: ::RuntimeOrigin, - call: Call, - storage_growth: u64, - ) -> Result - where - Runtime::RuntimeCall: From, - { - let call = Runtime::RuntimeCall::from(call); - let dispatch_info = call.get_dispatch_info(); - - // TODO call_weight vs extension_weight? - Self::reocrd_external_cost(handle, dispatch_info.call_weight, storage_growth) - .map_err(TryDispatchError::Evm)?; - - // Dispatch call. - // It may be possible to not record gas cost if the call returns Pays::No. - // However while Substrate handle checking weight while not making the sender pay for it, - // the EVM doesn't. It seems this safer to always record the costs to avoid unmetered - // computations. - let post_dispatch_info = using_precompile_handle(handle, || call.dispatch(origin)) - .map_err(|e| TryDispatchError::Substrate(e.error))?; - - Self::refund_weight_v2_cost(handle, dispatch_info.call_weight, post_dispatch_info.actual_weight) - .map_err(TryDispatchError::Evm)?; - - Ok(post_dispatch_info) - } -} - -impl RuntimeHelper -where - Runtime: pallet_evm::Config, -{ - /// Cost of a Substrate DB write in gas. - pub fn db_write_gas_cost() -> u64 { - ::GasWeightMapping::weight_to_gas( - ::DbWeight::get().writes(1), - ) - } - - /// Cost of a Substrate DB read in gas. - pub fn db_read_gas_cost() -> u64 { - ::GasWeightMapping::weight_to_gas( - ::DbWeight::get().reads(1), - ) - } -} diff --git a/precompiles/utils/src/testing/execution.rs b/precompiles/utils/src/testing/execution.rs deleted file mode 100644 index a907a25eb..000000000 --- a/precompiles/utils/src/testing/execution.rs +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::{ - solidity::codec::Codec, - testing::{decode_revert_message, MockHandle, PrettyLog, SubcallHandle, SubcallTrait}, -}; -use fp_evm::{ - Context, ExitError, ExitSucceed, Log, PrecompileFailure, PrecompileOutput, PrecompileResult, - PrecompileSet, -}; -use sp_core::{H160, U256}; -use sp_std::boxed::Box; - -#[must_use] -pub struct PrecompilesTester<'p, P> { - precompiles: &'p P, - handle: MockHandle, - - target_gas: Option, - subcall_handle: Option, - - expected_cost: Option, - expected_logs: Option>, - static_call: bool, -} - -impl<'p, P: PrecompileSet> PrecompilesTester<'p, P> { - pub fn new( - precompiles: &'p P, - from: impl Into, - to: impl Into, - data: Vec, - ) -> Self { - let to = to.into(); - let mut handle = MockHandle::new( - to, - Context { address: to, caller: from.into(), apparent_value: U256::zero() }, - ); - - handle.input = data; - - Self { - precompiles, - handle, - - target_gas: None, - subcall_handle: None, - - expected_cost: None, - expected_logs: None, - static_call: false, - } - } - - pub fn with_value(mut self, value: impl Into) -> Self { - self.handle.context.apparent_value = value.into(); - self - } - - pub fn with_subcall_handle(mut self, subcall_handle: impl SubcallTrait) -> Self { - self.subcall_handle = Some(Box::new(subcall_handle)); - self - } - - pub fn with_target_gas(mut self, target_gas: Option) -> Self { - self.target_gas = target_gas; - self - } - - pub fn with_static_call(mut self, static_call: bool) -> Self { - self.static_call = static_call; - self - } - - pub fn expect_cost(mut self, cost: u64) -> Self { - self.expected_cost = Some(cost); - self - } - - pub fn expect_no_logs(mut self) -> Self { - self.expected_logs = Some(vec![]); - self - } - - pub fn expect_log(mut self, log: Log) -> Self { - self.expected_logs = Some({ - let mut logs = self.expected_logs.unwrap_or_default(); - logs.push(PrettyLog(log)); - logs - }); - self - } - - fn assert_optionals(&self) { - if let Some(cost) = &self.expected_cost { - assert_eq!(&self.handle.gas_used, cost); - } - - if let Some(logs) = &self.expected_logs { - similar_asserts::assert_eq!(&self.handle.logs, logs); - } - } - - fn execute(&mut self) -> Option { - let handle = &mut self.handle; - handle.subcall_handle = self.subcall_handle.take(); - handle.is_static = self.static_call; - - if let Some(gas_limit) = self.target_gas { - handle.gas_limit = gas_limit; - } - - let res = self.precompiles.execute(handle); - - self.subcall_handle = handle.subcall_handle.take(); - - res - } - - /// Execute the precompile set and expect some precompile to have been executed, regardless of - /// the result. - pub fn execute_some(mut self) { - let res = self.execute(); - assert!(res.is_some()); - self.assert_optionals(); - } - - /// Execute the precompile set and expect no precompile to have been executed. - pub fn execute_none(mut self) { - let res = self.execute(); - assert!(res.is_some()); - self.assert_optionals(); - } - - /// Execute the precompile set and check it returns provided output. - pub fn execute_returns_raw(mut self, output: Vec) { - let res = self.execute(); - - match res { - Some(Err(PrecompileFailure::Revert { output, .. })) => { - let decoded = decode_revert_message(&output); - eprintln!( - "Revert message (bytes): {:?}", - sp_core::hexdisplay::HexDisplay::from(&decoded) - ); - eprintln!("Revert message (string): {:?}", core::str::from_utf8(decoded).ok()); - panic!("Shouldn't have reverted"); - }, - Some(Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output: execution_output, - })) => - if execution_output != output { - eprintln!( - "Output (bytes): {:?}", - sp_core::hexdisplay::HexDisplay::from(&execution_output) - ); - eprintln!( - "Output (string): {:?}", - core::str::from_utf8(&execution_output).ok() - ); - panic!("Output doesn't match"); - }, - other => panic!("Unexpected result: {:?}", other), - } - - self.assert_optionals(); - } - - /// Execute the precompile set and check it returns provided Solidity encoded output. - pub fn execute_returns(self, output: impl Codec) { - self.execute_returns_raw(crate::solidity::encode_return_value(output)) - } - - /// Execute the precompile set and check if it reverts. - /// Take a closure allowing to perform custom matching on the output. - pub fn execute_reverts(mut self, check: impl Fn(&[u8]) -> bool) { - let res = self.execute(); - - match res { - Some(Err(PrecompileFailure::Revert { output, .. })) => { - let decoded = decode_revert_message(&output); - if !check(decoded) { - eprintln!( - "Revert message (bytes): {:?}", - sp_core::hexdisplay::HexDisplay::from(&decoded) - ); - eprintln!("Revert message (string): {:?}", core::str::from_utf8(decoded).ok()); - panic!("Revert reason doesn't match !"); - } - }, - other => panic!("Didn't revert, instead returned {:?}", other), - } - - self.assert_optionals(); - } - - /// Execute the precompile set and check it returns provided output. - pub fn execute_error(mut self, error: ExitError) { - let res = self.execute(); - assert_eq!(res, Some(Err(PrecompileFailure::Error { exit_status: error }))); - self.assert_optionals(); - } -} - -pub trait PrecompileTesterExt: PrecompileSet + Sized { - fn prepare_test( - &self, - from: impl Into, - to: impl Into, - data: impl Into>, - ) -> PrecompilesTester; -} - -impl PrecompileTesterExt for T { - fn prepare_test( - &self, - from: impl Into, - to: impl Into, - data: impl Into>, - ) -> PrecompilesTester { - PrecompilesTester::new(self, from, to, data.into()) - } -} diff --git a/precompiles/utils/src/testing/handle.rs b/precompiles/utils/src/testing/handle.rs deleted file mode 100644 index 16d54f28d..000000000 --- a/precompiles/utils/src/testing/handle.rs +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::testing::PrettyLog; -use evm::{ExitRevert, ExitSucceed}; -use fp_evm::{Context, ExitError, ExitReason, Log, PrecompileHandle, Transfer}; -use sp_core::{H160, H256}; -use sp_std::boxed::Box; - -#[derive(Debug, Clone)] -pub struct Subcall { - pub address: H160, - pub transfer: Option, - pub input: Vec, - pub target_gas: Option, - pub is_static: bool, - pub context: Context, -} - -#[derive(Debug, Clone)] -pub struct SubcallOutput { - pub reason: ExitReason, - pub output: Vec, - pub cost: u64, - pub logs: Vec, -} - -impl SubcallOutput { - pub fn revert() -> Self { - Self { - reason: ExitReason::Revert(ExitRevert::Reverted), - output: Vec::new(), - cost: 0, - logs: Vec::new(), - } - } - - pub fn succeed() -> Self { - Self { - reason: ExitReason::Succeed(ExitSucceed::Returned), - output: Vec::new(), - cost: 0, - logs: Vec::new(), - } - } - - pub fn out_of_gas() -> Self { - Self { - reason: ExitReason::Error(ExitError::OutOfGas), - output: Vec::new(), - cost: 0, - logs: Vec::new(), - } - } -} - -pub trait SubcallTrait: FnMut(Subcall) -> SubcallOutput + 'static {} - -impl SubcallOutput + 'static> SubcallTrait for T {} - -pub type SubcallHandle = Box; - -/// Mock handle to write tests for precompiles. -pub struct MockHandle { - pub gas_limit: u64, - pub gas_used: u64, - pub logs: Vec, - pub subcall_handle: Option, - pub code_address: H160, - pub input: Vec, - pub context: Context, - pub is_static: bool, -} - -impl MockHandle { - pub fn new(code_address: H160, context: Context) -> Self { - Self { - gas_limit: u64::MAX, - gas_used: 0, - logs: vec![], - subcall_handle: None, - code_address, - input: Vec::new(), - context, - is_static: false, - } - } -} - -impl PrecompileHandle for MockHandle { - /// Perform subcall in provided context. - /// Precompile specifies in which context the subcall is executed. - fn call( - &mut self, - address: H160, - transfer: Option, - input: Vec, - target_gas: Option, - is_static: bool, - context: &Context, - ) -> (ExitReason, Vec) { - if self - .record_cost(crate::evm::costs::call_cost( - context.apparent_value, - &evm::Config::london(), - )) - .is_err() - { - return (ExitReason::Error(ExitError::OutOfGas), vec![]); - } - - match &mut self.subcall_handle { - Some(handle) => { - let SubcallOutput { reason, output, cost, logs } = handle(Subcall { - address, - transfer, - input, - target_gas, - is_static, - context: context.clone(), - }); - - if self.record_cost(cost).is_err() { - return (ExitReason::Error(ExitError::OutOfGas), vec![]); - } - - for log in logs { - self.log(log.address, log.topics, log.data).expect("cannot fail"); - } - - (reason, output) - }, - None => panic!("no subcall handle registered"), - } - } - - fn record_cost(&mut self, cost: u64) -> Result<(), ExitError> { - self.gas_used += cost; - - if self.gas_used > self.gas_limit { - Err(ExitError::OutOfGas) - } else { - Ok(()) - } - } - - fn remaining_gas(&self) -> u64 { - self.gas_limit - self.gas_used - } - - fn log(&mut self, address: H160, topics: Vec, data: Vec) -> Result<(), ExitError> { - self.logs.push(PrettyLog(Log { address, topics, data })); - Ok(()) - } - - /// Retreive the code address (what is the address of the precompile being called). - fn code_address(&self) -> H160 { - self.code_address - } - - /// Retreive the input data the precompile is called with. - fn input(&self) -> &[u8] { - &self.input - } - - /// Retreive the context in which the precompile is executed. - fn context(&self) -> &Context { - &self.context - } - - /// Is the precompile call is done statically. - fn is_static(&self) -> bool { - self.is_static - } - - /// Retreive the gas limit of this call. - fn gas_limit(&self) -> Option { - Some(self.gas_limit) - } - - fn record_external_cost( - &mut self, - _ref_time: Option, - _proof_size: Option, - _storage_growth: Option, - ) -> Result<(), ExitError> { - Ok(()) - } - - fn refund_external_cost(&mut self, _ref_time: Option, _proof_size: Option) {} - - fn origin(&self) -> H160 { - // TODO address or caller? - self.context.address - } - - fn is_contract_being_constructed(&self, address: H160) -> bool { - // In the mock handle, we assume that no contract is being constructed. - // This can be overridden in tests if needed. - false - } - -} diff --git a/precompiles/utils/src/testing/mod.rs b/precompiles/utils/src/testing/mod.rs deleted file mode 100644 index 5ec8e693b..000000000 --- a/precompiles/utils/src/testing/mod.rs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -pub mod account; -pub mod execution; -pub mod handle; -pub mod modifier; -mod solidity; - -pub use account::*; -pub use execution::*; -pub use handle::*; -pub use modifier::*; -pub use solidity::{check_precompile_implements_solidity_interfaces, compute_selector}; - -use fp_evm::Log; - -pub fn decode_revert_message(encoded: &[u8]) -> &[u8] { - let encoded_len = encoded.len(); - // selector 4 + offset 32 + string length 32 - if encoded_len > 68 { - let message_len = encoded[36..68].iter().sum::(); - if encoded_len >= 68 + message_len as usize { - return &encoded[68..68 + message_len as usize]; - } - } - b"decode_revert_message: error" -} - -#[derive(Clone, PartialEq, Eq)] -pub struct PrettyLog(Log); - -impl core::fmt::Debug for PrettyLog { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - let bytes = self - .0 - .data - .iter() - .map(|b| format!("{:02X}", b)) - .collect::>() - .join(""); - - let message = String::from_utf8(self.0.data.clone()).ok(); - - f.debug_struct("Log") - .field("address", &self.0.address) - .field("topics", &self.0.topics) - .field("data", &bytes) - .field("data_utf8", &message) - .finish() - } -} - -/// Panics if an event is not found in the system log of events -#[macro_export] -macro_rules! assert_event_emitted { - ($event:expr) => { - match &$event { - e => { - assert!( - $crate::mock::events().iter().find(|x| *x == e).is_some(), - "Event {:?} was not found in events: \n {:?}", - e, - $crate::mock::events() - ); - }, - } - }; -} - -// Panics if an event is found in the system log of events -#[macro_export] -macro_rules! assert_event_not_emitted { - ($event:expr) => { - match &$event { - e => { - assert!( - $crate::mock::events().iter().find(|x| *x == e).is_none(), - "Event {:?} was found in events: \n {:?}", - e, - $crate::mock::events() - ); - }, - } - }; -} diff --git a/precompiles/utils/src/testing/modifier.rs b/precompiles/utils/src/testing/modifier.rs deleted file mode 100644 index d03300781..000000000 --- a/precompiles/utils/src/testing/modifier.rs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::{ - solidity::codec::Writer, - testing::{decode_revert_message, MockHandle}, -}; -use fp_evm::{Context, PrecompileFailure, PrecompileSet}; -use sp_core::{H160, U256}; - -pub struct PrecompilesModifierTester

{ - precompiles: P, - handle: MockHandle, -} - -impl PrecompilesModifierTester

{ - pub fn new(precompiles: P, from: impl Into, to: impl Into) -> Self { - let to = to.into(); - let mut handle = MockHandle::new( - to, - Context { address: to, caller: from.into(), apparent_value: U256::zero() }, - ); - - handle.gas_limit = u64::MAX; - - Self { precompiles, handle } - } - - fn is_view(&mut self, selector: u32) -> bool { - // View: calling with static should not revert with static-related message. - let handle = &mut self.handle; - handle.is_static = true; - handle.context.apparent_value = U256::zero(); - handle.input = Writer::new_with_selector(selector).build(); - - let res = self.precompiles.execute(handle); - - match res { - Some(Err(PrecompileFailure::Revert { output, .. })) => { - let decoded = decode_revert_message(&output); - - dbg!(decoded) != b"Can't call non-static function in static context" - }, - Some(_) => true, - None => panic!("tried to check view modifier on unknown precompile"), - } - } - - fn is_payable(&mut self, selector: u32) -> bool { - // Payable: calling with value should not revert with payable-related message. - let handle = &mut self.handle; - handle.is_static = false; - handle.context.apparent_value = U256::one(); - handle.input = Writer::new_with_selector(selector).build(); - - let res = self.precompiles.execute(handle); - - match res { - Some(Err(PrecompileFailure::Revert { output, .. })) => { - let decoded = decode_revert_message(&output); - - decoded != b"Function is not payable" - }, - Some(_) => true, - None => panic!("tried to check payable modifier on unknown precompile"), - } - } - - pub fn test_view_modifier(&mut self, selectors: &[u32]) { - for &s in selectors { - assert!(self.is_view(s), "Function doesn't behave like a view function."); - assert!(!self.is_payable(s), "Function doesn't behave like a non-payable function.") - } - } - - pub fn test_payable_modifier(&mut self, selectors: &[u32]) { - for &s in selectors { - assert!(!self.is_view(s), "Function doesn't behave like a non-view function."); - assert!(self.is_payable(s), "Function doesn't behave like a payable function."); - } - } - - pub fn test_default_modifier(&mut self, selectors: &[u32]) { - for &s in selectors { - assert!(!self.is_view(s), "Function doesn't behave like a non-view function."); - assert!(!self.is_payable(s), "Function doesn't behave like a non-payable function."); - } - } -} diff --git a/precompiles/utils/src/testing/solidity.rs b/precompiles/utils/src/testing/solidity.rs deleted file mode 100644 index 533bcb6ae..000000000 --- a/precompiles/utils/src/testing/solidity.rs +++ /dev/null @@ -1,354 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -//! Utility module to interact with solidity file. - -use sp_io::hashing::keccak_256; -use std::{ - collections::HashMap, - fs::File, - io::{BufRead, BufReader, Read}, -}; - -pub fn check_precompile_implements_solidity_interfaces( - files: &[&'static str], - supports_selector: F, -) where - F: Fn(u32) -> bool, -{ - for file in files { - for solidity_fn in get_selectors(file) { - assert_eq!( - solidity_fn.compute_selector_hex(), - solidity_fn.docs_selector, - "documented selector for '{}' did not match in file '{}'", - solidity_fn.signature(), - file, - ); - - let selector = solidity_fn.compute_selector(); - if !supports_selector(selector) { - panic!( - "precompile don't support selector {selector:x} for function '{}' listed in file\ - {file}", - solidity_fn.signature(), - ) - } - } - } -} - -/// Represents a declared custom type struct within a solidity file -#[derive(Clone, Default, Debug)] -pub struct SolidityStruct { - /// Struct name - pub name: String, - /// List of parameter types - pub params: Vec, - /// Is struct an enum - pub is_enum: bool, -} - -impl SolidityStruct { - /// Returns the representative signature for the solidity struct - pub fn signature(&self) -> String { - if self.is_enum { - "uint8".to_string() - } else { - format!("({})", self.params.join(",")) - } - } -} - -/// Represents a declared function within a solidity file -#[derive(Clone, Default)] -pub struct SolidityFunction { - /// Function name - pub name: String, - /// List of function parameter types - pub args: Vec, - /// The declared selector in the file - pub docs_selector: String, -} - -impl SolidityFunction { - /// Returns the representative signature for the solidity function - pub fn signature(&self) -> String { - format!("{}({})", self.name, self.args.join(",")) - } - - /// Computes the selector code for the solidity function - pub fn compute_selector(&self) -> u32 { - compute_selector(&self.signature()) - } - - /// Computes the selector code as a hex string for the solidity function - pub fn compute_selector_hex(&self) -> String { - format!("{:0>8x}", self.compute_selector()) - } -} - -/// Computes a solidity selector from a given string -pub fn compute_selector(v: &str) -> u32 { - let output = keccak_256(v.as_bytes()); - let mut buf = [0u8; 4]; - buf.clone_from_slice(&output[..4]); - u32::from_be_bytes(buf) -} - -/// Returns a list of [SolidityFunction] defined in a solidity file -pub fn get_selectors(filename: &str) -> Vec { - let file = File::open(filename) - .unwrap_or_else(|e| panic!("failed opening file '{}': {}", filename, e)); - get_selectors_from_reader(file) -} - -/// Attempts to lookup a custom struct and returns its primitive signature -fn try_lookup_custom_type(word: &str, custom_types: &HashMap) -> String { - match word.strip_suffix("[]") { - Some(word) => - if let Some(t) = custom_types.get(word) { - return format!("{}[]", t.signature()); - }, - None => - if let Some(t) = custom_types.get(word) { - return t.signature(); - }, - }; - - word.to_string() -} - -fn get_selectors_from_reader(reader: R) -> Vec { - #[derive(Clone, Copy)] - enum Stage { - Start, - Enum, - Struct, - StructParams, - FnName, - Args, - } - #[derive(Clone, Copy)] - enum Pair { - First, - Second, - } - impl Pair { - fn next(&mut self) { - *self = match self { - Pair::First => Pair::Second, - Pair::Second => Pair::First, - } - } - } - - let reader = BufReader::new(reader); - let mut functions = vec![]; - let mut custom_types = HashMap::new(); - let mut solidity_struct = SolidityStruct::default(); - - let mut stage = Stage::Start; - let mut pair = Pair::First; - let mut solidity_fn = SolidityFunction::default(); - for line in reader.lines() { - let line = line.expect("failed unwrapping line").trim().to_string(); - // identify declared selector - if line.starts_with("/// @custom:selector ") && matches!(stage, Stage::Start) { - solidity_fn.docs_selector = line.replace("/// @custom:selector ", "").to_string(); - } - - // skip comments - if line.starts_with("//") { - continue; - } - - for word in line.split(&[';', ',', '(', ')', ' ']) { - // skip whitespace - if word.trim().is_empty() { - continue; - } - match (stage, pair, word) { - // parse custom type enums - (Stage::Start, Pair::First, "enum") => { - stage = Stage::Enum; - pair.next(); - }, - (Stage::Enum, Pair::Second, _) => { - custom_types.insert( - word.to_string(), - SolidityStruct { name: word.to_string(), is_enum: true, params: vec![] }, - ); - stage = Stage::Start; - pair = Pair::First; - }, - - // parse custom type structs - (Stage::Start, Pair::First, "struct") => { - stage = Stage::Struct; - pair.next(); - }, - (Stage::Struct, Pair::Second, _) => { - solidity_struct.name = word.to_string(); - stage = Stage::StructParams; - pair.next(); - }, - (Stage::StructParams, Pair::First, "{") => (), - (Stage::StructParams, Pair::First, "}") => { - custom_types.insert(solidity_struct.name.clone(), solidity_struct); - stage = Stage::Start; - solidity_struct = SolidityStruct::default(); - }, - (Stage::StructParams, Pair::First, _) => { - let param = try_lookup_custom_type(word, &custom_types); - solidity_struct.params.push(param); - pair.next(); - }, - (Stage::StructParams, Pair::Second, _) => { - pair.next(); - }, - - // parse function - (Stage::Start, Pair::First, "function") => { - stage = Stage::FnName; - pair.next(); - }, - (Stage::FnName, Pair::Second, _) => { - solidity_fn.name = word.to_string(); - stage = Stage::Args; - pair.next(); - }, - (Stage::Args, Pair::First, "external") => { - functions.push(solidity_fn); - stage = Stage::Start; - pair = Pair::First; - solidity_fn = SolidityFunction::default() - }, - (Stage::Args, Pair::First, _) => { - let mut arg = word.to_string(); - arg = try_lookup_custom_type(&arg, &custom_types); - - solidity_fn.args.push(arg); - pair.next(); - }, - (Stage::Args, Pair::Second, "memory" | "calldata" | "storage") => (), - (Stage::Args, Pair::Second, _) => pair.next(), - _ => { - stage = Stage::Start; - pair = Pair::First; - solidity_fn = SolidityFunction::default() - }, - } - } - } - - functions -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_selectors_are_parsed() { - let actual = get_selectors("tests/solidity_test.sol") - .into_iter() - .map(|sol_fn| { - (sol_fn.compute_selector_hex(), sol_fn.docs_selector.clone(), sol_fn.signature()) - }) - .collect::>(); - let expected = vec![ - (String::from("f7af8d91"), String::from(""), String::from("fnNoArgs()")), - (String::from("d43a9a43"), String::from("c4921133"), String::from("fnOneArg(address)")), - ( - String::from("40d6a43d"), - String::from("67ea837e"), - String::from("fnTwoArgs(address,uint256)"), - ), - ( - String::from("cee150c8"), - String::from("d6b423d9"), - String::from("fnSameArgs(uint64,uint64)"), - ), - ( - String::from("c6024207"), - String::from("b9904a86"), - String::from("fnOneArgSameLine(uint64)"), - ), - ( - String::from("fcbc04c3"), - String::from("28f0c44e"), - String::from("fnTwoArgsSameLine(uint64,bytes32)"), - ), - ( - String::from("c590304c"), - String::from("06f0c1ce"), - String::from("fnTwoArgsSameLineExternalSplit(uint64,bytes32)"), - ), - ( - String::from("a19a07e1"), - String::from("18001a4e"), - String::from("fnMemoryArrayArgs(address[],uint256[],bytes[])"), - ), - ( - String::from("ec26cf1c"), - String::from("1ea61a4e"), - String::from("fnCalldataArgs(string,bytes[])"), - ), - ( - String::from("f29f96de"), - String::from("d8af1a4e"), - String::from("fnCustomArgs((uint8,bytes[]),bytes[],uint64)"), - ), - ( - String::from("d751d651"), - String::from("e8af1642"), - String::from("fnEnumArgs(uint8,uint64)"), - ), - ( - String::from("b2c9f1a3"), - String::from("550c1a4e"), - String::from( - "fnCustomArgsMultiple((uint8,bytes[]),(address[],uint256[],bytes[]),bytes[],\ - uint64)", - ), - ), - ( - String::from("d5363eee"), - String::from("77af1a40"), - String::from("fnCustomArrayArgs((uint8,bytes[])[],bytes[])"), - ), - ( - String::from("b82da727"), - String::from("80af0a40"), - String::from( - "fnCustomComposedArg(((uint8,bytes[]),\ - (address[],uint256[],bytes[])[]),uint64)", - ), - ), - ( - String::from("586a2193"), - String::from("97baa040"), - String::from( - "fnCustomComposedArrayArg(((uint8,bytes[]),\ - (address[],uint256[],bytes[])[])[],uint64)", - ), - ), - ]; - - assert_eq!(expected, actual); - } -} diff --git a/precompiles/utils/src/tests.rs b/precompiles/utils/src/tests.rs deleted file mode 100644 index d66310a4f..000000000 --- a/precompiles/utils/src/tests.rs +++ /dev/null @@ -1,1022 +0,0 @@ -// Copyright 2019-2022 PureStake Inc. -// This file is part of Moonbeam. - -// Moonbeam is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Moonbeam is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Moonbeam. If not, see . - -use crate::{ - prelude::*, - solidity::{ - codec::{ - xcm::{network_id_from_bytes, network_id_to_bytes}, - Reader, Writer, - }, - modifier::{check_function_modifier, FunctionModifier}, - revert::Backtrace, - }, -}; -use frame_support::traits::ConstU32; -use hex_literal::hex; -use pallet_evm::Context; -use sp_core::{H160, H256, U256}; -use sp_std::convert::TryInto; -use xcm::latest::{Junction, Junctions, NetworkId}; - -fn u256_repeat_byte(byte: u8) -> U256 { - let value = H256::repeat_byte(byte); - - U256::from_big_endian(value.as_bytes()) -} - -// When debugging it is useful to display data in chunks of 32 bytes. -#[allow(dead_code)] -fn display_bytes(bytes: &[u8]) { - bytes - .chunks_exact(32) - .map(H256::from_slice) - .for_each(|hash| println!("{:?}", hash)); -} - -#[test] -fn write_bool() { - let value = true; - - let writer_output = Writer::new().write(value).build(); - - let mut expected_output = [0u8; 32]; - expected_output[31] = 1; - - assert_eq!(writer_output, expected_output); -} - -#[test] -fn read_bool() { - let value = true; - - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: bool = reader.read().expect("to correctly parse bool"); - - assert_eq!(value, parsed); -} - -#[test] -fn write_u64() { - let value = 42u64; - - let writer_output = Writer::new().write(value).build(); - - let mut expected_output = [0u8; 32]; - expected_output[24..].copy_from_slice(&value.to_be_bytes()); - - assert_eq!(writer_output, expected_output); -} - -#[test] -fn read_u64() { - let value = 42u64; - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: u64 = reader.read().expect("to correctly parse u64"); - - assert_eq!(value, parsed); -} - -#[test] -fn write_u128() { - let value = 42u128; - - let writer_output = Writer::new().write(value).build(); - - let mut expected_output = [0u8; 32]; - expected_output[16..].copy_from_slice(&value.to_be_bytes()); - - assert_eq!(writer_output, expected_output); -} - -#[test] -fn read_u128() { - let value = 42u128; - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: u128 = reader.read().expect("to correctly parse u128"); - - assert_eq!(value, parsed); -} - -#[test] -fn write_u256() { - let value = U256::from(42); - - let writer_output = Writer::new().write(value).build(); - - let expected_output = value.to_big_endian(); - - assert_eq!(writer_output, expected_output); -} - -#[test] -fn read_u256() { - let value = U256::from(42); - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: U256 = reader.read().expect("to correctly parse U256"); - - assert_eq!(value, parsed); -} - -#[test] -#[should_panic(expected = "to correctly parse U256")] -fn read_u256_too_short() { - let value = U256::from(42); - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output[0..31]); - let _: U256 = reader.read().expect("to correctly parse U256"); -} - -#[test] -fn write_h256() { - let mut raw = [0u8; 32]; - raw[0] = 42; - raw[12] = 43; - raw[31] = 44; - - let value = H256::from(raw); - - let output = Writer::new().write(value).build(); - - assert_eq!(&output, &raw); -} - -#[test] -fn tmp() { - let u = U256::from(1_000_000_000); - println!("U256={:?}", u.0); -} - -#[test] -fn read_h256() { - let mut raw = [0u8; 32]; - raw[0] = 42; - raw[12] = 43; - raw[31] = 44; - let value = H256::from(raw); - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: H256 = reader.read().expect("to correctly parse H256"); - - assert_eq!(value, parsed); -} - -#[test] -#[should_panic(expected = "to correctly parse H256")] -fn read_h256_too_short() { - let mut raw = [0u8; 32]; - raw[0] = 42; - raw[12] = 43; - raw[31] = 44; - let value = H256::from(raw); - let writer_output = Writer::new().write(value).build(); - - let mut reader = Reader::new(&writer_output[0..31]); - let _: H256 = reader.read().expect("to correctly parse H256"); -} - -#[test] -fn write_address() { - let value = H160::repeat_byte(0xAA); - - let output = Writer::new().write(Address(value)).build(); - - assert_eq!(output.len(), 32); - assert_eq!(&output[12..32], value.as_bytes()); -} - -#[test] -fn read_address() { - let value = H160::repeat_byte(0xAA); - let writer_output = Writer::new().write(Address(value)).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Address = reader.read().expect("to correctly parse Address"); - - assert_eq!(value, parsed.0); -} - -#[test] -fn write_h256_array() { - let array = vec![ - H256::repeat_byte(0x11), - H256::repeat_byte(0x22), - H256::repeat_byte(0x33), - H256::repeat_byte(0x44), - H256::repeat_byte(0x55), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - assert_eq!(writer_output.len(), 0xE0); - - // We can read this "manualy" using simpler functions since arrays are 32-byte aligned. - let mut reader = Reader::new(&writer_output); - - assert_eq!(reader.read::().expect("read offset"), 32.into()); - assert_eq!(reader.read::().expect("read size"), 5.into()); - assert_eq!(reader.read::().expect("read 1st"), array[0]); - assert_eq!(reader.read::().expect("read 2nd"), array[1]); - assert_eq!(reader.read::().expect("read 3rd"), array[2]); - assert_eq!(reader.read::().expect("read 4th"), array[3]); - assert_eq!(reader.read::().expect("read 5th"), array[4]); -} - -#[test] -fn read_h256_array() { - let array = vec![ - H256::repeat_byte(0x11), - H256::repeat_byte(0x22), - H256::repeat_byte(0x33), - H256::repeat_byte(0x44), - H256::repeat_byte(0x55), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Vec = reader.read().expect("to correctly parse Vec"); - - assert_eq!(array, parsed); -} - -#[test] -fn write_u256_array() { - let array = vec![ - u256_repeat_byte(0x11), - u256_repeat_byte(0x22), - u256_repeat_byte(0x33), - u256_repeat_byte(0x44), - u256_repeat_byte(0x55), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - assert_eq!(writer_output.len(), 0xE0); - - // We can read this "manualy" using simpler functions since arrays are 32-byte aligned. - let mut reader = Reader::new(&writer_output); - - assert_eq!(reader.read::().expect("read offset"), 32.into()); - assert_eq!(reader.read::().expect("read size"), 5.into()); - assert_eq!(reader.read::().expect("read 1st"), array[0]); - assert_eq!(reader.read::().expect("read 2nd"), array[1]); - assert_eq!(reader.read::().expect("read 3rd"), array[2]); - assert_eq!(reader.read::().expect("read 4th"), array[3]); - assert_eq!(reader.read::().expect("read 5th"), array[4]); -} - -#[test] -fn read_u256_array() { - let array = vec![ - u256_repeat_byte(0x11), - u256_repeat_byte(0x22), - u256_repeat_byte(0x33), - u256_repeat_byte(0x44), - u256_repeat_byte(0x55), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Vec = reader.read().expect("to correctly parse Vec"); - - assert_eq!(array, parsed); -} - -#[test] -fn write_address_array() { - let array = vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - Address(H160::repeat_byte(0x44)), - Address(H160::repeat_byte(0x55)), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - - // We can read this "manualy" using simpler functions since arrays are 32-byte aligned. - let mut reader = Reader::new(&writer_output); - - assert_eq!(reader.read::().expect("read offset"), 32.into()); - assert_eq!(reader.read::().expect("read size"), 5.into()); - assert_eq!(reader.read::

().expect("read 1st"), array[0]); - assert_eq!(reader.read::
().expect("read 2nd"), array[1]); - assert_eq!(reader.read::
().expect("read 3rd"), array[2]); - assert_eq!(reader.read::
().expect("read 4th"), array[3]); - assert_eq!(reader.read::
().expect("read 5th"), array[4]); -} - -#[test] -fn read_address_array() { - let array = vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - Address(H160::repeat_byte(0x44)), - Address(H160::repeat_byte(0x55)), - ]; - let writer_output = Writer::new().write(array.clone()).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Vec
= reader.read().expect("to correctly parse Vec"); - - assert_eq!(array, parsed); -} - -#[test] -fn read_address_array_size_too_big() { - let array = vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - Address(H160::repeat_byte(0x44)), - Address(H160::repeat_byte(0x55)), - ]; - let mut writer_output = Writer::new().write(array).build(); - - let be_val = U256::from(6u32).to_big_endian(); - writer_output[0x20..0x40].copy_from_slice(&be_val); - - let mut reader = Reader::new(&writer_output); - - match reader.read::>().in_field("field") { - Ok(_) => panic!("should not parse correctly"), - Err(err) => { - assert_eq!(err.to_string(), "field[5]: Tried to read address out of bounds") - }, - } -} - -#[test] -fn write_address_nested_array() { - let array = vec![ - vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - ], - vec![Address(H160::repeat_byte(0x44)), Address(H160::repeat_byte(0x55))], - ]; - let writer_output = Writer::new().write(array.clone()).build(); - assert_eq!(writer_output.len(), 0x160); - - // We can read this "manualy" using simpler functions since arrays are 32-byte aligned. - let mut reader = Reader::new(&writer_output); - - assert_eq!(reader.read::().expect("read offset"), 0x20.into()); // 0x00 - assert_eq!(reader.read::().expect("read size"), 2.into()); // 0x20 - assert_eq!(reader.read::().expect("read 1st offset"), 0x40.into()); // 0x40 - assert_eq!(reader.read::().expect("read 2st offset"), 0xc0.into()); // 0x60 - assert_eq!(reader.read::().expect("read 1st size"), 3.into()); // 0x80 - assert_eq!(reader.read::
().expect("read 1-1"), array[0][0]); // 0xA0 - assert_eq!(reader.read::
().expect("read 1-2"), array[0][1]); // 0xC0 - assert_eq!(reader.read::
().expect("read 1-3"), array[0][2]); // 0xE0 - assert_eq!(reader.read::().expect("read 2nd size"), 2.into()); // 0x100 - assert_eq!(reader.read::
().expect("read 2-1"), array[1][0]); // 0x120 - assert_eq!(reader.read::
().expect("read 2-2"), array[1][1]); // 0x140 -} - -#[test] -fn read_address_nested_array() { - let array = vec![ - vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - ], - vec![Address(H160::repeat_byte(0x44)), Address(H160::repeat_byte(0x55))], - ]; - let writer_output = Writer::new().write(array.clone()).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Vec> = reader.read().expect("to correctly parse Vec>"); - - assert_eq!(array, parsed); -} - -#[test] - -fn write_multiple_arrays() { - let array1 = vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - ]; - - let array2 = vec![H256::repeat_byte(0x44), H256::repeat_byte(0x55)]; - - let writer_output = Writer::new().write(array1.clone()).write(array2.clone()).build(); - - assert_eq!(writer_output.len(), 0x120); - - // We can read this "manualy" using simpler functions since arrays are 32-byte aligned. - let mut reader = Reader::new(&writer_output); - - assert_eq!(reader.read::().expect("read 1st offset"), 0x40.into()); // 0x00 - assert_eq!(reader.read::().expect("read 2nd offset"), 0xc0.into()); // 0x20 - assert_eq!(reader.read::().expect("read 1st size"), 3.into()); // 0x40 - assert_eq!(reader.read::
().expect("read 1-1"), array1[0]); // 0x60 - assert_eq!(reader.read::
().expect("read 1-2"), array1[1]); // 0x80 - assert_eq!(reader.read::
().expect("read 1-3"), array1[2]); // 0xA0 - assert_eq!(reader.read::().expect("read 2nd size"), 2.into()); // 0xC0 - assert_eq!(reader.read::().expect("read 2-1"), array2[0]); // 0xE0 - assert_eq!(reader.read::().expect("read 2-2"), array2[1]); // 0x100 -} - -#[test] -fn read_multiple_arrays() { - let array1 = vec![ - Address(H160::repeat_byte(0x11)), - Address(H160::repeat_byte(0x22)), - Address(H160::repeat_byte(0x33)), - ]; - - let array2 = vec![H256::repeat_byte(0x44), H256::repeat_byte(0x55)]; - - let writer_output = Writer::new().write(array1.clone()).write(array2.clone()).build(); - - // offset 0x20 - // offset 0x40 - // size 0x60 - // 3 addresses 0xC0 - // size 0xE0 - // 2 H256 0x120 - assert_eq!(writer_output.len(), 0x120); - - let mut reader = Reader::new(&writer_output); - - let parsed: Vec
= reader.read().expect("to correctly parse Vec
"); - assert_eq!(array1, parsed); - - let parsed: Vec = reader.read().expect("to correctly parse Vec"); - assert_eq!(array2, parsed); -} - -#[test] -fn read_bytes() { - let data = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - let writer_output = Writer::new().write(UnboundedBytes::from(&data[..])).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: UnboundedBytes = reader.read().expect("to correctly parse Bytes"); - - assert_eq!(data, parsed.as_bytes()); -} - -#[test] -fn write_bytes() { - let data = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - - let writer_output = Writer::new().write(UnboundedBytes::from(&data[..])).build(); - - // We can read this "manualy" using simpler functions. - let mut reader = Reader::new(&writer_output); - - // We pad data to a multiple of 32 bytes. - let mut padded = data.to_vec(); - assert!(data.len() < 0x80); - padded.resize(0x80, 0); - - assert_eq!(reader.read::().expect("read offset"), 32.into()); - assert_eq!(reader.read::().expect("read size"), data.len().into()); - let mut read = |e| reader.read::().expect(e); // shorthand - assert_eq!(read("read part 1"), H256::from_slice(&padded[0x00..0x20])); - assert_eq!(read("read part 2"), H256::from_slice(&padded[0x20..0x40])); - assert_eq!(read("read part 3"), H256::from_slice(&padded[0x40..0x60])); - assert_eq!(read("read part 4"), H256::from_slice(&padded[0x60..0x80])); -} - -#[test] -fn read_string() { - let data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - let writer_output = Writer::new().write(UnboundedBytes::from(data)).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: UnboundedBytes = reader.read().expect("to correctly parse Bytes"); - - assert_eq!(data, parsed.as_str().expect("valid utf8")); -} - -#[test] -fn write_string() { - let data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - - let writer_output = Writer::new().write(UnboundedBytes::from(data)).build(); - - // We can read this "manualy" using simpler functions. - let mut reader = Reader::new(&writer_output); - - // We pad data to next multiple of 32 bytes. - let mut padded = data.as_bytes().to_vec(); - assert!(data.len() < 0x80); - padded.resize(0x80, 0); - - assert_eq!(reader.read::().expect("read offset"), 32.into()); - assert_eq!(reader.read::().expect("read size"), data.len().into()); - let mut read = |e| reader.read::().expect(e); // shorthand - assert_eq!(read("read part 1"), H256::from_slice(&padded[0x00..0x20])); - assert_eq!(read("read part 2"), H256::from_slice(&padded[0x20..0x40])); - assert_eq!(read("read part 3"), H256::from_slice(&padded[0x40..0x60])); - assert_eq!(read("read part 4"), H256::from_slice(&padded[0x60..0x80])); -} - -#[test] -fn write_vec_bytes() { - let data = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - - let writer_output = Writer::new() - .write(vec![UnboundedBytes::from(&data[..]), UnboundedBytes::from(&data[..])]) - .build(); - - writer_output - .chunks_exact(32) - .map(H256::from_slice) - .for_each(|hash| println!("{:?}", hash)); - - // We pad data to a multiple of 32 bytes. - let mut padded = data.to_vec(); - assert!(data.len() < 0x80); - padded.resize(0x80, 0); - - let mut reader = Reader::new(&writer_output); - - // Offset of vec - assert_eq!(reader.read::().expect("read offset"), 32.into()); - - // Length of vec - assert_eq!(reader.read::().expect("read offset"), 2.into()); - - // Relative offset of first bytgmes object - assert_eq!(reader.read::().expect("read offset"), 0x40.into()); - // Relative offset of second bytes object - assert_eq!(reader.read::().expect("read offset"), 0xe0.into()); - - // Length of first bytes object - assert_eq!(reader.read::().expect("read size"), data.len().into()); - - // First byte objects data - let mut read = |e| reader.read::().expect(e); // shorthand - assert_eq!(read("read part 1"), H256::from_slice(&padded[0x00..0x20])); - assert_eq!(read("read part 2"), H256::from_slice(&padded[0x20..0x40])); - assert_eq!(read("read part 3"), H256::from_slice(&padded[0x40..0x60])); - assert_eq!(read("read part 4"), H256::from_slice(&padded[0x60..0x80])); - - // Length of second bytes object - assert_eq!(reader.read::().expect("read size"), data.len().into()); - - // Second byte objects data - let mut read = |e| reader.read::().expect(e); // shorthand - assert_eq!(read("read part 1"), H256::from_slice(&padded[0x00..0x20])); - assert_eq!(read("read part 2"), H256::from_slice(&padded[0x20..0x40])); - assert_eq!(read("read part 3"), H256::from_slice(&padded[0x40..0x60])); - assert_eq!(read("read part 4"), H256::from_slice(&padded[0x60..0x80])); -} - -#[test] -fn read_vec_of_bytes() { - let data = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ - tempor incididunt ut labore et dolore magna aliqua."; - - let writer_output = Writer::new() - .write(vec![UnboundedBytes::from(&data[..]), UnboundedBytes::from(&data[..])]) - .build(); - - writer_output - .chunks_exact(32) - .map(H256::from_slice) - .for_each(|hash| println!("{:?}", hash)); - - let mut reader = Reader::new(&writer_output); - let parsed: Vec = reader.read().expect("to correctly parse Vec"); - - assert_eq!(vec![UnboundedBytes::from(&data[..]), UnboundedBytes::from(&data[..])], parsed); -} - -// The following test parses input data generated by web3 from a Solidity contract. -// This is important to test on external data since all the above tests can only test consistency -// between `Reader` and `Writer`. -// -// It also provides an example on how to impl `solidity::Codec` for Solidity structs. -// -// struct Location { -// uint8 parents; -// bytes [] interior; -// } -// -// function transfer( -// address currency_address, -// uint256 amount, -// Location memory destination, -// uint64 weight -// ) external; - -#[derive(Clone, Debug, Eq, PartialEq, solidity::Codec)] -struct Location { - parents: u8, - interior: Vec, -} - -#[test] -fn read_complex_solidity_function() { - // Function call data generated by web3. - // transfer_multiasset((uint8,bytes[]),uint256,(uint8,bytes[]),uint64) - let data = hex!( - "b38c60fa - 0000000000000000000000000000000000000000000000000000000000000080 - 0000000000000000000000000000000000000000000000000000000000000064 - 00000000000000000000000000000000000000000000000000000000000001a0 - 0000000000000000000000000000000000000000000000000000000000000064 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000002 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000080 - 0000000000000000000000000000000000000000000000000000000000000005 - 00000003e8000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000002 - 0403000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000022 - 0101010101010101010101010101010101010101010101010101010101010101 - 0100000000000000000000000000000000000000000000000000000000000000" - ); - - let selector = solidity::codec::selector(&data); - let mut reader = Reader::new_skip_selector(&data).expect("to read selector"); - - assert_eq!(selector, Some(0xb38c60fa)); - // asset - assert_eq!( - reader.read::().unwrap(), - Location { - parents: 1, - interior: vec![ - UnboundedBytes::from(&hex!("00000003e8")[..]), - UnboundedBytes::from(&hex!("0403")[..]), - ], - } - ); - - // amount - assert_eq!(reader.read::().unwrap(), 100u32.into()); - - // destination - assert_eq!( - reader.read::().unwrap(), - Location { - parents: 1, - interior: vec![UnboundedBytes::from( - &hex!("01010101010101010101010101010101010101010101010101010101010101010100")[..] - )], - } - ); - - // weight - assert_eq!(reader.read::().unwrap(), 100u32.into()); -} - -#[test] -fn junctions_decoder_works() { - let junctions: Junctions = [(Junction::OnlyChild)].into(); - let writer_output = Writer::new().write(junctions).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junctions = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!(parsed, [Junction::OnlyChild]); - - let junctions: Junctions = [Junction::OnlyChild, Junction::OnlyChild].into(); - let writer_output = Writer::new().write(junctions).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junctions = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!(parsed, [Junction::OnlyChild, Junction::OnlyChild]); - - let junctions: Junctions = - [Junction::OnlyChild, Junction::OnlyChild, Junction::OnlyChild].into(); - let writer_output = Writer::new().write(junctions).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junctions = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!(parsed, [Junction::OnlyChild, Junction::OnlyChild, Junction::OnlyChild],); -} - -#[test] -fn junction_decoder_works() { - let writer_output = Writer::new().write(Junction::Parachain(0)).build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junction = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!(parsed, Junction::Parachain(0)); - - let writer_output = Writer::new() - .write(Junction::AccountId32 { network: None, id: [1u8; 32] }) - .build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junction = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!(parsed, Junction::AccountId32 { network: None, id: [1u8; 32] }); - - let writer_output = Writer::new() - .write(Junction::AccountIndex64 { network: None, index: u64::from_be_bytes([1u8; 8]) }) - .build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junction = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!( - parsed, - Junction::AccountIndex64 { network: None, index: u64::from_be_bytes([1u8; 8]) } - ); - - let writer_output = Writer::new() - .write(Junction::AccountKey20 { - network: None, - key: H160::repeat_byte(0xAA).as_bytes().try_into().unwrap(), - }) - .build(); - - let mut reader = Reader::new(&writer_output); - let parsed: Junction = reader.read::().expect("to correctly parse Junctions"); - - assert_eq!( - parsed, - Junction::AccountKey20 { - network: None, - key: H160::repeat_byte(0xAA).as_bytes().try_into().unwrap(), - } - ); -} - -#[test] -fn network_id_decoder_works() { - assert_eq!(network_id_from_bytes(network_id_to_bytes(None)), Ok(None)); - - let mut name = [0u8; 32]; - name[0..6].copy_from_slice(b"myname"); - assert_eq!( - network_id_from_bytes(network_id_to_bytes(Some(NetworkId::ByGenesis(name)))), - Ok(Some(NetworkId::ByGenesis(name))) - ); - - assert_eq!( - network_id_from_bytes(network_id_to_bytes(Some(NetworkId::Kusama))), - Ok(Some(NetworkId::Kusama)) - ); - - assert_eq!( - network_id_from_bytes(network_id_to_bytes(Some(NetworkId::Polkadot))), - Ok(Some(NetworkId::Polkadot)) - ); -} - -#[test] -fn test_check_function_modifier() { - let context = |value: u32| Context { - address: H160::zero(), - caller: H160::zero(), - apparent_value: U256::from(value), - }; - - let payable_error = || Revert::new(RevertReason::custom("Function is not payable")); - let static_error = - || Revert::new(RevertReason::custom("Can't call non-static function in static context")); - - // Can't call non-static functions in static context. - assert_eq!( - check_function_modifier(&context(0), true, FunctionModifier::Payable), - Err(static_error()) - ); - assert_eq!( - check_function_modifier(&context(0), true, FunctionModifier::NonPayable), - Err(static_error()) - ); - assert_eq!(check_function_modifier(&context(0), true, FunctionModifier::View), Ok(())); - - // Static check is performed before non-payable check. - assert_eq!( - check_function_modifier(&context(1), true, FunctionModifier::Payable), - Err(static_error()) - ); - assert_eq!( - check_function_modifier(&context(1), true, FunctionModifier::NonPayable), - Err(static_error()) - ); - // FunctionModifier::View pass static check but fail for payable. - assert_eq!( - check_function_modifier(&context(1), true, FunctionModifier::View), - Err(payable_error()) - ); - - // Can't send funds to non payable function - assert_eq!(check_function_modifier(&context(1), false, FunctionModifier::Payable), Ok(())); - assert_eq!( - check_function_modifier(&context(1), false, FunctionModifier::NonPayable), - Err(payable_error()) - ); - assert_eq!( - check_function_modifier(&context(1), false, FunctionModifier::View), - Err(payable_error()) - ); - - // Any function can be called without funds. - assert_eq!(check_function_modifier(&context(0), false, FunctionModifier::Payable), Ok(())); - assert_eq!(check_function_modifier(&context(0), false, FunctionModifier::NonPayable), Ok(())); - assert_eq!(check_function_modifier(&context(0), false, FunctionModifier::View), Ok(())); -} - -#[test] -fn read_static_size_tuple() { - // (address, uint256) encoded by web3 - let data = hex!( - "0000000000000000000000001111111111111111111111111111111111111111 - 0000000000000000000000000000000000000000000000000000000000000001" - ); - - let mut reader = Reader::new(&data); - - assert_eq!( - reader.read::<(Address, U256)>().unwrap(), - (Address(H160::repeat_byte(0x11)), U256::from(1u8)) - ); -} - -#[test] -fn read_dynamic_size_tuple() { - // (uint8, bytes[]) encoded by web3 - let data = hex!( - "0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000001 - 0100000000000000000000000000000000000000000000000000000000000000" - ); - - let mut reader = Reader::new(&data); - - assert_eq!( - reader.read::<(u8, Vec)>().unwrap(), - (1, vec![UnboundedBytes::from(vec![0x01])]) - ); -} - -#[test] -fn write_static_size_tuple() { - let output = Writer::new().write((Address(H160::repeat_byte(0x11)), U256::from(1u8))).build(); - - // (address, uint256) encoded by web3 - let data = hex!( - "0000000000000000000000001111111111111111111111111111111111111111 - 0000000000000000000000000000000000000000000000000000000000000001" - ); - - assert_eq!(output, data); -} - -#[test] -fn write_dynamic_size_tuple() { - let output = Writer::new().write((1u8, vec![UnboundedBytes::from(vec![0x01])])).build(); - - // (uint8, bytes[]) encoded by web3 - let data = hex!( - "0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000001 - 0100000000000000000000000000000000000000000000000000000000000000" - ); - - assert_eq!(output, data); -} - -#[test] -fn write_static_size_tuple_in_return_position() { - let output = solidity::encode_return_value((Address(H160::repeat_byte(0x11)), U256::from(1u8))); - - // (address, uint256) encoded by web3 - let data = hex!( - "0000000000000000000000001111111111111111111111111111111111111111 - 0000000000000000000000000000000000000000000000000000000000000001" - ); - - assert_eq!(output, data); -} - -#[test] -fn write_dynamic_size_tuple_in_return_position() { - let output = solidity::encode_return_value((1u8, vec![UnboundedBytes::from(vec![0x01])])); - - // (uint8, bytes[]) encoded by web3 - let data = hex!( - "0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000040 - 0000000000000000000000000000000000000000000000000000000000000001 - 0000000000000000000000000000000000000000000000000000000000000020 - 0000000000000000000000000000000000000000000000000000000000000001 - 0100000000000000000000000000000000000000000000000000000000000000" - ); - - assert_eq!(output, data); -} - -#[test] -fn error_location_formatting() { - assert_eq!( - Backtrace::new() - .in_field("foo") - .in_array(2) - .in_array(3) - .in_field("bar") - .in_field("fuz") - .to_string(), - "fuz.bar[3][2].foo" - ); -} - -#[test] -fn error_formatting() { - assert_eq!( - Revert::new(RevertReason::custom("Test")) - .in_field("foo") - .in_array(2) - .in_array(3) - .in_field("bar") - .in_field("fuz") - .to_string(), - "fuz.bar[3][2].foo: Test" - ); -} - -#[test] -fn evm_data_solidity_types() { - use crate::solidity::Codec; - // Simple types - assert_eq!(bool::signature(), "bool"); - assert_eq!(u8::signature(), "uint8"); - assert_eq!(u16::signature(), "uint16"); - assert_eq!(u32::signature(), "uint32"); - assert_eq!(u64::signature(), "uint64"); - assert_eq!(u128::signature(), "uint128"); - assert_eq!(U256::signature(), "uint256"); - assert_eq!(H256::signature(), "bytes32"); - assert_eq!(Address::signature(), "address"); - assert_eq!(UnboundedBytes::signature(), "bytes"); - assert_eq!(BoundedBytes::>::signature(), "bytes"); - - // Arrays - assert_eq!(Vec::::signature(), "bool[]"); - assert_eq!(Vec::::signature(), "uint8[]"); - assert_eq!(Vec::::signature(), "uint16[]"); - assert_eq!(Vec::::signature(), "uint32[]"); - assert_eq!(Vec::::signature(), "uint64[]"); - assert_eq!(Vec::::signature(), "uint128[]"); - assert_eq!(Vec::::signature(), "uint256[]"); - assert_eq!(Vec::::signature(), "bytes32[]"); - assert_eq!(Vec::
::signature(), "address[]"); - assert_eq!(Vec::::signature(), "bytes[]"); - assert_eq!(Vec::>>::signature(), "bytes[]"); - - // Few tuples mixed with arrays - assert_eq!(<(bool, Address)>::signature(), "(bool,address)"); - assert_eq!(<(Vec, Address)>::signature(), "(bool[],address)"); - assert_eq!(<(bool, Vec
)>::signature(), "(bool,address[])"); - assert_eq!(Vec::<(bool, Address)>::signature(), "(bool,address)[]"); - assert_eq!(Vec::<(bool, Vec
)>::signature(), "(bool,address[])[]"); - - // Struct encode like tuples - assert_eq!(Location::signature(), "(uint8,bytes[])"); -} diff --git a/precompiles/vesting/Cargo.toml b/precompiles/vesting/Cargo.toml index 8f010099f..29ce00fc2 100644 --- a/precompiles/vesting/Cargo.toml +++ b/precompiles/vesting/Cargo.toml @@ -3,11 +3,11 @@ name = "pallet-evm-precompile-vesting" authors = [ "peaq" ] description = "A Precompile Module for Frontier EVM that implements the PEAQ Vesting standard." edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] # Peaq -precompile-utils = { path = "../utils", default-features = false } +precompile-utils = { workspace = true, default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } # Substrate @@ -30,7 +30,8 @@ derive_more = { workspace = true } serde = { workspace = true } sha3 = { workspace = true } -precompile-utils = { path = "../utils", features = [ "std", "testing" ] } +precompile-utils = { workspace = true, features = [ "std", "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } pallet-timestamp = { workspace = true, features = [ "std" ] } scale-info = { workspace = true } diff --git a/precompiles/vesting/src/mock.rs b/precompiles/vesting/src/mock.rs index 12b559904..0776dc8bb 100644 --- a/precompiles/vesting/src/mock.rs +++ b/precompiles/vesting/src/mock.rs @@ -23,7 +23,8 @@ use frame_support::{ weights::Weight, }; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot}; -use precompile_utils::{precompile_set::*, testing::*}; +use peaq_precompile_utils::*; +use precompile_utils::precompile_set::*; use sp_runtime::BuildStorage; use sp_core::{ConstU128, H256}; diff --git a/precompiles/vesting/src/tests.rs b/precompiles/vesting/src/tests.rs index 24e515f87..d2b4b33f7 100644 --- a/precompiles/vesting/src/tests.rs +++ b/precompiles/vesting/src/tests.rs @@ -2,6 +2,7 @@ use crate::{mock::*, *}; use frame_support::assert_ok; use sp_core::U256; +use peaq_precompile_utils::*; use precompile_utils::testing::*; // Helper function to create a dummy vesting schedule diff --git a/precompiles/xcm-utils/Cargo.toml b/precompiles/xcm-utils/Cargo.toml index 4e0d51d72..2edc339c0 100644 --- a/precompiles/xcm-utils/Cargo.toml +++ b/precompiles/xcm-utils/Cargo.toml @@ -3,12 +3,11 @@ name = "pallet-evm-precompile-xcm-utils" authors = [ "peaq" ] description = "A Precompile to make xcm utilities accessible to pallet-evm" edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false, features = [ "codec-xcm" ] } -# xcm-primitives = { workspace = true } +precompile-utils = { workspace = true, default-features = false, features = [ "codec-xcm" ] } +peaq-precompile-utils = { path = "../utils", default-features = false } # Substrate frame-support = { workspace = true, default-features = false } @@ -29,13 +28,13 @@ xcm = { workspace = true, default-features = false } xcm-executor = { workspace = true, default-features = false } [dev-dependencies] -env_logger = "0.9" +env_logger = "0.10" derive_more = { workspace = true } serde = { workspace = true } sha3 = { workspace = true } -# Peaq -precompile-utils = { path = "../utils", features = [ "testing" ] } +precompile-utils = { workspace = true, features = [ "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } # # Substrate pallet-balances = { workspace = true, features = ["std", "insecure_zero_ed"] } @@ -66,6 +65,7 @@ std = [ "parity-scale-codec/std", "polkadot-parachain/std", "precompile-utils/std", + "peaq-precompile-utils/std", "sp-core/std", "sp-io/std", "sp-std/std", diff --git a/precompiles/xcm-utils/src/lib.rs b/precompiles/xcm-utils/src/lib.rs index 1b1682ba1..b737b7c27 100644 --- a/precompiles/xcm-utils/src/lib.rs +++ b/precompiles/xcm-utils/src/lib.rs @@ -25,6 +25,7 @@ use frame_support::{ }; use pallet_evm::AddressMapping; use parity_scale_codec::{Decode, DecodeLimit, MaxEncodedLen}; +use peaq_precompile_utils::DEFAULT_PROOF_SIZE; use precompile_utils::{precompile_set::SelectorFilter, prelude::*}; use sp_core::{H160, U256}; use sp_runtime::traits::Dispatchable; diff --git a/precompiles/xcm-utils/src/mock.rs b/precompiles/xcm-utils/src/mock.rs index 4a7fdcc3f..86a77d6f4 100644 --- a/precompiles/xcm-utils/src/mock.rs +++ b/precompiles/xcm-utils/src/mock.rs @@ -22,7 +22,8 @@ use frame_support::{ weights::{RuntimeDbWeight, Weight}, }; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, GasWeightMapping}; -use precompile_utils::{precompile_set::*, testing::*}; +use peaq_precompile_utils::*; +use precompile_utils::precompile_set::*; use sp_core::{H256, U256}; use sp_runtime::BuildStorage; diff --git a/precompiles/xcm-utils/src/tests.rs b/precompiles/xcm-utils/src/tests.rs index 76a449c4f..bd77bceb7 100644 --- a/precompiles/xcm-utils/src/tests.rs +++ b/precompiles/xcm-utils/src/tests.rs @@ -29,6 +29,7 @@ use crate::mock::{ }; use frame_support::{traits::PalletInfo, weights::Weight}; use parity_scale_codec::Encode; +use peaq_precompile_utils::*; use precompile_utils::testing::*; use sp_core::{H160, U256}; use xcm::prelude::*; diff --git a/precompiles/xtokens/Cargo.toml b/precompiles/xtokens/Cargo.toml index 4a2c4015e..8591aadbb 100644 --- a/precompiles/xtokens/Cargo.toml +++ b/precompiles/xtokens/Cargo.toml @@ -3,11 +3,12 @@ name = "pallet-evm-precompile-xtokens" authors = [ "peaq" ] description = "A Precompile to make xtokens accessible to pallet-evm" edition = "2021" -version = "0.1.0" +version = "0.1.1" [dependencies] -# Peaq -precompile-utils = { path = "../utils", default-features = false, features = [ "codec-xcm" ] } +precompile-utils = { workspace = true, default-features = false, features = [ "codec-xcm" ] } +peaq-precompile-utils = { path = "../utils", default-features = false } + pallet-evm-precompile-assets-erc20 = { path = "../assets-erc20", default-features = false } pallet-assets = { workspace = true, default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } @@ -34,8 +35,8 @@ serde = { workspace = true } sha3 = { workspace = true } once_cell = { workspace = true } -# Peaq -precompile-utils = { path = "../utils", features = [ "testing" ] } +precompile-utils = { workspace = true, features = [ "testing" ] } +peaq-precompile-utils = { path = "../utils", features = [ "std", "testing" ] } # Substrate pallet-balances = { workspace = true, features = ["std", "insecure_zero_ed"] } @@ -62,6 +63,7 @@ std = [ "orml-xtokens/std", "pallet-evm/std", "precompile-utils/std", + "peaq-precompile-utils/std", "sp-core/std", "sp-std/std", "pallet-assets/std", diff --git a/precompiles/xtokens/src/lib.rs b/precompiles/xtokens/src/lib.rs index 101a766ff..0d453b11f 100644 --- a/precompiles/xtokens/src/lib.rs +++ b/precompiles/xtokens/src/lib.rs @@ -25,6 +25,7 @@ use frame_support::{ }; use pallet_evm::AddressMapping; use pallet_evm_precompile_assets_erc20::AssetIdOf; +use peaq_precompile_utils::DEFAULT_PROOF_SIZE; use peaq_primitives_xcm::EVMAddressToAssetId; use precompile_utils::prelude::*; use sp_core::{H160, U256}; diff --git a/precompiles/xtokens/src/mock.rs b/precompiles/xtokens/src/mock.rs index d8c2c3d58..16a702809 100644 --- a/precompiles/xtokens/src/mock.rs +++ b/precompiles/xtokens/src/mock.rs @@ -28,7 +28,8 @@ use frame_support::{ use frame_system::EnsureRoot; use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key}; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot}; -use precompile_utils::{precompile_set::*, testing::*}; +use peaq_precompile_utils::*; +use precompile_utils::precompile_set::*; use sp_runtime::BuildStorage; use sp_core::H256; diff --git a/precompiles/xtokens/src/tests.rs b/precompiles/xtokens/src/tests.rs index 187cdea94..c15b6a9c8 100644 --- a/precompiles/xtokens/src/tests.rs +++ b/precompiles/xtokens/src/tests.rs @@ -21,6 +21,7 @@ use crate::{ Currency, EvmAsset, }; use orml_xtokens::Event as XtokensEvent; +use peaq_precompile_utils::*; use precompile_utils::{prelude::*, testing::*}; use sp_core::U256; use sp_runtime::traits::Convert; diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index adb3d7496..879b27fbe 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -107,11 +107,11 @@ peaq-rpc-primitives-debug = { path = "../../primitives/rpc/debug", default-featu peaq-rpc-primitives-txpool = { path = "../../primitives/rpc/txpool", default-features = false } frame-support = { workspace = true, default-features = false } +precompile-utils = { workspace = true, default-features = false } parachain-staking = { path = "../../pallets/parachain-staking", default-features = false } pallet-block-reward = { path = "../../pallets/block-reward", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } -precompile-utils = { path = "../../precompiles/utils", default-features = false } pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index ace378226..12a636860 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -107,11 +107,11 @@ peaq-rpc-primitives-debug = { path = "../../primitives/rpc/debug", default-featu peaq-rpc-primitives-txpool = { path = "../../primitives/rpc/txpool", default-features = false } frame-support = { workspace = true, default-features = false } +precompile-utils = { workspace = true, default-features = false } parachain-staking = { path = "../../pallets/parachain-staking", default-features = false } pallet-block-reward = { path = "../../pallets/block-reward", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } -precompile-utils = { path = "../../precompiles/utils", default-features = false } pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } pallet-evm-precompile-balances-erc20 = { path = "../../precompiles/balances-erc20", default-features = false} diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index 021e4fba1..6ee4e3535 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -106,11 +106,11 @@ peaq-rpc-primitives-debug = { path = "../../primitives/rpc/debug", default-featu peaq-rpc-primitives-txpool = { path = "../../primitives/rpc/txpool", default-features = false } frame-support = { workspace = true, default-features = false } +precompile-utils = { workspace = true, default-features = false } parachain-staking = { path = "../../pallets/parachain-staking", default-features = false } pallet-block-reward = { path = "../../pallets/block-reward", default-features = false } peaq-primitives-xcm = { path = "../../primitives/xcm", default-features = false } -precompile-utils = { path = "../../precompiles/utils", default-features = false } pallet-evm-precompile-assets-erc20 = { path = "../../precompiles/assets-erc20", default-features = false } pallet-evm-precompile-assets-factory = { path = "../../precompiles/assets-factory", default-features = false } pallet-evm-precompile-batch = { path = "../../precompiles/batch", default-features = false } From c94e5bdf5525f12f5abed01911ea7ae781168857 Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 15:26:30 +0200 Subject: [PATCH 25/98] Temp checkin for fixing --- Cargo.lock | 11 +++++++---- Cargo.toml | 2 +- node/Cargo.toml | 2 +- node/src/parachain/service.rs | 10 +++++++--- runtime/krest/Cargo.toml | 5 ++++- runtime/krest/src/lib.rs | 5 ++++- runtime/krest/src/xcm_config.rs | 6 ++++++ runtime/peaq-dev/Cargo.toml | 5 ++++- runtime/peaq-dev/src/lib.rs | 19 ++++++++++++++++++- runtime/peaq-dev/src/xcm_config.rs | 6 ++++++ runtime/peaq/Cargo.toml | 5 ++++- runtime/peaq/src/lib.rs | 19 ++++++++++++++++++- runtime/peaq/src/xcm_config.rs | 6 ++++++ 13 files changed, 86 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 401324c0d..a62568c91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9467,7 +9467,7 @@ dependencies = [ [[package]] name = "peaq-dev-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" dependencies = [ "address-unification", "cumulus-pallet-aura-ext", @@ -9567,6 +9567,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -9607,7 +9608,7 @@ dependencies = [ [[package]] name = "peaq-krest-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" dependencies = [ "address-unification", "cumulus-pallet-aura-ext", @@ -9706,6 +9707,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -9727,7 +9729,7 @@ dependencies = [ [[package]] name = "peaq-node" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" dependencies = [ "async-trait", "clap 4.5.39", @@ -10219,7 +10221,7 @@ dependencies = [ [[package]] name = "peaq-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" dependencies = [ "address-unification", "cumulus-pallet-aura-ext", @@ -10317,6 +10319,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", diff --git a/Cargo.toml b/Cargo.toml index b8e489575..b54b057be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -149,7 +149,7 @@ polkadot-cli = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = " # Substrate frame-support = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } -# sp-genesis-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +sp-genesis-builder = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-trie = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-externalities = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } sp-runtime-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } diff --git a/node/Cargo.toml b/node/Cargo.toml index 5104f907b..6b99b1493 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peaq-node" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" description = "A node of the peaq network." authors = ["peaq network "] homepage = "https://peaq.network/" diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index b9f67d510..82829b520 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -5,7 +5,7 @@ use cumulus_client_consensus_common::ParachainBlockImport; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; use cumulus_client_service::{ prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, DARecoveryProfile, - StartRelayChainTasksParams, + ParachainHostFunctions, StartRelayChainTasksParams, }; use cumulus_primitives_core::{ relay_chain::{CollatorPair, ValidationCode}, @@ -63,11 +63,15 @@ declare_executor!(peaq, peaq_runtime); pub type ExtHostFunctions = ( frame_benchmarking::benchmarking::HostFunctions, sp_io::SubstrateHostFunctions, + ParachainHostFunctions, peaq_primitives_ext::peaq_ext::HostFunctions, ); #[cfg(not(feature = "runtime-benchmarks"))] -pub type ExtHostFunctions = - (sp_io::SubstrateHostFunctions, peaq_primitives_ext::peaq_ext::HostFunctions); +pub type ExtHostFunctions = ( + sp_io::SubstrateHostFunctions, + ParachainHostFunctions, + peaq_primitives_ext::peaq_ext::HostFunctions, +); type FullClient = TFullClient>; type FullBackend = TFullBackend; diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index 879b27fbe..dd266ef86 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peaq-krest-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" description = "A node of the peaq network." authors = ["peaq network "] homepage = "https://peaq.network/" @@ -100,6 +100,7 @@ orml-xtokens = { workspace = true, default-features = false } orml-xcm-support = { workspace = true, default-features = false } pallet-collective = { workspace = true, default-features = false } sp-weights = { workspace = true, default-features = false } +sp-genesis-builder = { workspace = true, default-features = false } evm-tracing-events = { path = "../../primitives/rpc/evm-tracing-events", optional = true, default-features = false } peaq-evm-tracer = { path = "../evm_tracer", optional = true, default-features = false } @@ -206,6 +207,8 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "sp-weights/std", + "sp-genesis-builder/std", + "pallet-contracts/std", "peaq-pallet-did/std", "peaq-pallet-did-runtime-api/std", diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 59264d4be..31d25d64b 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -1197,7 +1197,10 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - (), + ( + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + ), >; #[cfg(feature = "runtime-benchmarks")] diff --git a/runtime/krest/src/xcm_config.rs b/runtime/krest/src/xcm_config.rs index fadd594f8..d354caa5d 100644 --- a/runtime/krest/src/xcm_config.rs +++ b/runtime/krest/src/xcm_config.rs @@ -393,6 +393,12 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type MaxPageSize = (); } +// For migration +impl cumulus_pallet_xcmp_queue::migration::v5::V5Config for Runtime { + // This must be the same as the `ChannelInfo` from the `Config`: + type ChannelList = ParachainSystem; +} + parameter_types! { pub const MaxAssetsForTransfer: usize = 2; pub PeaqLocationAbsolute: Location = Location { diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 12a636860..b2ad1af4d 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peaq-dev-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" description = "A node of the peaq network." authors = ["peaq network "] homepage = "https://peaq.network/" @@ -100,6 +100,7 @@ orml-xtokens = { workspace = true, default-features = false } orml-xcm-support = { workspace = true, default-features = false } pallet-collective = { workspace = true, default-features = false } sp-weights = { workspace = true, default-features = false } +sp-genesis-builder = { workspace = true, default-features = false } evm-tracing-events = { path = "../../primitives/rpc/evm-tracing-events", optional = true, default-features = false } peaq-evm-tracer = { path = "../evm_tracer", optional = true, default-features = false } @@ -209,6 +210,8 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "sp-weights/std", + "sp-genesis-builder/std", + "pallet-contracts/std", "peaq-pallet-did/std", "peaq-pallet-did-runtime-api/std", diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index cb1e30076..44f21635b 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1211,7 +1211,10 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - (), + ( + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + ), >; #[cfg(feature = "runtime-benchmarks")] @@ -2036,6 +2039,20 @@ impl_runtime_apis! { } } + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(config: Vec) -> sp_genesis_builder::Result { + frame_support::genesis_builder_helper::build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + frame_support::genesis_builder_helper::get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index 0c3429707..b404138f4 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -394,6 +394,12 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type MaxPageSize = (); } +// For migration +impl cumulus_pallet_xcmp_queue::migration::v5::V5Config for Runtime { + // This must be the same as the `ChannelInfo` from the `Config`: + type ChannelList = ParachainSystem; +} + parameter_types! { pub const MaxAssetsForTransfer: usize = 2; pub PeaqLocationAbsolute: Location = Location { diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index 6ee4e3535..6a5f9aaf7 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peaq-runtime" -version = "4.0.0-polkadot-v1.7.2" +version = "4.0.1-polkadot-stable2503-4" description = "A node of the peaq network." authors = ["peaq network "] homepage = "https://peaq.network/" @@ -99,6 +99,7 @@ orml-xtokens = { workspace = true, default-features = false } orml-xcm-support = { workspace = true, default-features = false } pallet-collective = { workspace = true, default-features = false } sp-weights = { workspace = true, default-features = false } +sp-genesis-builder = { workspace = true, default-features = false } evm-tracing-events = { path = "../../primitives/rpc/evm-tracing-events", optional = true, default-features = false } peaq-evm-tracer = { path = "../evm_tracer", optional = true, default-features = false } @@ -204,6 +205,8 @@ std = [ "sp-transaction-pool/std", "sp-version/std", "sp-weights/std", + "sp-genesis-builder/std", + "pallet-contracts/std", "peaq-pallet-did/std", "peaq-pallet-did-runtime-api/std", diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 4c656d27c..52d05e533 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1230,7 +1230,10 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - (), + ( + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + ), >; #[cfg(feature = "runtime-benchmarks")] @@ -2054,6 +2057,20 @@ impl_runtime_apis! { } } + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(config: Vec) -> sp_genesis_builder::Result { + frame_support::genesis_builder_helper::build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + frame_support::genesis_builder_helper::get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) diff --git a/runtime/peaq/src/xcm_config.rs b/runtime/peaq/src/xcm_config.rs index 81f1fde74..b19386f41 100644 --- a/runtime/peaq/src/xcm_config.rs +++ b/runtime/peaq/src/xcm_config.rs @@ -393,6 +393,12 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type MaxPageSize = (); } +// For migration +impl cumulus_pallet_xcmp_queue::migration::v5::V5Config for Runtime { + // This must be the same as the `ChannelInfo` from the `Config`: + type ChannelList = ParachainSystem; +} + parameter_types! { pub const MaxAssetsForTransfer: usize = 2; pub PeaqLocationAbsolute: Location = Location { From 633683bd8ce6bb232739f792ca41397138e437ef Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 15 Jun 2025 16:48:01 +0200 Subject: [PATCH 26/98] Fix the all tx --- runtime/common/src/payment.rs | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index ae019b02d..7e00f67f0 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -9,6 +9,7 @@ use frame_support::{ }, Parameter, }; +use frame_support::traits::tokens::WithdrawConsequence; use frame_system::Config as SysConfig; use orml_traits::MultiCurrency; use pallet_evm::{EVMCurrencyAdapter, OnChargeEVMTransaction as OnChargeEVMTransactionT}; @@ -135,16 +136,28 @@ where Ok(()) } - fn can_withdraw_fee( - _who: &::AccountId, - _call: &::RuntimeCall, - _dispatch_info: &DispatchInfoOf<::RuntimeCall>, - _fee: Self::Balance, - _tip: Self::Balance, - ) -> Result<(), TransactionValidityError> { - // TODO what to do with this? - todo!() - } + // [TODO] Need to check... + fn can_withdraw_fee( + who: &::AccountId, + _call: &::RuntimeCall, + _dispatch_info: &DispatchInfoOf<::RuntimeCall>, + fee: Self::Balance, + _tip: Self::Balance, + ) -> Result<(), TransactionValidityError> { + if fee.is_zero() { + return Ok(()); + } + + // Check if user can withdraw in any valid currency. + let currency_id = PCPC::ensure_can_withdraw(who, fee)?; + let native_currency_id = PeaqAssetId::default().try_into().ok().unwrap(); + if currency_id != native_currency_id { + Err(InvalidTransaction::Payment.into()) + } else { + Ok(()) + } + } + } /// Individual trait to handle payments in non-local currencies. The intention is to keep it as From 886a33c04b4d836270c4025d334b66e3f3b62c99 Mon Sep 17 00:00:00 2001 From: jaypan Date: Mon, 16 Jun 2025 13:39:27 +0200 Subject: [PATCH 27/98] Update RPC --- Cargo.lock | 300 +++++++++--------------------------------------- node/src/rpc.rs | 9 +- 2 files changed, 59 insertions(+), 250 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a62568c91..a44e69b39 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -975,15 +975,6 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] - [[package]] name = "binary-merkle-tree" version = "16.0.0" @@ -2513,7 +2504,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "futures 0.3.31", - "jsonrpsee-core 0.24.9", + "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", "sc-client-api", @@ -2569,7 +2560,7 @@ dependencies = [ "either", "futures 0.3.31", "futures-timer", - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "pin-project", "polkadot-overseer", @@ -3575,7 +3566,7 @@ dependencies = [ "fp-storage", "futures 0.3.31", "hex", - "jsonrpsee 0.24.9", + "jsonrpsee", "libsecp256k1", "log", "pallet-evm", @@ -3618,7 +3609,7 @@ source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stabl dependencies = [ "ethereum", "ethereum-types", - "jsonrpsee 0.24.9", + "jsonrpsee", "rlp", "rustc-hex", "serde", @@ -4976,7 +4967,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -5528,34 +5519,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonrpsee" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138572befc78a9793240645926f30161f8b4143d2be18d09e44ed9814bd7ee2c" -dependencies = [ - "jsonrpsee-core 0.20.4", - "jsonrpsee-proc-macros 0.20.4", - "jsonrpsee-server 0.20.4", - "jsonrpsee-types 0.20.4", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" -dependencies = [ - "jsonrpsee-core 0.23.2", - "jsonrpsee-proc-macros 0.23.2", - "jsonrpsee-server 0.23.2", - "jsonrpsee-types 0.23.2", - "tokio", - "tracing", -] - [[package]] name = "jsonrpsee" version = "0.24.9" @@ -5563,10 +5526,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core 0.24.9", - "jsonrpsee-proc-macros 0.24.9", - "jsonrpsee-server 0.24.9", - "jsonrpsee-types 0.24.9", + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", "jsonrpsee-ws-client", "tokio", "tracing", @@ -5581,7 +5544,7 @@ dependencies = [ "base64 0.22.1", "futures-util", "http 1.3.1", - "jsonrpsee-core 0.24.9", + "jsonrpsee-core", "pin-project", "rustls", "rustls-pki-types", @@ -5595,54 +5558,6 @@ dependencies = [ "url", ] -[[package]] -name = "jsonrpsee-core" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f24ea59b037b6b9b0e2ebe2c30a3e782b56bd7c76dcc5d6d70ba55d442af56e3" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-util", - "hyper 0.14.32", - "jsonrpsee-types 0.20.4", - "parking_lot 0.12.4", - "rand 0.8.5", - "rustc-hash 1.1.0", - "serde", - "serde_json", - "soketto 0.7.1", - "thiserror 1.0.69", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "jsonrpsee-types 0.23.2", - "parking_lot 0.12.4", - "rand 0.8.5", - "rustc-hash 1.1.0", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tracing", -] - [[package]] name = "jsonrpsee-core" version = "0.24.9" @@ -5656,7 +5571,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "jsonrpsee-types 0.24.9", + "jsonrpsee-types", "parking_lot 0.12.4", "pin-project", "rand 0.8.5", @@ -5669,32 +5584,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc0eba68ba205452bcb4c7b80a79ddcb3bf36c261a841b239433142db632d24" -dependencies = [ - "heck 0.4.1", - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" -dependencies = [ - "heck 0.5.0", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.24.9" @@ -5708,57 +5597,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "jsonrpsee-server" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a482bc4e25eebd0adb61a3468c722763c381225bd3ec46e926f709df8a8eb548" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "jsonrpsee-core 0.20.4", - "jsonrpsee-types 0.20.4", - "route-recognizer", - "serde", - "serde_json", - "soketto 0.7.1", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51" -dependencies = [ - "anyhow", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "jsonrpsee-core 0.23.2", - "jsonrpsee-types 0.23.2", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto 0.8.1", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", -] - [[package]] name = "jsonrpsee-server" version = "0.24.9" @@ -5771,8 +5609,8 @@ dependencies = [ "http-body-util", "hyper 1.6.0", "hyper-util", - "jsonrpsee-core 0.24.9", - "jsonrpsee-types 0.24.9", + "jsonrpsee-core", + "jsonrpsee-types", "pin-project", "route-recognizer", "serde", @@ -5786,33 +5624,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-types" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3264e339143fe37ed081953842ee67bfafa99e3b91559bdded6e4abd8fc8535e" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" -dependencies = [ - "beef", - "http 1.3.1", - "serde", - "serde_json", - "thiserror 1.0.69", -] - [[package]] name = "jsonrpsee-types" version = "0.24.9" @@ -5833,8 +5644,8 @@ checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ "http 1.3.1", "jsonrpsee-client-transport", - "jsonrpsee-core 0.24.9", - "jsonrpsee-types 0.24.9", + "jsonrpsee-core", + "jsonrpsee-types", "url", ] @@ -6895,7 +6706,7 @@ name = "mmr-rpc" version = "40.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "serde", "sp-api", @@ -7401,7 +7212,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 2.0.101", @@ -9101,7 +8912,7 @@ name = "pallet-transaction-payment-rpc" version = "43.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", @@ -9768,7 +9579,7 @@ dependencies = [ "futures 0.3.31", "hex-literal 0.3.4", "inflation-manager", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "orml-xtokens", "pallet-base-fee", @@ -9845,7 +9656,7 @@ dependencies = [ [[package]] name = "peaq-pallet-did" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" dependencies = [ "frame-benchmarking", "frame-support", @@ -9865,9 +9676,9 @@ dependencies = [ [[package]] name = "peaq-pallet-did-rpc" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" dependencies = [ - "jsonrpsee 0.20.4", + "jsonrpsee", "parity-scale-codec", "peaq-pallet-did", "peaq-pallet-did-runtime-api", @@ -9882,7 +9693,7 @@ dependencies = [ [[package]] name = "peaq-pallet-did-runtime-api" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#4e70ed6173dcb9c771e219e1e1d451da47607f56" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" dependencies = [ "parity-scale-codec", "peaq-pallet-did", @@ -9893,7 +9704,7 @@ dependencies = [ [[package]] name = "peaq-pallet-mor" version = "0.2.2" -source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=peaq-polkadot-stable2503-4#83e6fb93bd99154605c8cf79b08c0f690f171766" +source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=peaq-polkadot-stable2503-4#2f79f25da27793d5c4a89cef7d38df5bf19d6c1f" dependencies = [ "frame-benchmarking", "frame-support", @@ -9913,7 +9724,7 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" dependencies = [ "frame-benchmarking", "frame-support", @@ -9933,9 +9744,9 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac-rpc" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" dependencies = [ - "jsonrpsee 0.20.4", + "jsonrpsee", "parity-scale-codec", "peaq-pallet-rbac", "peaq-pallet-rbac-runtime-api", @@ -9948,7 +9759,7 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac-runtime-api" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#7b455cd43923ceaa9beb00a72c580b850c6962b2" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" dependencies = [ "parity-scale-codec", "peaq-pallet-rbac", @@ -9959,7 +9770,7 @@ dependencies = [ [[package]] name = "peaq-pallet-storage" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" dependencies = [ "frame-benchmarking", "frame-support", @@ -9976,9 +9787,9 @@ dependencies = [ [[package]] name = "peaq-pallet-storage-rpc" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" dependencies = [ - "jsonrpsee 0.20.4", + "jsonrpsee", "parity-scale-codec", "peaq-pallet-storage", "peaq-pallet-storage-runtime-api", @@ -9993,7 +9804,7 @@ dependencies = [ [[package]] name = "peaq-pallet-storage-runtime-api" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#7b77cdfb3c54615b9c968ec7e6b08aa024e56fa0" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" dependencies = [ "parity-scale-codec", "peaq-pallet-storage", @@ -10091,7 +9902,7 @@ dependencies = [ "ethereum-types", "fc-rpc-core", "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -10105,7 +9916,7 @@ version = "0.6.0" dependencies = [ "ethereum-types", "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "peaq-client-evm-tracing", "peaq-rpc-core-types", "serde", @@ -10135,7 +9946,7 @@ dependencies = [ "fp-rpc", "futures 0.3.31", "hex-literal 0.3.4", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "peaq-client-evm-tracing", "peaq-rpc-core-debug", @@ -10196,7 +10007,7 @@ dependencies = [ "fc-storage", "fp-rpc", "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "peaq-client-evm-tracing", "peaq-rpc-core-trace", @@ -11234,7 +11045,7 @@ name = "polkadot-rpc" version = "23.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "mmr-rpc", "pallet-transaction-payment-rpc", "polkadot-primitives", @@ -11999,7 +11810,7 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.5.0", + "heck 0.4.1", "itertools 0.14.0", "log", "multimap", @@ -13277,7 +13088,7 @@ version = "0.49.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", @@ -13333,7 +13144,7 @@ version = "28.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.4", @@ -13411,7 +13222,7 @@ source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-s dependencies = [ "finality-grandpa", "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -13433,7 +13244,7 @@ dependencies = [ "async-trait", "futures 0.3.31", "futures-timer", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -13825,7 +13636,7 @@ version = "44.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.4", @@ -13856,7 +13667,7 @@ name = "sc-rpc-api" version = "0.48.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-mixnet", @@ -13884,7 +13695,7 @@ dependencies = [ "http-body-util", "hyper 1.6.0", "ip_network", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "sc-rpc-api", "serde", @@ -13905,7 +13716,7 @@ dependencies = [ "futures-util", "hex", "itertools 0.11.0", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.4", @@ -13952,7 +13763,7 @@ dependencies = [ "exit-future", "futures 0.3.31", "futures-timer", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.4", @@ -14035,7 +13846,7 @@ name = "sc-sync-state-rpc" version = "0.49.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -15097,7 +14908,6 @@ dependencies = [ "base64 0.13.1", "bytes", "futures 0.3.31", - "http 0.2.12", "httparse", "log", "rand 0.8.5", @@ -16158,7 +15968,7 @@ dependencies = [ "docify", "frame-system-rpc-runtime-api", "futures 0.3.31", - "jsonrpsee 0.24.9", + "jsonrpsee", "log", "parity-scale-codec", "sc-rpc-api", @@ -16189,7 +15999,7 @@ name = "substrate-state-trie-migration-rpc" version = "42.0.0" source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" dependencies = [ - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", @@ -16262,7 +16072,7 @@ dependencies = [ "futures 0.3.31", "hex", "impl-serde", - "jsonrpsee 0.24.9", + "jsonrpsee", "parity-scale-codec", "polkadot-sdk", "primitive-types", @@ -18651,7 +18461,7 @@ dependencies = [ [[package]] name = "zenlink-protocol" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#b7c634b18a1302089e8076e4f9cd1627faf314cf" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -18675,9 +18485,9 @@ dependencies = [ [[package]] name = "zenlink-protocol-rpc" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#b7c634b18a1302089e8076e4f9cd1627faf314cf" dependencies = [ - "jsonrpsee 0.23.2", + "jsonrpsee", "parity-scale-codec", "scale-info", "serde", @@ -18693,7 +18503,7 @@ dependencies = [ [[package]] name = "zenlink-protocol-runtime-api" version = "0.4.5" -source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#e3788b09a87a9d4ec95128841a544b54e5fc4377" +source = "git+https://github.com/peaqnetwork/Zenlink-DEX-Module?branch=peaq-polkadot-stable2503-4#b7c634b18a1302089e8076e4f9cd1627faf314cf" dependencies = [ "parity-scale-codec", "scale-info", diff --git a/node/src/rpc.rs b/node/src/rpc.rs index f1f3d4f98..9231ae1b7 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -278,11 +278,10 @@ where > = Default::default(); let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); - // [TODO] - // io.merge(PeaqStorage::new(Arc::clone(&client)).into_rpc())?; - // io.merge(PeaqDID::new(Arc::clone(&client)).into_rpc())?; - // io.merge(PeaqRBAC::new(Arc::clone(&client)).into_rpc())?; - // io.merge(ZenlinkProtocol::new(Arc::clone(&client)).into_rpc())?; + io.merge(PeaqStorage::new(Arc::clone(&client)).into_rpc())?; + io.merge(PeaqDID::new(Arc::clone(&client)).into_rpc())?; + io.merge(PeaqRBAC::new(Arc::clone(&client)).into_rpc())?; + io.merge(ZenlinkProtocol::new(Arc::clone(&client)).into_rpc())?; io.merge(Web3::new(Arc::clone(&client)).into_rpc())?; io.merge( EthPubSub::new( From 84fef835c73b8b47fac0d190152127c777b8be45 Mon Sep 17 00:00:00 2001 From: jaypan Date: Mon, 16 Jun 2025 15:37:09 +0200 Subject: [PATCH 28/98] Fix address unfication --- pallets/address-unification/src/lib.rs | 5 ++--- primitives/xcm/src/evm.rs | 11 ++++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pallets/address-unification/src/lib.rs b/pallets/address-unification/src/lib.rs index aa8c57a89..cbb8c8b25 100644 --- a/pallets/address-unification/src/lib.rs +++ b/pallets/address-unification/src/lib.rs @@ -37,7 +37,7 @@ use pallet_evm::AddressMapping as PalletEVMAddressMapping; use parity_scale_codec::Encode; use precompile_utils::prelude::keccak256; -use peaq_primitives_xcm::{evm::EvmAddress, AccountIndex}; +use peaq_primitives_xcm::{evm::EvmAddress, to_bytes, AccountIndex}; use sp_core::{H160, H256}; use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256}; use sp_runtime::{ @@ -285,8 +285,7 @@ impl Pallet { let mut domain_seperator_msg = domain_hash.to_vec(); domain_seperator_msg.extend_from_slice(&keccak256!("Peaq EVM claim")); // name domain_seperator_msg.extend_from_slice(&keccak256!("1")); // version - // TODO ensure this .into() converts into correct endian format - domain_seperator_msg.extend_from_slice(&T::ChainId::get().encode()); // chain id + domain_seperator_msg.extend_from_slice(&to_bytes(T::ChainId::get())); // chain id domain_seperator_msg.extend_from_slice( frame_system::Pallet::::block_hash(BlockNumberFor::::zero()).as_ref(), ); // genesis block hash diff --git a/primitives/xcm/src/evm.rs b/primitives/xcm/src/evm.rs index dd8dc01a5..f73eb5ba8 100644 --- a/primitives/xcm/src/evm.rs +++ b/primitives/xcm/src/evm.rs @@ -1,16 +1,17 @@ use crate::AccountId; use frame_support::ensure; use pallet_assets::AssetsCallback; -use sp_core::H160; +use sp_core::{H160, U256}; use sp_std::marker::PhantomData; /// Evm Address. pub type EvmAddress = sp_core::H160; -// /// Convert any type that implements Into into byte representation ([u8, 32]) -// pub fn to_bytes>(value: T) -> [u8; 32] { -// Into::<[u8; 32]>::into(value.into()) -// } +/// Convert any type that implements Into into byte representation ([u8, 32]) +pub fn to_bytes>(value: T) -> [u8; 32] { + let value: U256 = value.into(); + value.to_big_endian() +} /// Revert opt code. It's inserted at the precompile addresses, to make them functional in EVM. pub const EVM_REVERT_CODE: &[u8] = &[0x60, 0x00, 0x60, 0x00, 0xfd]; From d71cdaeafbf35cccf70274c17096c103c9b2b525 Mon Sep 17 00:00:00 2001 From: jaypan Date: Mon, 16 Jun 2025 18:18:38 +0200 Subject: [PATCH 29/98] Fix the xcm error --- runtime/krest/src/lib.rs | 21 ++++++++++++++++++--- runtime/krest/src/xcm_config.rs | 10 +++++++--- runtime/peaq-dev/src/lib.rs | 7 ++++--- runtime/peaq-dev/src/xcm_config.rs | 10 +++++++--- runtime/peaq/src/lib.rs | 7 ++++--- runtime/peaq/src/xcm_config.rs | 10 +++++++--- 6 files changed, 47 insertions(+), 18 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 31d25d64b..f93c07beb 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -414,14 +414,15 @@ impl pallet_contracts::Config for Runtime { type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type MaxDelegateDependencies = MaxDelegateDependencies; type RuntimeHoldReason = RuntimeHoldReason; - type Migrations = (); + type Migrations = (pallet_contracts::migration::v16::Migration,); + type Debug = (); type Environment = (); type Xcm = (); type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = (); + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } @@ -1114,7 +1115,7 @@ construct_runtime!( System: frame_system = 0, RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip::{Pallet, Storage} = 1, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - Aura: pallet_aura::{Pallet, Config} = 3, + Aura: pallet_aura::{Pallet, Storage, Config} = 3, Balances: pallet_balances = 4, TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 5, Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event} = 6, @@ -2024,6 +2025,20 @@ impl_runtime_apis! { } } + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn build_state(config: Vec) -> sp_genesis_builder::Result { + frame_support::genesis_builder_helper::build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + frame_support::genesis_builder_helper::get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) diff --git a/runtime/krest/src/xcm_config.rs b/runtime/krest/src/xcm_config.rs index d354caa5d..df11c61f2 100644 --- a/runtime/krest/src/xcm_config.rs +++ b/runtime/krest/src/xcm_config.rs @@ -389,8 +389,11 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); - type MaxActiveOutboundChannels = (); - type MaxPageSize = (); + + type MaxActiveOutboundChannels = ConstU32<128>; + // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we + // need to set the page size larger than that until we reduce the channel size on-chain. + type MaxPageSize = MessageQueueHeapSize; } // For migration @@ -505,5 +508,6 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; - type IdleMaxServiceWeight = (); + + type IdleMaxServiceWeight = MessageQueueServiceWeight; } diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 44f21635b..946bb78e2 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -419,14 +419,15 @@ impl pallet_contracts::Config for Runtime { type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type MaxDelegateDependencies = MaxDelegateDependencies; type RuntimeHoldReason = RuntimeHoldReason; - type Migrations = (); + type Migrations = (pallet_contracts::migration::v16::Migration,); + type Debug = (); type Environment = (); type Xcm = (); type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = (); + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } @@ -1127,7 +1128,7 @@ construct_runtime!( System: frame_system = 0, RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip::{Pallet, Storage} = 1, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - Aura: pallet_aura::{Pallet, Config} = 3, + Aura: pallet_aura::{Pallet, Storage, Config} = 3, Balances: pallet_balances = 4, TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 5, Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event} = 6, diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index b404138f4..1c09595e6 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -390,8 +390,11 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); - type MaxActiveOutboundChannels = (); - type MaxPageSize = (); + + type MaxActiveOutboundChannels = ConstU32<128>; + // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we + // need to set the page size larger than that until we reduce the channel size on-chain. + type MaxPageSize = MessageQueueHeapSize; } // For migration @@ -506,5 +509,6 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; - type IdleMaxServiceWeight = (); + + type IdleMaxServiceWeight = MessageQueueServiceWeight; } diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 52d05e533..181b07ba4 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -441,14 +441,15 @@ impl pallet_contracts::Config for Runtime { type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type MaxDelegateDependencies = MaxDelegateDependencies; type RuntimeHoldReason = RuntimeHoldReason; - type Migrations = (); + type Migrations = (pallet_contracts::migration::v16::Migration,); + type Debug = (); type Environment = (); type Xcm = (); type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = (); + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } @@ -1147,7 +1148,7 @@ construct_runtime!( System: frame_system = 0, RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip::{Pallet, Storage} = 1, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - Aura: pallet_aura::{Pallet, Config} = 3, + Aura: pallet_aura::{Pallet, Storage, Config} = 3, Balances: pallet_balances = 4, TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 5, Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event} = 6, diff --git a/runtime/peaq/src/xcm_config.rs b/runtime/peaq/src/xcm_config.rs index b19386f41..4ae23360f 100644 --- a/runtime/peaq/src/xcm_config.rs +++ b/runtime/peaq/src/xcm_config.rs @@ -389,8 +389,11 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = NoPriceForMessageDelivery; type WeightInfo = (); - type MaxActiveOutboundChannels = (); - type MaxPageSize = (); + + type MaxActiveOutboundChannels = ConstU32<128>; + // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we + // need to set the page size larger than that until we reduce the channel size on-chain. + type MaxPageSize = MessageQueueHeapSize; } // For migration @@ -505,5 +508,6 @@ impl pallet_message_queue::Config for Runtime { type QueuePausedQuery = NarrowOriginToSibling; type WeightInfo = (); type ServiceWeight = MessageQueueServiceWeight; - type IdleMaxServiceWeight = (); + + type IdleMaxServiceWeight = MessageQueueServiceWeight; } From 65f18c5ac7aba56d5a712477229c7b0851d384ee Mon Sep 17 00:00:00 2001 From: jaypan Date: Tue, 17 Jun 2025 10:20:35 +0200 Subject: [PATCH 30/98] Fix the test compilation fails --- precompiles/balances-erc20/src/tests.rs | 1 + precompiles/vesting/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/precompiles/balances-erc20/src/tests.rs b/precompiles/balances-erc20/src/tests.rs index 8b90eadc0..59e9b4f17 100644 --- a/precompiles/balances-erc20/src/tests.rs +++ b/precompiles/balances-erc20/src/tests.rs @@ -22,6 +22,7 @@ use libsecp256k1::{sign, Message, SecretKey}; use precompile_utils::testing::*; use sha3::{Digest, Keccak256}; use sp_core::{H256, U256}; +use peaq_precompile_utils::MockPeaqAccount; // No test of invalid selectors since we have a fallback behavior (deposit). fn precompiles() -> Precompiles { diff --git a/precompiles/vesting/src/lib.rs b/precompiles/vesting/src/lib.rs index ac912e04b..c0f02118b 100644 --- a/precompiles/vesting/src/lib.rs +++ b/precompiles/vesting/src/lib.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] +// #![cfg_attr(test, feature(assert_matches))] use fp_evm::PrecompileHandle; use frame_support::{ From 5b65b25c972e93e40f18207dc942bc85988df6c5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 23 Jun 2025 16:34:22 +0500 Subject: [PATCH 31/98] Separate out some code into types, introduced new types for Client, backed and such --- node/src/parachain/service.rs | 114 ++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 82829b520..c16d9c4da 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -1,7 +1,7 @@ //! Parachain Service and ServiceFactory implementation. use cumulus_client_cli::CollatorOptions; -use cumulus_client_consensus_aura::collators::lookahead as async_aura; -use cumulus_client_consensus_common::ParachainBlockImport; +use cumulus_client_consensus_aura::{collators::{lookahead as async_aura, slot_based::{self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport, SlotBasedBlockImportHandle}},}; +use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; use cumulus_client_service::{ prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, DARecoveryProfile, @@ -73,8 +73,37 @@ pub type ExtHostFunctions = ( peaq_primitives_ext::peaq_ext::HostFunctions, ); -type FullClient = TFullClient>; -type FullBackend = TFullBackend; + +type ParachainExecutor = WasmExecutor; + +type ParachainClient = TFullClient; + + +type ParachainBackend = TFullBackend; + + +type ParachainBlockImport = TParachainBlockImport< + Block, + SlotBasedBlockImport, ParachainClient>, + ParachainBackend, +>; + +type Service = PartialComponents< + ParachainClient, + ParachainBackend, + (), + sc_consensus::DefaultImportQueue, + sc_transaction_pool::TransactionPoolHandle, + ( + ParachainBlockImport, + SlotBasedBlockImport, + Option, + Option, + Option, + Arc>, + FeeHistoryCache, + ), + >; pub fn frontier_database_dir(config: &Configuration, path: &str) -> std::path::PathBuf { config.base_path.config_dir(config.chain_spec.id()).join("frontier").join(path) @@ -127,30 +156,9 @@ pub fn new_partial( config: &mut Configuration, fn_build_import_queue: BIQ, target_gas_price: u64, -) -> Result< - PartialComponents< - FullClient, - FullBackend, - (), - sc_consensus::DefaultImportQueue, - sc_transaction_pool::TransactionPoolHandle>, - ( - ParachainBlockImport< - Block, - FrontierBlockImport>, FullClient>, - FullBackend, - >, - Option, - Option, - Option, - Arc>>, - FeeHistoryCache, - ), - >, - sc_service::Error, -> +) -> Result where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -159,14 +167,14 @@ where + sp_block_builder::BlockBuilder + sp_consensus_aura::AuraApi + fp_rpc::EthereumRuntimeRPCApi, - sc_client_api::StateBackendFor: + sc_client_api::StateBackendFor: sc_client_api::backend::StateBackend, BIQ: FnOnce( - Arc>, - ParachainBlockImport< + Arc, + TParachainBlockImport< Block, - FrontierBlockImport>, FullClient>, - FullBackend, + FrontierBlockImport, ParachainClient>, + ParachainBackend, >, &Configuration, Option, @@ -295,9 +303,9 @@ async fn start_contracts_node_impl( target_gas_price: u64, fn_build_import_queue: BIQ, fn_build_consensus: BIC, -) -> sc_service::error::Result<(TaskManager, Arc>)> +) -> sc_service::error::Result<(TaskManager, Arc)> where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -317,14 +325,14 @@ where + peaq_pallet_storage_rpc::PeaqStorageRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi + cumulus_primitives_aura::AuraUnincludedSegmentApi, - sc_client_api::StateBackendFor: + sc_client_api::StateBackendFor: sc_client_api::backend::StateBackend, BIQ: FnOnce( - Arc>, - ParachainBlockImport< + Arc, + TParachainBlockImport< Block, - FrontierBlockImport>, FullClient>, - FullBackend, + FrontierBlockImport, ParachainClient>, + ParachainBackend, >, &Configuration, Option, @@ -332,18 +340,18 @@ where u64, ) -> Result, sc_service::Error>, BIC: FnOnce( - Arc>, - Arc, - ParachainBlockImport< + Arc, + Arc, + TParachainBlockImport< Block, - FrontierBlockImport>, FullClient>, - FullBackend, + FrontierBlockImport, ParachainClient>, + ParachainBackend, >, Option<&Registry>, Option, &TaskManager, Arc, - Arc>>, + Arc>, Arc>, KeystorePtr, ParaId, @@ -607,19 +615,15 @@ where /// Build the import queue. #[allow(clippy::type_complexity)] pub fn build_import_queue( - client: Arc>, - block_import: ParachainBlockImport< - Block, - FrontierBlockImport>, FullClient>, - FullBackend, - >, + client: Arc, + block_import: ParachainBlockImport, config: &Configuration, telemetry_handle: Option, task_manager: &TaskManager, target_gas_price: u64, ) -> Result, sc_service::Error> where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -628,7 +632,7 @@ where + sp_block_builder::BlockBuilder + fp_rpc::EthereumRuntimeRPCApi + sp_consensus_aura::AuraApi, - sc_client_api::StateBackendFor: + sc_client_api::StateBackendFor: sc_client_api::backend::StateBackend, { let client2 = client.clone(); @@ -675,9 +679,9 @@ pub async fn start_node( id: ParaId, rpc_config: RpcConfig, target_gas_price: u64, -) -> sc_service::error::Result<(TaskManager, Arc>)> +) -> sc_service::error::Result<(TaskManager, Arc)> where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys From f02fa48ce37bf80b56eaf052e408121e0b771ac3 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 25 Jun 2025 12:56:48 +0500 Subject: [PATCH 32/98] (WIP) introduced slotbasedblockimport, orphaned frontierblockimport --- node/src/parachain/service.rs | 83 ++++++++++++++++------------------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index c16d9c4da..ba80c3ee7 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -1,4 +1,4 @@ -//! Parachain Service and ServiceFactory implementation. +//! Parachain Service and ServiceFactory implementation. use cumulus_client_cli::CollatorOptions; use cumulus_client_consensus_aura::{collators::{lookahead as async_aura, slot_based::{self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport, SlotBasedBlockImportHandle}},}; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; @@ -76,31 +76,31 @@ pub type ExtHostFunctions = ( type ParachainExecutor = WasmExecutor; -type ParachainClient = TFullClient; +type ParachainClient = TFullClient; type ParachainBackend = TFullBackend; -type ParachainBlockImport = TParachainBlockImport< +type ParachainBlockImport = TParachainBlockImport< Block, - SlotBasedBlockImport, ParachainClient>, + SlotBasedBlockImport>, ParachainClient>, ParachainBackend, >; -type Service = PartialComponents< - ParachainClient, +type Service = PartialComponents< + ParachainClient, ParachainBackend, (), sc_consensus::DefaultImportQueue, - sc_transaction_pool::TransactionPoolHandle, + sc_transaction_pool::TransactionPoolHandle>, ( - ParachainBlockImport, - SlotBasedBlockImport, + ParachainBlockImport, + SlotBasedBlockImport, ParachainClient>, Option, Option, Option, - Arc>, + Arc>>, FeeHistoryCache, ), >; @@ -156,9 +156,9 @@ pub fn new_partial( config: &mut Configuration, fn_build_import_queue: BIQ, target_gas_price: u64, -) -> Result +) -> Result, sc_service::Error> where - RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -170,12 +170,8 @@ where sc_client_api::StateBackendFor: sc_client_api::backend::StateBackend, BIQ: FnOnce( - Arc, - TParachainBlockImport< - Block, - FrontierBlockImport, ParachainClient>, - ParachainBackend, - >, + Arc>, + ParachainBlockImport, &Configuration, Option, &TaskManager, @@ -214,6 +210,12 @@ where telemetry }); + let filter_pool: Option = Some(Arc::new(std::sync::Mutex::new(BTreeMap::new()))); + let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); + + let frontier_backend = open_frontier_backend(client.clone(), config)?; + let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); + let transaction_pool = sc_transaction_pool::Builder::new( task_manager.spawn_essential_handle(), client.clone(), @@ -223,14 +225,10 @@ where .with_prometheus(config.prometheus_registry()) .build(); - let filter_pool: Option = Some(Arc::new(std::sync::Mutex::new(BTreeMap::new()))); - let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); - let frontier_backend = open_frontier_backend(client.clone(), config)?; - let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); - - let parachain_block_import: ParachainBlockImport<_, _, _> = - ParachainBlockImport::new(frontier_block_import, backend.clone()); + let (slot_based_block_import, slot_based_handle) = + SlotBasedBlockImport::new(client.clone(), client.clone()); + let parachain_block_import = ParachainBlockImport::new(slot_based_block_import.clone(), backend.clone()); let import_queue = fn_build_import_queue( client.clone(), @@ -251,6 +249,7 @@ where select_chain: (), other: ( parachain_block_import, + slot_based_handle, filter_pool, telemetry, telemetry_worker_handle, @@ -303,9 +302,9 @@ async fn start_contracts_node_impl( target_gas_price: u64, fn_build_import_queue: BIQ, fn_build_consensus: BIC, -) -> sc_service::error::Result<(TaskManager, Arc)> +) -> sc_service::error::Result<(TaskManager, Arc>)> where - RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -328,30 +327,22 @@ where sc_client_api::StateBackendFor: sc_client_api::backend::StateBackend, BIQ: FnOnce( - Arc, - TParachainBlockImport< - Block, - FrontierBlockImport, ParachainClient>, - ParachainBackend, - >, + Arc>, + ParachainBlockImport, &Configuration, Option, &TaskManager, u64, ) -> Result, sc_service::Error>, BIC: FnOnce( - Arc, + Arc>, Arc, - TParachainBlockImport< - Block, - FrontierBlockImport, ParachainClient>, - ParachainBackend, - >, + ParachainBlockImport, Option<&Registry>, Option, &TaskManager, Arc, - Arc>, + Arc>>, Arc>, KeystorePtr, ParaId, @@ -562,7 +553,7 @@ where sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, - telemetry: telemetry.as_mut(), + telemetry: Some(telemetry.as_mut()), })?; let announce_block = { @@ -615,15 +606,15 @@ where /// Build the import queue. #[allow(clippy::type_complexity)] pub fn build_import_queue( - client: Arc, - block_import: ParachainBlockImport, + client: Arc>, + block_import: ParachainBlockImport, config: &Configuration, telemetry_handle: Option, task_manager: &TaskManager, target_gas_price: u64, ) -> Result, sc_service::Error> where - RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys @@ -679,9 +670,9 @@ pub async fn start_node( id: ParaId, rpc_config: RpcConfig, target_gas_price: u64, -) -> sc_service::error::Result<(TaskManager, Arc)> +) -> sc_service::error::Result<(TaskManager, Arc>)> where - RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, + RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + sp_api::Metadata + sp_session::SessionKeys From d2a484981ea1279b771ef292e996fb6bcfc2bfaa Mon Sep 17 00:00:00 2001 From: jaypan Date: Thu, 26 Jun 2025 08:47:37 +0200 Subject: [PATCH 33/98] Integrate all together --> FrontierBlockImport --> SlotBlockImport -> ParaBlockImport --- node/src/parachain/service.rs | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index ba80c3ee7..f351ba3a7 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -1,6 +1,6 @@ //! Parachain Service and ServiceFactory implementation. use cumulus_client_cli::CollatorOptions; -use cumulus_client_consensus_aura::{collators::{lookahead as async_aura, slot_based::{self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport, SlotBasedBlockImportHandle}},}; +use cumulus_client_consensus_aura::{collators::{lookahead as async_aura, slot_based::{self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport as TSlotBasedBlockImport, SlotBasedBlockImportHandle}},}; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; use cumulus_client_service::{ @@ -19,7 +19,7 @@ use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node_with_rpc; -use fc_consensus::FrontierBlockImport; +use fc_consensus::FrontierBlockImport as TFrontierBlockImport; use fc_db::DatabaseSource; use fc_rpc::EthTask; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; @@ -81,10 +81,21 @@ type ParachainClient = TFullClient; +type FrontierBlockImport = TFrontierBlockImport< + Block, + SlotBasedBlockImport, + ParachainClient, +>; + +type SlotBasedBlockImport = TSlotBasedBlockImport< + Block, + Arc>, + ParachainClient +>; type ParachainBlockImport = TParachainBlockImport< Block, - SlotBasedBlockImport>, ParachainClient>, + FrontierBlockImport, ParachainBackend, >; @@ -96,7 +107,7 @@ type Service = PartialComponents< sc_transaction_pool::TransactionPoolHandle>, ( ParachainBlockImport, - SlotBasedBlockImport, ParachainClient>, + // SlotBasedBlockImport, ParachainClient>, Option, Option, Option, @@ -214,7 +225,6 @@ where let fee_history_cache: FeeHistoryCache = Arc::new(std::sync::Mutex::new(BTreeMap::new())); let frontier_backend = open_frontier_backend(client.clone(), config)?; - let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); let transaction_pool = sc_transaction_pool::Builder::new( task_manager.spawn_essential_handle(), @@ -227,8 +237,9 @@ where let (slot_based_block_import, slot_based_handle) = - SlotBasedBlockImport::new(client.clone(), client.clone()); - let parachain_block_import = ParachainBlockImport::new(slot_based_block_import.clone(), backend.clone()); + SlotBasedBlockImport::new(client.clone(), client.clone()); + let frontier_block_import = FrontierBlockImport::new(slot_based_block_import.clone(), client.clone()); + let parachain_block_import = ParachainBlockImport::new(frontier_block_import.clone(), backend.clone()); let import_queue = fn_build_import_queue( client.clone(), @@ -249,7 +260,7 @@ where select_chain: (), other: ( parachain_block_import, - slot_based_handle, + // slot_based_handle, filter_pool, telemetry, telemetry_worker_handle, @@ -357,6 +368,7 @@ where )?; let ( parachain_block_import, + // slot_based_handle, filter_pool, mut telemetry, telemetry_worker_handle, @@ -553,7 +565,7 @@ where sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, - telemetry: Some(telemetry.as_mut()), + telemetry: telemetry.as_mut(), })?; let announce_block = { From 4dd36ed428a72ed3dbfc00b947122181d11f7d75 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 26 Jun 2025 15:35:59 +0500 Subject: [PATCH 34/98] (WIP) upgraded node to support ES --- node/src/parachain/service.rs | 73 ++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index f351ba3a7..2ee0539f0 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -1,6 +1,8 @@ //! Parachain Service and ServiceFactory implementation. use cumulus_client_cli::CollatorOptions; -use cumulus_client_consensus_aura::{collators::{lookahead as async_aura, slot_based::{self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport as TSlotBasedBlockImport, SlotBasedBlockImportHandle}},}; +use cumulus_client_consensus_aura::collators::slot_based::{ + self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport as TSlotBasedBlockImport, SlotBasedBlockImportHandle, +}; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; use cumulus_client_service::{ @@ -14,7 +16,6 @@ use cumulus_primitives_core::{ use sc_client_api::{AuxStore, Backend, StateBackend, StorageProvider}; use sp_api::ProvideRuntimeApi; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; @@ -107,6 +108,7 @@ type Service = PartialComponents< sc_transaction_pool::TransactionPoolHandle>, ( ParachainBlockImport, + SlotBasedBlockImportHandle, // SlotBasedBlockImport, ParachainClient>, Option, Option, @@ -260,7 +262,7 @@ where select_chain: (), other: ( parachain_block_import, - // slot_based_handle, + slot_based_handle, filter_pool, telemetry, telemetry_worker_handle, @@ -358,6 +360,7 @@ where KeystorePtr, ParaId, CollatorPair, + SlotBasedBlockImportHandle ) -> Result<(), sc_service::Error>, { let mut parachain_config = prepare_node_config(parachain_config); @@ -368,7 +371,7 @@ where )?; let ( parachain_block_import, - // slot_based_handle, + slot_based_handle, filter_pool, mut telemetry, telemetry_worker_handle, @@ -609,6 +612,7 @@ where params.keystore_container.keystore(), id, collator_key.expect("Command line arguments do not allow this. qed"), + slot_based_handle )?; } @@ -754,9 +758,10 @@ where relay_chain_interface, transaction_pool, sync_oracle, - keystore, + keystore, para_id, - collator_key| { + collator_key, + block_import_handle| { let spawn_handle = task_manager.spawn_handle(); let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client).unwrap(); @@ -785,32 +790,36 @@ where client.clone(), ); - let fut = - async_aura::run::(async_aura::Params { - create_inherent_data_providers: move |_, ()| async move { Ok(()) }, - block_import: block_import.clone(), - para_client: client.clone(), - para_backend: backend.clone(), - relay_client: relay_chain_interface.clone(), - code_hash_provider: move |block_hash| { - client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) - }, - keystore, - collator_key, - para_id, - overseer_handle, - // [TODO] - max_pov_percentage: None, - relay_chain_slot_duration: Duration::from_secs(6), - proposer: cumulus_client_consensus_proposer::Proposer::new(proposer_factory), - collator_service, - // We got around 1500ms for proposing - authoring_duration: Duration::from_millis(1500), - // collation_request_receiver: None, - reinitialize: false, - }); - - task_manager.spawn_essential_handle().spawn("aura", None, fut); + let params = SlotBasedParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import: block_import.clone(), + para_client: client.clone(), + para_backend: backend.clone(), + relay_client: relay_chain_interface.clone(), + code_hash_provider: move |block_hash| { + client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) + }, + keystore, + collator_key, + para_id, + // [TODO] + max_pov_percentage: None, + relay_chain_slot_duration: Duration::from_secs(6), + proposer: cumulus_client_consensus_proposer::Proposer::new(proposer_factory), + collator_service, + // We got around 1500ms for proposing + authoring_duration: Duration::from_millis(1500), + // collation_request_receiver: None, + reinitialize: false, + slot_offset: Duration::from_secs(1), + spawner: task_manager.spawn_handle(), + export_pov: None, + block_import_handle: block_import_handle + }; + + slot_based::run::( + params, + ); Ok(()) }, From 647b167ed65703f1148405b9a5dfc2204979036e Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 26 Jun 2025 15:53:49 +0500 Subject: [PATCH 35/98] Implemented GetCoreSelctor Api and coupled with node --- node/src/parachain/service.rs | 3 ++- runtime/krest/src/lib.rs | 24 +++++++++++++++--------- runtime/peaq-dev/src/lib.rs | 24 +++++++++++++++--------- runtime/peaq/src/lib.rs | 23 ++++++++++++++--------- 4 files changed, 46 insertions(+), 28 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 2ee0539f0..32ef523ff 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -707,7 +707,8 @@ where + cumulus_primitives_core::CollectCollationInfo + peaq_pallet_storage_rpc::PeaqStorageRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi - + cumulus_primitives_aura::AuraUnincludedSegmentApi, + + cumulus_primitives_aura::AuraUnincludedSegmentApi + + cumulus_primitives_core::GetCoreSelectorApi { start_contracts_node_impl::( parachain_config, diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index f93c07beb..a46623ec7 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -1434,6 +1434,21 @@ impl_runtime_apis! { } } + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } + + impl cumulus_primitives_core::GetCoreSelectorApi for Runtime { + fn core_selector() -> (cumulus_primitives_core::CoreSelector, cumulus_primitives_core::ClaimQueueOffset) { + ParachainSystem::core_selector() + } + } + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Nonce { System::account_nonce(account) @@ -2153,15 +2168,6 @@ impl_runtime_apis! { Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() } } - - impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { - fn can_build_upon( - included_hash: ::Hash, - slot: cumulus_primitives_aura::Slot, - ) -> bool { - ConsensusHook::can_build_upon(included_hash, slot) - } - } } impl peaq_pallet_transaction::Config for Runtime { diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 946bb78e2..2d2a2ab5f 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1449,6 +1449,21 @@ impl_runtime_apis! { } } + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } + + impl cumulus_primitives_core::GetCoreSelectorApi for Runtime { + fn core_selector() -> (cumulus_primitives_core::CoreSelector, cumulus_primitives_core::ClaimQueueOffset) { + ParachainSystem::core_selector() + } + } + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Nonce { System::account_nonce(account) @@ -2168,15 +2183,6 @@ impl_runtime_apis! { Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() } } - - impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { - fn can_build_upon( - included_hash: ::Hash, - slot: cumulus_primitives_aura::Slot, - ) -> bool { - ConsensusHook::can_build_upon(included_hash, slot) - } - } } impl peaq_pallet_transaction::Config for Runtime { diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 181b07ba4..9147eb47e 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1467,6 +1467,20 @@ impl_runtime_apis! { } } + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } + + impl cumulus_primitives_core::GetCoreSelectorApi for Runtime { + fn core_selector() -> (cumulus_primitives_core::CoreSelector, cumulus_primitives_core::ClaimQueueOffset) { + ParachainSystem::core_selector() + } + } impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Nonce { System::account_nonce(account) @@ -2186,15 +2200,6 @@ impl_runtime_apis! { Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() } } - - impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { - fn can_build_upon( - included_hash: ::Hash, - slot: cumulus_primitives_aura::Slot, - ) -> bool { - ConsensusHook::can_build_upon(included_hash, slot) - } - } } impl peaq_pallet_transaction::Config for Runtime { From d37fdc0de06ba3f8aa25151c3ae1fd89a84e5eb9 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 26 Jun 2025 18:49:25 +0500 Subject: [PATCH 36/98] updated dev runtime with elastic scaling params --- runtime/peaq-dev/src/lib.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 2d2a2ab5f..3b9426360 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -149,10 +149,11 @@ pub type Block = generic::Block; /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included into the /// relay chain. -pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 2 * MAX_BLOCK_PROCESSING_VELOCITY + 1; /// How many parachain blocks are processed by the relay chain per parent. Limits the number of /// blocks authored per slot. -pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; +/// 12 to achieve 500ms blocktime +pub const MAX_BLOCK_PROCESSING_VELOCITY: u32 = 12; /// Relay chain slot duration, in milliseconds. pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; @@ -197,7 +198,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { /// up by `pallet_aura` to implement `fn slot_duration()`. /// /// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 6000; +pub const MILLISECS_PER_BLOCK: u64 = (RELAY_CHAIN_SLOT_DURATION_MILLIS / MAX_BLOCK_PROCESSING_VELOCITY) as u64; // NOTE: Currently it is not possible to change the slot duration after the chain has started. // Attempting to do so will brick block production. @@ -795,7 +796,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, - BLOCK_PROCESSING_VELOCITY, + MAX_BLOCK_PROCESSING_VELOCITY, UNINCLUDED_SEGMENT_CAPACITY, >; From 9be8285f9efe35541a86e24e52c29974d73a006b Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 30 Jun 2025 12:55:34 +0500 Subject: [PATCH 37/98] added 12 core zombienet config --- zombienet-node.toml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 zombienet-node.toml diff --git a/zombienet-node.toml b/zombienet-node.toml new file mode 100644 index 000000000..35fe68924 --- /dev/null +++ b/zombienet-node.toml @@ -0,0 +1,28 @@ +# Add parachain and relaychain binaries to path to maket his + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.async_backing_params] + max_candidate_depth = 6 + allowed_ancestry_len = 2 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.scheduler_params] + max_validators_per_core = 1 + num_cores = 11 # +1 is added when network is launched + lookahead = 3 + +[relaychain] +default_command = "polkadot" +chain = "rococo-local" + + [[relaychain.node_groups]] + name = "elastic-validator" + count = 12 + +[[parachains]] +id = 2000 +chain_spec_path = "./chain_spec.json" # Plain chainspec path + +[parachains.collator] +name = "charlie" +ws_port = 9988 +command = "peaq-node" +args = [ "-lparachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug,cumulus-collator=trace,aura=trace" ] \ No newline at end of file From 5f7612f5cd8a293cbc0fdcfcf8485f6087724d16 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 30 Jun 2025 15:00:06 +0500 Subject: [PATCH 38/98] use alice for zombienet parachain collator --- zombienet-node.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zombienet-node.toml b/zombienet-node.toml index 35fe68924..d21b0649b 100644 --- a/zombienet-node.toml +++ b/zombienet-node.toml @@ -22,7 +22,7 @@ id = 2000 chain_spec_path = "./chain_spec.json" # Plain chainspec path [parachains.collator] -name = "charlie" +name = "alice" ws_port = 9988 command = "peaq-node" args = [ "-lparachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug,cumulus-collator=trace,aura=trace" ] \ No newline at end of file From 8b59f2cc8ad1951ef65cd9a9744948458d5c193e Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 1 Jul 2025 11:55:36 +0500 Subject: [PATCH 39/98] refactor some scripts --- zombienet-node.toml => scripts/zombienet-node.toml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename zombienet-node.toml => scripts/zombienet-node.toml (100%) diff --git a/zombienet-node.toml b/scripts/zombienet-node.toml similarity index 100% rename from zombienet-node.toml rename to scripts/zombienet-node.toml From 65adadf5d25834f9a967eacf412bb217d51360c3 Mon Sep 17 00:00:00 2001 From: kamrangul2404 <101552881+kamrangul2404@users.noreply.github.com> Date: Tue, 1 Jul 2025 10:35:15 +0200 Subject: [PATCH 40/98] Update README.md --- README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index dcb1535f1..048840b09 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ First, complete the [basic Rust setup instructions](./docs/rust-setup.md). ### Run Currently, because we are moving to the parachain, we need to use parachain-launch to start the -parachain. Please refer to this project, [parachain-launch](https://github.com/peaqnetwork/parachain-launch) +parachain. Please refer to this project, [peaq-launch](https://github.com/peaqnetwork/parachain-launch) , to more information. ### Build @@ -36,17 +36,11 @@ The provided `cargo run` command will launch a temporary node and its state will you terminate the process. After the project has been built, there are other ways to launch the node. -### Single-Node Development Chain - -Because we are the parachain now, we don't support the Single-Node Development Chain. However, you can start the parachain -by parachain-launch. ### Connect with Polkadot-JS Apps Front-end -Once the node template is running locally, you can connect it with **Polkadot-JS Apps** front-end -to interact with your chain. [Click -here](https://polkadot.js.org/apps/#/explorer?rpc=ws://localhost:9944) connecting the Apps to your -local node template. +Once the node template is running locally, you can connect it with **Network Expolrer Apps** front-end +to interact with your chain. ### Multi-Node Local Testnet From b3cf1eefed9e1d7c8b323d8abce152c4316830be Mon Sep 17 00:00:00 2001 From: kamrangul2404 <101552881+kamrangul2404@users.noreply.github.com> Date: Tue, 1 Jul 2025 10:35:54 +0200 Subject: [PATCH 41/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 048840b09..12886151c 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ you terminate the process. After the project has been built, there are other way node. -### Connect with Polkadot-JS Apps Front-end +### Connect with Explorer Apps Front-end Once the node template is running locally, you can connect it with **Network Expolrer Apps** front-end to interact with your chain. From 47f37ce6ea0bfd5953e51819a0ea08a205647a96 Mon Sep 17 00:00:00 2001 From: kamrangul2404 <101552881+kamrangul2404@users.noreply.github.com> Date: Tue, 1 Jul 2025 10:37:59 +0200 Subject: [PATCH 42/98] Update README.md --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 12886151c..fbb84efd7 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,7 @@ Substrate-based blockchain nodes expose a number of capabilities: - Consensus: Blockchains must have a way to come to [consensus](https://docs.substrate.io/v3/advanced/consensus) on the state of the network. Substrate makes it possible to supply custom consensus engines and also ships with - several consensus mechanisms that have been built on top of - [Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html). + several consensus mechanisms that have been built on top of Npos - RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes. There are several files in the `node` directory - take special note of the following: @@ -137,7 +136,7 @@ A FRAME pallet is compromised of a number of blockchain primitives: First, install [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/). -Please use following command to run peaq-network-node parachian in the docker container connected with polkadot relaychain running in the PEAQ development environment. +Please use following command to run peaq-network-node parachian in the docker container connected with relaychain running in the PEAQ development environment. #### PEAQ-Dev env @@ -204,7 +203,7 @@ Once you run this command, wait for a few second. Now the peaq parachian should ### Run on your local machine with Docker commands -Please follow the steps given below to run peaq-network-node parachian on your local machine connected with polkadot relaychain running in the PEAQ development environment. It is assumed that you have already downloaded the source code +Please follow the steps given below to run peaq-network-node parachian on your local machine connected with relaychain running in the PEAQ development environment. It is assumed that you have already downloaded the source code for peaq-network-node from the git repository 1. Download the source code from the git repository: @@ -241,7 +240,7 @@ The folder .local is needed because that is where data such as session keys are ./scripts/docker_run.sh cargo build --release --features on-chain-release-build ``` -5. Now run the following script to start a peaq-network-node parachain that will connect to the polkadot relay chain running in peaq development environment: +5. Now run the following script to start a peaq-network-node parachain that will connect to the relay chain running in peaq development environment: ```bash # PEAQ-Dev env From eece6c58125e0dce3752fce1c5d77cda62ac4729 Mon Sep 17 00:00:00 2001 From: kamrangul2404 <101552881+kamrangul2404@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:53:18 +0200 Subject: [PATCH 43/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fbb84efd7..7d8495769 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ You can also replace the default command by appending your own. A few useful one ./scripts/docker_run.sh cargo check ``` -### Parachain Launch +### Chain Launch 1. Please use the [peaq-node-builder](https://github.com/peaqnetwork/peaq-node-builder) to build the project @@ -317,4 +317,4 @@ You can also replace the default command by appending your own. A few useful one docker build -f scripts/Dockerfile.parachain-launch -t peaqtest . ``` -3. Please use the [parachain-launch](https://github.com/peaqnetwork/parachain-launch) to run the local parachain +3. Please use the [chain-launch](https://github.com/peaqnetwork/parachain-launch) to run the local parachain From 8c118f64e8024c1bea3b73bf7a2f9fb74cad31b6 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 2 Jul 2025 20:10:31 +0500 Subject: [PATCH 44/98] fixed SlotDuration for elastic scaling in dev runtime --- runtime/peaq-dev/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 3b9426360..742e16d10 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -198,7 +198,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { /// up by `pallet_aura` to implement `fn slot_duration()`. /// /// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = (RELAY_CHAIN_SLOT_DURATION_MILLIS / MAX_BLOCK_PROCESSING_VELOCITY) as u64; +pub const MILLISECS_PER_BLOCK: u64 = 6000; // NOTE: Currently it is not possible to change the slot duration after the chain has started. // Attempting to do so will brick block production. From 395a8c121e442a98be0a18b711b6735bca34f576 Mon Sep 17 00:00:00 2001 From: jaypan Date: Mon, 14 Jul 2025 13:48:31 +0200 Subject: [PATCH 45/98] Fix the zenlink test_create_pair_swap issue --- runtime/common/src/payment.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 7e00f67f0..db3448823 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -147,15 +147,18 @@ where if fee.is_zero() { return Ok(()); } - // Check if user can withdraw in any valid currency. let currency_id = PCPC::ensure_can_withdraw(who, fee)?; let native_currency_id = PeaqAssetId::default().try_into().ok().unwrap(); if currency_id != native_currency_id { - Err(InvalidTransaction::Payment.into()) - } else { - Ok(()) + log!( + info, + PeaqMultiCurrenciesOnChargeTransaction, + "Payment with swap of {:?}-tokens", + currency_id + ); } + Ok(()) } } From 26ea5a394443b980974a695c9795e9c716c26260 Mon Sep 17 00:00:00 2001 From: jaypan Date: Mon, 28 Jul 2025 12:14:14 +0200 Subject: [PATCH 46/98] Update the txpool + eth --- Cargo.lock | 1 + node/Cargo.toml | 2 +- node/src/rpc.rs | 4 +-- runtime/common/src/payment.rs | 1 - runtime/krest/src/lib.rs | 63 +++++++++++++++++++++++++++++++++-- runtime/peaq-dev/src/lib.rs | 63 +++++++++++++++++++++++++++++++++-- runtime/peaq/src/lib.rs | 61 ++++++++++++++++++++++++++++++++- 7 files changed, 186 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a44e69b39..472b480c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3583,6 +3583,7 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "schnellru", + "serde", "sp-api", "sp-block-builder", "sp-blockchain", diff --git a/node/Cargo.toml b/node/Cargo.toml index 6b99b1493..714ffa9c7 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -69,7 +69,7 @@ hex-literal = { workspace = true, default-features = true } fc-consensus = { workspace = true, default-features = true } fc-db = { workspace = true, default-features = true } fc-mapping-sync = { workspace = true, default-features = true } -fc-rpc = { workspace = true, default-features = true } +fc-rpc = { workspace = true, default-features = true, features = [ "rpc-binary-search-estimate", "txpool" ] } fc-rpc-core = { workspace = true, default-features = true } fc-api = { workspace = true, default-features = true } fp-consensus = { workspace = true, default-features = true } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 9231ae1b7..d5278ed53 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -3,8 +3,9 @@ use cumulus_primitives_core::ParaId; use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; -// [TODO] TxPool use fc_rpc::{EthBlockDataCacheTask, StorageOverride}; +use fc_rpc::TxPool; +use fc_rpc::TxPoolApiServer; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use jsonrpsee::RpcModule; use peaq_primitives_xcm::*; @@ -295,7 +296,6 @@ where .into_rpc(), )?; if ethapi_cmd.contains(&EthApiCmd::Txpool) { - #[cfg(feature = "txpool")] io.merge(TxPool::new(Arc::clone(&client), graph).into_rpc())?; } diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index db3448823..7586617f3 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -9,7 +9,6 @@ use frame_support::{ }, Parameter, }; -use frame_support::traits::tokens::WithdrawConsequence; use frame_system::Config as SysConfig; use orml_traits::MultiCurrency; use pallet_evm::{EVMCurrencyAdapter, OnChargeEVMTransaction as OnChargeEVMTransactionT}; diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index a46623ec7..c703f2bed 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -1448,7 +1448,7 @@ impl_runtime_apis! { ParachainSystem::core_selector() } } - + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Nonce { System::account_nonce(account) @@ -1560,7 +1560,7 @@ impl_runtime_apis! { )) } - // [TODO] .... + #[cfg(feature = "evm-tracing")] fn trace_call( header: &::Header, from: H160, @@ -1572,6 +1572,65 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + use peaq_evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + Executive::initialize_block(header); + + EvmTracer::new().trace(|| { + let is_transactional = false; + let validate = true; + + let transaction_data = pallet_ethereum::TransactionData::new( + pallet_ethereum::TransactionAction::Call(to), + data.clone(), + nonce.unwrap_or_default(), + gas_limit, + None, + max_fee_per_gas.or(Some(U256::default())), + max_priority_fee_per_gas.or(Some(U256::default())), + value, + Some(::ChainId::get()), + access_list.clone().unwrap_or_default(), + ); + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + + let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); + + let _ = ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + ::config(), + ); + }); + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + fn trace_call( + _header: &::Header, + _from: H160, + _to: H160, + _data: Vec, + _value: U256, + _gas_limit: U256, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Option)>>, ) -> Result<(), sp_runtime::DispatchError> { Err(sp_runtime::DispatchError::Other( "Missing `evm-tracing` compile time feature flag.", diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 3b9426360..a9fdbe5b3 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1464,7 +1464,7 @@ impl_runtime_apis! { ParachainSystem::core_selector() } } - + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Nonce { System::account_nonce(account) @@ -1576,7 +1576,7 @@ impl_runtime_apis! { )) } - // [TODO] .... + #[cfg(feature = "evm-tracing")] fn trace_call( header: &::Header, from: H160, @@ -1588,6 +1588,65 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + use peaq_evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + Executive::initialize_block(header); + + EvmTracer::new().trace(|| { + let is_transactional = false; + let validate = true; + + let transaction_data = pallet_ethereum::TransactionData::new( + pallet_ethereum::TransactionAction::Call(to), + data.clone(), + nonce.unwrap_or_default(), + gas_limit, + None, + max_fee_per_gas.or(Some(U256::default())), + max_priority_fee_per_gas.or(Some(U256::default())), + value, + Some(::ChainId::get()), + access_list.clone().unwrap_or_default(), + ); + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + + let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); + + let _ = ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + ::config(), + ); + }); + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + fn trace_call( + _header: &::Header, + _from: H160, + _to: H160, + _data: Vec, + _value: U256, + _gas_limit: U256, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Option)>>, ) -> Result<(), sp_runtime::DispatchError> { Err(sp_runtime::DispatchError::Other( "Missing `evm-tracing` compile time feature flag.", diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 9147eb47e..7fb475da2 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1592,7 +1592,7 @@ impl_runtime_apis! { )) } - // [TODO] .... + #[cfg(feature = "evm-tracing")] fn trace_call( header: &::Header, from: H160, @@ -1604,6 +1604,65 @@ impl_runtime_apis! { max_priority_fee_per_gas: Option, nonce: Option, access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + use peaq_evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + Executive::initialize_block(header); + + EvmTracer::new().trace(|| { + let is_transactional = false; + let validate = true; + + let transaction_data = pallet_ethereum::TransactionData::new( + pallet_ethereum::TransactionAction::Call(to), + data.clone(), + nonce.unwrap_or_default(), + gas_limit, + None, + max_fee_per_gas.or(Some(U256::default())), + max_priority_fee_per_gas.or(Some(U256::default())), + value, + Some(::ChainId::get()), + access_list.clone().unwrap_or_default(), + ); + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + + let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); + + let _ = ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + ::config(), + ); + }); + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + fn trace_call( + _header: &::Header, + _from: H160, + _to: H160, + _data: Vec, + _value: U256, + _gas_limit: U256, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Option)>>, ) -> Result<(), sp_runtime::DispatchError> { Err(sp_runtime::DispatchError::Other( "Missing `evm-tracing` compile time feature flag.", From 345d7f115b822bc80cb6f0a5d7e2876b63afd567 Mon Sep 17 00:00:00 2001 From: Lovish Arora <46993225+lavish0000@users.noreply.github.com> Date: Tue, 15 Jul 2025 17:55:15 +0530 Subject: [PATCH 47/98] Merge pull request #365 from sandreim/sandreim/storage_weight Enable storage weight reclaim --- Cargo.lock | 19 ++++++++++++++++++ Cargo.toml | 1 + runtime/peaq-dev/Cargo.toml | 1 + runtime/peaq-dev/src/lib.rs | 40 +++++++++++++++++++++++-------------- 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 472b480c8..2a2dc6a50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2339,6 +2339,24 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "cumulus-pallet-weight-reclaim" +version = "0.2.0" +source = "git+https://github.com/peaqnetwork/polkadot-sdk?branch=peaq-polkadot-stable2503-4#0548e837980715584bfdea1fb907c9a6b3186bc2" +dependencies = [ + "cumulus-primitives-storage-weight-reclaim", + "derive-where", + "docify", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-trie", +] + [[package]] name = "cumulus-pallet-xcm" version = "0.19.1" @@ -9284,6 +9302,7 @@ dependencies = [ "address-unification", "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", + "cumulus-pallet-weight-reclaim", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", diff --git a/Cargo.toml b/Cargo.toml index b54b057be..5490767fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,6 +91,7 @@ cumulus-relay-chain-minimal-node = { git = "https://github.com/peaqnetwork/polka cumulus-relay-chain-rpc-interface = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4" } cumulus-pallet-parachain-system = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } cumulus-pallet-aura-ext = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } +cumulus-pallet-weight-reclaim = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } cumulus-pallet-xcm = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } cumulus-pallet-xcmp-queue = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } cumulus-primitives-core = { git = "https://github.com/peaqnetwork/polkadot-sdk", branch = "peaq-polkadot-stable2503-4", default-features = false } diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index b2ad1af4d..0db96602d 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -80,6 +80,7 @@ cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } +cumulus-pallet-weight-reclaim = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } polkadot-parachain = { workspace = true, default-features = false } diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index e74d649a6..48943f5ee 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -35,7 +35,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::{traits::IdentityLookup, generic::Preamble}; +use sp_runtime::{generic::Preamble, traits::IdentityLookup}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -57,7 +57,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; +use sp_std::{borrow::Cow, marker::PhantomData, prelude::*, vec, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -651,7 +651,8 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -739,7 +740,8 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; + type StateRoot = + pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } @@ -1184,17 +1186,21 @@ construct_runtime!( ); /// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, - frame_metadata_hash_extension::CheckMetadataHash, -); +pub type SignedExtra = cumulus_pallet_weight_reclaim::StorageWeightReclaim< + Runtime, + ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, + ), +>; + type EventRecord = frame_system::EventRecord< ::RuntimeEvent, ::Hash, @@ -2278,6 +2284,10 @@ parameter_types! { WithdrawReasons::except(WithdrawReasons::TRANSFER | WithdrawReasons::RESERVE); } +impl cumulus_pallet_weight_reclaim::Config for Runtime { + type WeightInfo = (); +} + impl pallet_vesting::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; From 07ffc00f17915c2827b885fa57aac82fe2446ebb Mon Sep 17 00:00:00 2001 From: Lovish Arora <46993225+lavish0000@users.noreply.github.com> Date: Tue, 15 Jul 2025 15:04:18 +0200 Subject: [PATCH 48/98] Fix index access for ChargeTransactionPayment in SignedExtra --- runtime/peaq-dev/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 48943f5ee..88cd6976a 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1403,7 +1403,7 @@ impl_runtime_apis! { Preamble::Signed(_, _, signed_extra) => { // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra // Get the 7th item from the tuple - let charge_transaction_payment = &signed_extra.7; + let charge_transaction_payment = &signed_extra.0.7; charge_transaction_payment.tip() }, Preamble::General(_, _) => 0, From a8fcbae5f9812f2ac98fc5c5678d59fbab50d533 Mon Sep 17 00:00:00 2001 From: Lovish Arora <46993225+lavish0000@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:37:27 +0530 Subject: [PATCH 49/98] Merge pull request #366 from sandreim/sandreim/improve_TPS Improve TPS --- node/src/parachain/service.rs | 4 +- runtime/peaq-dev/src/lib.rs | 23 ++++--- runtime/peaq-dev/src/weights/mod.rs | 1 + .../peaq-dev/src/weights/rocksdb_weights.rs | 62 +++++++++++++++++++ 4 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 runtime/peaq-dev/src/weights/rocksdb_weights.rs diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 32ef523ff..f4e912330 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -804,12 +804,12 @@ where collator_key, para_id, // [TODO] - max_pov_percentage: None, + max_pov_percentage: Some(85), relay_chain_slot_duration: Duration::from_secs(6), proposer: cumulus_client_consensus_proposer::Proposer::new(proposer_factory), collator_service, // We got around 1500ms for proposing - authoring_duration: Duration::from_millis(1500), + authoring_duration: Duration::from_millis(2000), // collation_request_receiver: None, reinitialize: false, slot_offset: Duration::from_secs(1), diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 88cd6976a..141476b22 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -37,9 +37,12 @@ use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use sp_runtime::{generic::Preamble, traits::IdentityLookup}; -use frame_support::traits::{ - tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, - EqualPrivilegeOnly, LinearStoragePrice, +use frame_support::{ + traits::{ + tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, + EqualPrivilegeOnly, LinearStoragePrice, + }, + weights::constants, }; use smallvec::smallvec; use sp_api::impl_runtime_apis; @@ -61,11 +64,14 @@ use sp_std::{borrow::Cow, marker::PhantomData, prelude::*, vec, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; +use sp_weights::RuntimeDbWeight; use zenlink_protocol::{AssetBalance, MultiAssetsHandler, PairInfo, ZenlinkMultiAssets}; mod weights; pub mod xcm_config; +use weights::rocksdb_weights::constants::RocksDbWeight; + // A few exports that help ease life for downstream crates. #[cfg(feature = "std")] pub use fp_evm::GenesisAccount; @@ -81,7 +87,7 @@ pub use frame_support::{ }, weights::{ constants::{ - BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND, + BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND, }, ConstantMultiplier, IdentityFee, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -236,11 +242,12 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); /// `Operational` extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +/// Polkadot/Kusama support 10MB now. +const MAX_POV_SIZE: u32 = 10 * 1024 * 1024; + /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( - WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), - cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, -); +const MAXIMUM_BLOCK_WEIGHT: Weight = + Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), MAX_POV_SIZE as u64); /// Base Deposit for occupying storage - 0.01 PEAQ const STORAGE_DEPOSIT_BASE: Balance = CENTS; diff --git a/runtime/peaq-dev/src/weights/mod.rs b/runtime/peaq-dev/src/weights/mod.rs index 42c2d1345..c9a974e26 100644 --- a/runtime/peaq-dev/src/weights/mod.rs +++ b/runtime/peaq-dev/src/weights/mod.rs @@ -1,2 +1,3 @@ pub mod pallet_evm; pub mod pallet_xcm; +pub mod rocksdb_weights; \ No newline at end of file diff --git a/runtime/peaq-dev/src/weights/rocksdb_weights.rs b/runtime/peaq-dev/src/weights/rocksdb_weights.rs new file mode 100644 index 000000000..e7c1fdd18 --- /dev/null +++ b/runtime/peaq-dev/src/weights/rocksdb_weights.rs @@ -0,0 +1,62 @@ +// This file is part of Substrate. + +// Copyright (C) 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. + +pub mod constants { + use frame_support::weights::constants; + use sp_core::parameter_types; + use sp_weights::RuntimeDbWeight; + + parameter_types! { + /// By default, Substrate uses RocksDB, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 20_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 37_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use sp_weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} From 4796bb47c265136bff1dcdb853122993e14e77b5 Mon Sep 17 00:00:00 2001 From: Lovish Arora <46993225+lavish0000@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:24:09 +0530 Subject: [PATCH 50/98] Merge pull request #367 from sandreim/bump-NORMAL_DISPATCH_RATIO Bump normal dispatch ratio --- runtime/peaq-dev/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 141476b22..f6afa0f3a 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -240,7 +240,7 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by /// `Operational` extrinsics. -const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); /// Polkadot/Kusama support 10MB now. const MAX_POV_SIZE: u32 = 10 * 1024 * 1024; From dbe3467fd67d1e74eb8efe77bbd1b0c41067aa80 Mon Sep 17 00:00:00 2001 From: jaypan Date: Fri, 5 Sep 2025 14:13:35 +0200 Subject: [PATCH 51/98] Fix some test cases by comparing with moonbeam's project --- precompiles/xcm-utils/src/mock.rs | 10 +++++++--- precompiles/xcm-utils/src/tests.rs | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/precompiles/xcm-utils/src/mock.rs b/precompiles/xcm-utils/src/mock.rs index 86a77d6f4..6fdd9909b 100644 --- a/precompiles/xcm-utils/src/mock.rs +++ b/precompiles/xcm-utils/src/mock.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2022 PureStake Inc. +// Copyright 2019-2025 PureStake Inc. // This file is part of Moonbeam. // Moonbeam is free software: you can redistribute it and/or modify @@ -21,6 +21,7 @@ use frame_support::{ traits::{ConstU32, EnsureOrigin, Everything, Nothing, OriginTrait, PalletInfo as _}, weights::{RuntimeDbWeight, Weight}, }; +use xcm_builder::Case; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, GasWeightMapping}; use peaq_precompile_utils::*; use precompile_utils::precompile_set::*; @@ -124,7 +125,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; - type RuntimeTask = (); + type RuntimeTask = RuntimeTask; type ExtensionsWeightInfo = (); type MultiBlockMigrator = (); type PostInherents = (); @@ -374,6 +375,9 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = 64; + + pub RelayLocation: Location = Location::parent(); + pub RelayForeignAsset: (AssetFilter, Location) = (All.into(), RelayLocation::get()); } pub type XcmOriginToTransactDispatchOrigin = ( @@ -388,7 +392,7 @@ impl xcm_executor::Config for XcmConfig { type XcmSender = TestSendXcm; type AssetTransactor = DummyAssetTransactor; type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = (); + type IsReserve = Case; type IsTeleporter = (); type UniversalLocation = UniversalLocation; type Barrier = Barrier; diff --git a/precompiles/xcm-utils/src/tests.rs b/precompiles/xcm-utils/src/tests.rs index bd77bceb7..9ee270171 100644 --- a/precompiles/xcm-utils/src/tests.rs +++ b/precompiles/xcm-utils/src/tests.rs @@ -67,7 +67,7 @@ fn test_weight_message() { precompiles() .prepare_test(MockPeaqAccount::Alice, MockPeaqAccount::EVMu1Account, input) - .expect_cost(0) + .expect_cost(1) .expect_no_logs() .execute_returns(1000u64); }); @@ -80,7 +80,7 @@ fn test_get_units_per_second() { precompiles() .prepare_test(MockPeaqAccount::Alice, MockPeaqAccount::EVMu1Account, input) - .expect_cost(1) + .expect_cost(2) .expect_no_logs() .execute_returns(U256::from(1_000_000_000_000u128)); }); @@ -154,7 +154,7 @@ fn test_executor_transact() { encoded.append(&mut call_bytes); let xcm_to_execute = VersionedXcm::<()>::V5(Xcm(vec![Transact { origin_kind: OriginKind::SovereignAccount, - fallback_max_weight: None, + fallback_max_weight: Some(Weight::from_parts(1_000_000_000u64, 5206u64)), call: encoded.into(), }])) .encode(); @@ -163,7 +163,7 @@ fn test_executor_transact() { precompiles() .prepare_test(MockPeaqAccount::Alice, MockPeaqAccount::EVMu1Account, input) - .expect_cost(1100001001) + .expect_cost(273835001) .expect_no_logs() .execute_returns(()); @@ -183,7 +183,7 @@ fn test_send_clear_origin() { precompiles() .prepare_test(MockPeaqAccount::Alice, MockPeaqAccount::EVMu1Account, input) // Only the cost of TestWeightInfo - .expect_cost(100000000) + .expect_cost(100000001) .expect_no_logs() .execute_returns(()); From 5ff9766a498518060949cefbd1b37aec7d8500f8 Mon Sep 17 00:00:00 2001 From: jaypan Date: Thu, 9 Oct 2025 03:13:46 +0200 Subject: [PATCH 52/98] Fix the xtokens unittest fail SetFeesMode is involved in the xtokens unit test, so weight/gas must be set correctly. --- precompiles/xtokens/src/mock.rs | 2 +- precompiles/xtokens/src/tests.rs | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/precompiles/xtokens/src/mock.rs b/precompiles/xtokens/src/mock.rs index 16a702809..365a50c08 100644 --- a/precompiles/xtokens/src/mock.rs +++ b/precompiles/xtokens/src/mock.rs @@ -328,7 +328,7 @@ impl xcm_executor::Config for XcmConfig { type XcmSender = DoNothingRouter; type AssetTransactor = DummyAssetTransactor; type OriginConverter = pallet_xcm::XcmPassthrough; - type IsReserve = (); + type IsReserve = Everything; type IsTeleporter = (); type UniversalLocation = UniversalLocation; type Barrier = Barrier; diff --git a/precompiles/xtokens/src/tests.rs b/precompiles/xtokens/src/tests.rs index c15b6a9c8..809bbd2d5 100644 --- a/precompiles/xtokens/src/tests.rs +++ b/precompiles/xtokens/src/tests.rs @@ -103,7 +103,7 @@ fn transfer_self_reserve_works() { weight: 4_000_000, }, ) - .expect_cost(2000) + .expect_cost(3000) .expect_no_logs() .execute_returns(()); @@ -143,7 +143,7 @@ fn transfer_to_reserve_works() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -183,7 +183,7 @@ fn transfer_to_reserve_with_unlimited_weight_works() { weight: u64::MAX, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -224,7 +224,7 @@ fn transfer_to_reserve_with_fee_works() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -269,7 +269,7 @@ fn transfer_non_reserve_to_non_reserve_works() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -310,7 +310,7 @@ fn transfer_non_reserve_to_non_reserve_with_fee_works() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -355,7 +355,7 @@ fn transfer_multi_asset_to_reserve_works() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -395,7 +395,7 @@ fn transfer_multi_asset_self_reserve_works() { weight: 4_000_000, }, ) - .expect_cost(2000) + .expect_cost(3000) .expect_no_logs() .execute_returns(()); @@ -435,7 +435,7 @@ fn transfer_multi_asset_self_reserve_with_fee_works() { weight: 4_000_000, }, ) - .expect_cost(2000) + .expect_cost(3000) .expect_no_logs() .execute_returns(()); @@ -477,7 +477,7 @@ fn transfer_multi_asset_non_reserve_to_non_reserve() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -518,7 +518,7 @@ fn transfer_multi_asset_non_reserve_to_non_reserve_with_fee() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -563,7 +563,7 @@ fn transfer_multi_currencies() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); @@ -626,7 +626,7 @@ fn transfer_multi_assets() { weight: 4_000_000, }, ) - .expect_cost(3000) + .expect_cost(4000) .expect_no_logs() .execute_returns(()); From 5863900299d1d5424374674d09e64aa5ce1ba115 Mon Sep 17 00:00:00 2001 From: jaypan Date: Thu, 9 Oct 2025 09:16:37 +0200 Subject: [PATCH 53/98] fix: reduce pallet_contracts payload_len to fix runtime integrity test Reduced payload_len from 16KB to 12KB in pallet_contracts Schedule configuration to meet storage limit requirements. The integrity test was failing because Peaq's 90% NORMAL_DISPATCH_RATIO (vs standard 75%) allows 20% more weight for Normal transactions, resulting in max_storage_size (251.5MB) exceeding the validator memory limit (192MB). The 12KB payload_len compensates for the higher dispatch ratio while maintaining sufficient storage capacity for contract operations. --- runtime/peaq-dev/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 01b299d75..de6c2b28e 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -389,7 +389,13 @@ parameter_types! { // The lazy deletion runs inside on_initialize. pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * RuntimeBlockWeights::get().max_block; pub const DeletionQueueDepth: u32 = 128; - pub Schedule: pallet_contracts::Schedule = Default::default(); + pub Schedule: pallet_contracts::Schedule = pallet_contracts::Schedule { + limits: pallet_contracts::Limits { + payload_len: 12 * 1024, // Reduced from 16KB to 12KB to meet storage limit with 90% dispatch ratio + ..Default::default() + }, + ..Default::default() + }; pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); // TODO: re-vist to make sure values are appropriate pub const MaxDelegateDependencies: u32 = 32; From 3f6a47eae6cdfce4fafe21935e8b88bd80548716 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 10 Oct 2025 14:56:15 +0500 Subject: [PATCH 54/98] cargo clipply fixes --- .../evm-tracing/src/formatters/blockscout.rs | 2 +- .../evm-tracing/src/formatters/call_tracer.rs | 16 +++++++------- .../src/formatters/trace_filter.rs | 2 +- client/evm-tracing/src/listeners/call_list.rs | 2 +- client/evm-tracing/src/types/single.rs | 6 +---- client/rpc/debug/src/lib.rs | 22 +++++++++---------- node/src/parachain/service.rs | 2 +- node/src/rpc.rs | 2 -- pallets/xc-asset-config/src/tests.rs | 2 +- primitives/rpc/evm-tracing-events/src/evm.rs | 12 ++-------- .../rpc/evm-tracing-events/src/runtime.rs | 4 ++-- runtime/krest/src/lib.rs | 2 +- runtime/krest/src/xcm_config.rs | 4 ++-- runtime/peaq-dev/src/lib.rs | 10 +++------ runtime/peaq/src/lib.rs | 4 ++-- 15 files changed, 37 insertions(+), 55 deletions(-) diff --git a/client/evm-tracing/src/formatters/blockscout.rs b/client/evm-tracing/src/formatters/blockscout.rs index 22b7f6b12..1ae00296b 100644 --- a/client/evm-tracing/src/formatters/blockscout.rs +++ b/client/evm-tracing/src/formatters/blockscout.rs @@ -34,7 +34,7 @@ impl super::ResponseFormatter for Formatter { if let Some(entry) = listener.entries.last() { return Some(TransactionTrace::CallList( entry - .into_iter() + .iter() .map(|(_, value)| Call::Blockscout(value.clone())) .collect(), )); diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index a2a42ac47..54d45a80f 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -49,7 +49,7 @@ impl super::ResponseFormatter for Formatter { continue; } let mut result: Vec = entry - .into_iter() + .iter() .map(|(_, it)| { let from = it.from; let trace_address = it.trace_address.clone(); @@ -58,9 +58,9 @@ impl super::ResponseFormatter for Formatter { let gas_used = it.gas_used; let inner = it.inner.clone(); Call::CallTracer(CallTracerCall { - from: from, - gas: gas, - gas_used: gas_used, + from, + gas, + gas_used, trace_address: Some(trace_address.clone()), inner: match inner.clone() { BlockscoutCallInner::Call { @@ -104,7 +104,7 @@ impl super::ResponseFormatter for Formatter { } => Some(created_contract_code), CreateResult::Error { .. } => None, }, - value: value, + value, call_type: "CREATE".as_bytes().to_vec(), }, BlockscoutCallInner::SelfDestruct { balance, to } => { @@ -188,9 +188,9 @@ impl super::ResponseFormatter for Formatter { continue; } } - return false; + false }; - if b_len > a_len || (a_len == b_len && sibling_greater_than(&a, &b)) { + if b_len > a_len || (a_len == b_len && sibling_greater_than(a, b)) { Ordering::Less } else { Ordering::Greater @@ -263,7 +263,7 @@ impl super::ResponseFormatter for Formatter { if traces.is_empty() { return None; } - return Some(traces); + Some(traces) } } diff --git a/client/evm-tracing/src/formatters/trace_filter.rs b/client/evm-tracing/src/formatters/trace_filter.rs index f3ae3307f..b4477001a 100644 --- a/client/evm-tracing/src/formatters/trace_filter.rs +++ b/client/evm-tracing/src/formatters/trace_filter.rs @@ -43,7 +43,7 @@ impl super::ResponseFormatter for Formatter { continue; } let mut tx_traces: Vec<_> = entry - .into_iter() + .iter() .map(|(_, trace)| match trace.inner.clone() { CallInner::Call { input, diff --git a/client/evm-tracing/src/listeners/call_list.rs b/client/evm-tracing/src/listeners/call_list.rs index ff6f1aeaf..6ae3472bc 100644 --- a/client/evm-tracing/src/listeners/call_list.rs +++ b/client/evm-tracing/src/listeners/call_list.rs @@ -410,7 +410,7 @@ impl Listener { // instead of `context.caller`, since the latter will not have the correct // value inside a DelegateCall. let from = if let Some(parent_context) = self.context_stack.last() { - parent_context.to.clone() + parent_context.to } else { context.caller }; diff --git a/client/evm-tracing/src/types/single.rs b/client/evm-tracing/src/types/single.rs index 62d01781b..518bb1904 100644 --- a/client/evm-tracing/src/types/single.rs +++ b/client/evm-tracing/src/types/single.rs @@ -103,15 +103,11 @@ pub struct RawStepLog { #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] +#[derive(Default)] pub struct TraceCallConfig { pub with_log: bool, } -impl Default for TraceCallConfig { - fn default() -> Self { - Self { with_log: false } - } -} #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, Serialize)] pub struct Log { diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index df41f653c..4010e072d 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -324,7 +324,7 @@ where hex_literal::hex!("94d9f08796f91eb13a2e82a6066882f7"); const BLOCKSCOUT_JS_CODE_HASH_V2: [u8; 16] = hex_literal::hex!("89db13694675692951673a1e6e18ff02"); - let hash = sp_io::hashing::twox_128(&tracer.as_bytes()); + let hash = sp_io::hashing::twox_128(tracer.as_bytes()); let tracer = if hash == BLOCKSCOUT_JS_CODE_HASH || hash == BLOCKSCOUT_JS_CODE_HASH_V2 { Some(TracerInput::Blockscout) @@ -336,10 +336,10 @@ where if let Some(tracer) = tracer { Ok((tracer, single::TraceType::CallList, tracer_config)) } else { - return Err(internal_err(format!( + Err(internal_err(format!( "javascript based tracing is not available (hash :{:?})", hash - ))); + ))) } } Some(params) => Ok(( @@ -529,7 +529,7 @@ where // Offset to account for old buggy transactions that are in trace not in the ethereum block let mut tx_position_offset = 0; - return match trace_type { + match trace_type { single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); @@ -622,7 +622,7 @@ where by providing `{{'tracer': 'callTracer'}}` in the request)." .to_string(), )), - }; + } } /// Replays a transaction in the Runtime at a given block height. @@ -714,7 +714,7 @@ where let f = || -> RpcResult<_> { let result = if trace_api_version >= 5 { // The block is initialized inside "trace_transaction" - api.trace_transaction(parent_block_hash, exts, &transaction, &header) + api.trace_transaction(parent_block_hash, exts, transaction, &header) } else { // Get core runtime api version let core_api_version = if let Ok(Some(api_version)) = @@ -751,7 +751,7 @@ where api.trace_transaction_before_version_5( parent_block_hash, exts, - &transaction, + transaction, ) } else { // Pre-london update, legacy transactions. @@ -762,7 +762,7 @@ where api.trace_transaction_before_version_4( parent_block_hash, exts, - &tx, + tx, ) } _ => { @@ -984,7 +984,7 @@ where let access_list = access_list.unwrap_or_default(); let f = || -> RpcResult<_> { - let _result = api + api .trace_call( parent_block_hash, &header, @@ -1009,7 +1009,7 @@ where Ok(peaq_rpc_primitives_debug::Response::Single) }; - return match trace_type { + match trace_type { single::TraceType::Raw { disable_storage, disable_memory, @@ -1059,6 +1059,6 @@ where "Bug: `handle_call_request` does not support {:?}.", not_supported ))), - }; + } } } diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index f4e912330..491c6deb4 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -815,7 +815,7 @@ where slot_offset: Duration::from_secs(1), spawner: task_manager.spawn_handle(), export_pov: None, - block_import_handle: block_import_handle + block_import_handle }; slot_based::run::( diff --git a/node/src/rpc.rs b/node/src/rpc.rs index d5278ed53..70b8ad19d 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -19,9 +19,7 @@ use sc_consensus_manual_seal::rpc::EngineCommand; use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc::SubscriptionTaskExecutor; -use sc_rpc_api::DenyUnsafe; use sc_service::{TaskManager, TransactionPool}; -use sc_transaction_pool::{ChainApi, Pool}; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder; use sp_blockchain::{ diff --git a/pallets/xc-asset-config/src/tests.rs b/pallets/xc-asset-config/src/tests.rs index 36c08ed4d..b63a9843f 100644 --- a/pallets/xc-asset-config/src/tests.rs +++ b/pallets/xc-asset-config/src/tests.rs @@ -20,7 +20,7 @@ use super::{ pallet::{Error, Event}, *, }; -use frame_support::{assert_noop, assert_ok, WeakBoundedVec}; +use frame_support::{assert_noop, assert_ok}; use mock::*; use sp_runtime::traits::BadOrigin; use xcm::{latest::prelude::*, v5::Location, VersionedLocation}; diff --git a/primitives/rpc/evm-tracing-events/src/evm.rs b/primitives/rpc/evm-tracing-events/src/evm.rs index b3b650f52..4876e564f 100644 --- a/primitives/rpc/evm-tracing-events/src/evm.rs +++ b/primitives/rpc/evm-tracing-events/src/evm.rs @@ -156,11 +156,7 @@ impl<'a> From> for EvmEvent { context, } => Self::Call { code_address, - transfer: if let Some(transfer) = transfer { - Some(transfer.clone().into()) - } else { - None - }, + transfer: transfer.as_ref().map(|transfer| transfer.clone().into()), input: input.to_vec(), target_gas, is_static, @@ -247,11 +243,7 @@ impl<'a> From> for EvmEvent { context, } => Self::PrecompileSubcall { code_address, - transfer: if let Some(transfer) = transfer { - Some(transfer.clone().into()) - } else { - None - }, + transfer: transfer.as_ref().map(|transfer| transfer.clone().into()), input: input.to_vec(), target_gas, is_static, diff --git a/primitives/rpc/evm-tracing-events/src/runtime.rs b/primitives/rpc/evm-tracing-events/src/runtime.rs index 1f4b03574..0eb1b19ec 100644 --- a/primitives/rpc/evm-tracing-events/src/runtime.rs +++ b/primitives/rpc/evm-tracing-events/src/runtime.rs @@ -94,8 +94,8 @@ pub enum RuntimeEvent { #[cfg(feature = "evm-tracing")] impl RuntimeEvent { - pub fn from_evm_event<'a>( - i: evm_runtime::tracing::Event<'a>, + pub fn from_evm_event( + i: evm_runtime::tracing::Event<'_>, filter: crate::StepEventFilter, ) -> Self { match i { diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index c43848dd2..0d3052a3c 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -422,7 +422,7 @@ impl pallet_contracts::Config for Runtime { type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; + type MaxTransientStorageSize = ConstU32<{ 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } diff --git a/runtime/krest/src/xcm_config.rs b/runtime/krest/src/xcm_config.rs index df11c61f2..b511c45c7 100644 --- a/runtime/krest/src/xcm_config.rs +++ b/runtime/krest/src/xcm_config.rs @@ -27,7 +27,7 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; +use xcm::latest::{prelude::*, Asset}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, @@ -46,7 +46,7 @@ use sp_std::marker::PhantomData; use xcm_executor::traits::MatchesFungibles; parameter_types! { - pub RelayNetwork: NetworkId = NetworkId::Kusama.into(); + pub RelayNetwork: NetworkId = NetworkId::Kusama; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index de6c2b28e..afb5861e3 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -37,13 +37,10 @@ use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use sp_runtime::{generic::Preamble, traits::IdentityLookup}; -use frame_support::{ - traits::{ +use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, EqualPrivilegeOnly, LinearStoragePrice, - }, - weights::constants, -}; + }; use smallvec::smallvec; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -64,7 +61,6 @@ use sp_std::{borrow::Cow, marker::PhantomData, prelude::*, vec, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; -use sp_weights::RuntimeDbWeight; use zenlink_protocol::{AssetBalance, MultiAssetsHandler, PairInfo, ZenlinkMultiAssets}; mod weights; @@ -441,7 +437,7 @@ impl pallet_contracts::Config for Runtime { type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; + type MaxTransientStorageSize = ConstU32<{ 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 8219921de..0752294f8 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -48,7 +48,7 @@ use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, H256, U256}; use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, + generic, impl_opaque_keys, traits::{ AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, Convert, ConvertInto, DispatchInfoOf, Dispatchable, OpaqueKeys, PostDispatchInfoOf, SaturatedConversion, @@ -449,7 +449,7 @@ impl pallet_contracts::Config for Runtime { type ApiVersion = (); type InstantiateOrigin = EnsureSigned<::AccountId>; - type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; + type MaxTransientStorageSize = ConstU32<{ 1024 * 1024 }>; type UploadOrigin = EnsureSigned<::AccountId>; } From ef6dadded6180b636e81502e2beca9d71d9dbf18 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 10 Oct 2025 15:58:57 +0500 Subject: [PATCH 55/98] Remove build warnings --- .../evm-tracing/src/formatters/call_tracer.rs | 10 ++++------ client/rpc/debug/src/lib.rs | 14 +++++++------- node/src/parachain/service.rs | 8 +------- node/src/rpc.rs | 18 +++++++++--------- pallets/parachain-staking/src/set.rs | 6 +++--- runtime/krest/src/lib.rs | 2 +- runtime/peaq-dev/src/lib.rs | 2 +- runtime/peaq/src/lib.rs | 2 +- 8 files changed, 27 insertions(+), 35 deletions(-) diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index 54d45a80f..b7b219d7b 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -180,12 +180,10 @@ impl super::ResponseFormatter for Formatter { let b_len = b.len(); let sibling_greater_than = |a: &Vec, b: &Vec| -> bool { for (i, a_value) in a.iter().enumerate() { - if a_value > &b[i] { - return true; - } else if a_value < &b[i] { - return false; - } else { - continue; + match a_value.cmp(&b[i]) { + std::cmp::Ordering::Greater => return true, + std::cmp::Ordering::Less => return false, + std::cmp::Ordering::Equal => continue } } false diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index 4010e072d..a31f0d435 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -402,10 +402,10 @@ where // Enable proof recording api.record_proof(); - api.proof_recorder().map(|recorder| { + if let Some(recorder) = api.proof_recorder() { let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); api.register_extension(ext); - }); + }; // Get Blockchain backend let blockchain = backend.blockchain(); @@ -670,11 +670,11 @@ where // Enable proof recording api.record_proof(); - api.proof_recorder().map(|recorder| { + if let Some(recorder) = api.proof_recorder() { let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); api.register_extension(ext); - }); - + }; + // Get Blockchain backend let blockchain = backend.blockchain(); // Get the header I want to work with. @@ -884,10 +884,10 @@ where // Enable proof recording api.record_proof(); - api.proof_recorder().map(|recorder| { + if let Some(recorder) = api.proof_recorder() { let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); api.register_extension(ext); - }); + }; // Get the header I want to work with. let Ok(hash) = client.expect_block_hash_from_id(&reference_id) else { diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 491c6deb4..5572ace9f 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -627,7 +627,7 @@ pub fn build_import_queue( config: &Configuration, telemetry_handle: Option, task_manager: &TaskManager, - target_gas_price: u64, + _target_gas_price: u64, ) -> Result, sc_service::Error> where RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, @@ -765,8 +765,6 @@ where block_import_handle| { let spawn_handle = task_manager.spawn_handle(); - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client).unwrap(); - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( spawn_handle, client.clone(), @@ -775,10 +773,6 @@ where telemetry.clone(), ); - let overseer_handle = relay_chain_interface - .overseer_handle() - .map_err(|e| sc_service::Error::Application(Box::new(e)))?; - let announce_block = { let sync_service = sync_oracle.clone(); Arc::new(move |hash, data| sync_service.announce_block(hash, data)) diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 70b8ad19d..e0d9a7edc 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -178,15 +178,15 @@ where io.merge(System::new(Arc::clone(&client), Arc::clone(&pool)).into_rpc())?; io.merge(TransactionPayment::new(Arc::clone(&client)).into_rpc())?; - enum Never {} - impl fp_rpc::ConvertTransaction for Never { - fn convert_transaction(&self, _transaction: pallet_ethereum::Transaction) -> T { - // The Never type is not instantiable, but this method requires the type to be - // instantiated to be called (`&self` parameter), so if the code compiles we have the - // guarantee that this function will never be called. - unreachable!() - } - } + // enum Never {} + // impl fp_rpc::ConvertTransaction for Never { + // fn convert_transaction(&self, _transaction: pallet_ethereum::Transaction) -> T { + // // The Never type is not instantiable, but this method requires the type to be + // // instantiated to be called (`&self` parameter), so if the code compiles we have the + // // guarantee that this function will never be called. + // unreachable!() + // } + // } let no_tx_converter: Option = None; let slot_duration = sc_consensus_aura::slot_duration(&*client)?; diff --git a/pallets/parachain-staking/src/set.rs b/pallets/parachain-staking/src/set.rs index 3dc8117e5..27ffdb5c2 100644 --- a/pallets/parachain-staking/src/set.rs +++ b/pallets/parachain-staking/src/set.rs @@ -170,10 +170,10 @@ impl> OrderedSet { /// given element. /// /// 1. If the value is found, then Result::Ok is returned, containing the - /// index of the matching element. + /// index of the matching element. /// 2. If the value is not found, then Result::Err is returned, containing - /// the index where a matching element could be inserted while maintaining - /// sorted order. + /// the index where a matching element could be inserted while maintaining + /// sorted order. pub fn linear_search(&self, value: &T) -> Result { let size = self.0.len(); let mut loc: usize = size; diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 0d3052a3c..e70123401 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -597,7 +597,7 @@ parameter_types! { pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); pub const MaximumReasonLength: u32 = 300; pub const MaxApprovals: u32 = 100; - pub const MaxBalance: Balance = Balance::max_value(); + pub const MaxBalance: Balance = Balance::MAX; } impl pallet_treasury::Config for Runtime { diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index afb5861e3..aba88ff76 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -612,7 +612,7 @@ parameter_types! { pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); pub const MaximumReasonLength: u32 = 300; pub const MaxApprovals: u32 = 100; - pub const MaxBalance: Balance = Balance::max_value(); + pub const MaxBalance: Balance = Balance::MAX; } impl pallet_treasury::Config for Runtime { diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 0752294f8..038fdffa5 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -624,7 +624,7 @@ parameter_types! { pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); pub const MaximumReasonLength: u32 = 300; pub const MaxApprovals: u32 = 100; - pub const MaxBalance: Balance = Balance::max_value(); + pub const MaxBalance: Balance = Balance::MAX; } impl pallet_treasury::Config for Runtime { From eb89039c58de946ade89d1dc8d5b92e4245683d4 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 15 Oct 2025 15:29:33 +0500 Subject: [PATCH 56/98] Remove obsolete try-runtime CLI --- node/src/cli.rs | 9 +++------ node/src/command.rs | 8 ++------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/node/src/cli.rs b/node/src/cli.rs index 85cbc46dc..992152bb9 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -125,12 +125,9 @@ pub enum Subcommand { #[clap(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), - /// Try some command against runtime state. - #[cfg(feature = "try-runtime")] - TryRuntime(try_runtime_cli::TryRuntimeCmd), - - /// Try some command against runtime state. Note: `try-runtime` feature must be enabled. - #[cfg(not(feature = "try-runtime"))] + /// Exposing this at all times for documentation reasons + /// try-runtime CLI is no longer supported by peaq and is now a standalone CLI + /// https://github.com/paritytech/try-runtime-cli TryRuntime, } diff --git a/node/src/command.rs b/node/src/command.rs index 6c18445fc..882f950e9 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -413,13 +413,9 @@ pub fn run() -> sc_cli::Result<()> { Ok(()) }, - #[cfg(not(feature = "try-runtime"))] - Some(Subcommand::TryRuntime) => Err("TryRuntime will not be supported anymore by the \ - peaq-node. Instead please use the provided CLI tool by Substrate! Have a look at crate \ - `try-runtime-cli`." + Some(Subcommand::TryRuntime) => Err("The `try-runtime` subcommand has been migrated to a \ + standalone CLI (https://github.com/paritytech/try-runtime-cli)." .into()), - #[cfg(feature = "try-runtime")] - Some(Subcommand::TryRuntime(_)) => Ok(()), None => { let runner = cli.create_runner(&cli.run.normalize())?; let collator_options = cli.run.collator_options(); From 40f4cfd481b029fa12d38792019d637bd09b5f1f Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 22 Oct 2025 16:31:58 +0500 Subject: [PATCH 57/98] added migrations to dev runtime --- .gitignore | 4 ++++ runtime/peaq-dev/src/lib.rs | 19 +++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7720ea965..88c12f552 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,7 @@ [._]*.s[a-w][a-z] [._]s[a-w][a-z] .gdf_* + +# editor specific ignores +.vscode +.idea \ No newline at end of file diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index aba88ff76..5de3e16bc 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -1221,6 +1221,20 @@ pub type UncheckedExtrinsic = /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = fp_self_contained::CheckedExtrinsic; + +// Migrations to apply on runtime upgrade +pub type Migrations = ( + pallet_session::migrations::v1::MigrateV0ToV1< + Runtime, + pallet_session::migrations::v1::InitOffenceSeverity, + >, + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + // permanent + pallet_xcm::migration::MigrateToLatestXcmVersion, + cumulus_pallet_aura_ext::migration::MigrateV0ToV1, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1228,10 +1242,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - ( - pallet_contracts::Migration, - cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, - ), + Migrations, >; #[cfg(feature = "runtime-benchmarks")] From 02c61815aa913be16ef835aae9f9eb5f01c6f768 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 23 Oct 2025 15:11:30 +0500 Subject: [PATCH 58/98] Installed VersionedMigrations to all runtimes --- runtime/krest/src/lib.rs | 20 +++++++++++++++----- runtime/peaq/src/lib.rs | 19 +++++++++++++++---- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index e70123401..7cd4e651d 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -1191,6 +1191,20 @@ pub type UncheckedExtrinsic = /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = fp_self_contained::CheckedExtrinsic; +/// Executive: handles dispatch to the various modules. +// Migrations to apply on runtime upgrade +pub type Migrations = ( + pallet_session::migrations::v1::MigrateV0ToV1< + Runtime, + pallet_session::migrations::v1::InitOffenceSeverity, + >, + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + // permanent + pallet_xcm::migration::MigrateToLatestXcmVersion, + cumulus_pallet_aura_ext::migration::MigrateV0ToV1, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1198,12 +1212,8 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - ( - pallet_contracts::Migration, - cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, - ), + Migrations, >; - #[cfg(feature = "runtime-benchmarks")] #[macro_use] extern crate frame_benchmarking; diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 038fdffa5..bc964ac15 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1224,6 +1224,20 @@ pub type UncheckedExtrinsic = /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = fp_self_contained::CheckedExtrinsic; + +// Migrations to apply on runtime upgrade +pub type Migrations = ( + pallet_session::migrations::v1::MigrateV0ToV1< + Runtime, + pallet_session::migrations::v1::InitOffenceSeverity, + >, + pallet_contracts::Migration, + cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, + // permanent + pallet_xcm::migration::MigrateToLatestXcmVersion, + cumulus_pallet_aura_ext::migration::MigrateV0ToV1, +); + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -1231,10 +1245,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - ( - pallet_contracts::Migration, - cumulus_pallet_xcmp_queue::migration::v5::MigrateV4ToV5, - ), + Migrations, >; #[cfg(feature = "runtime-benchmarks")] From 9b0ad1dae362a2805ffd1d6d475dbc1a4b278a3a Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 23 Oct 2025 17:15:19 +0500 Subject: [PATCH 59/98] synced remote peaq pallets with their dev branch --- Cargo.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a2dc6a50..b5cf7b1bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9676,7 +9676,7 @@ dependencies = [ [[package]] name = "peaq-pallet-did" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#21b05855f6c59788229cc04380472f5a70b4b0f4" dependencies = [ "frame-benchmarking", "frame-support", @@ -9696,7 +9696,7 @@ dependencies = [ [[package]] name = "peaq-pallet-did-rpc" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#21b05855f6c59788229cc04380472f5a70b4b0f4" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9713,7 +9713,7 @@ dependencies = [ [[package]] name = "peaq-pallet-did-runtime-api" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#5ac205fd84f1924fc5a8de11b8557ea1220f9864" +source = "git+https://github.com/peaqnetwork/peaq-pallet-did.git?branch=peaq-polkadot-stable2503-4#21b05855f6c59788229cc04380472f5a70b4b0f4" dependencies = [ "parity-scale-codec", "peaq-pallet-did", @@ -9724,7 +9724,7 @@ dependencies = [ [[package]] name = "peaq-pallet-mor" version = "0.2.2" -source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=peaq-polkadot-stable2503-4#2f79f25da27793d5c4a89cef7d38df5bf19d6c1f" +source = "git+https://github.com/peaqnetwork/peaq-pallet-mor.git?branch=peaq-polkadot-stable2503-4#f75bca8de042f8da906a0367351ff4aec671bffc" dependencies = [ "frame-benchmarking", "frame-support", @@ -9744,7 +9744,7 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9fa5b5c8fec9415933c4eab83eef8649f7fca69f" dependencies = [ "frame-benchmarking", "frame-support", @@ -9764,7 +9764,7 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac-rpc" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9fa5b5c8fec9415933c4eab83eef8649f7fca69f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9779,7 +9779,7 @@ dependencies = [ [[package]] name = "peaq-pallet-rbac-runtime-api" version = "0.2.1" -source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9f1bacde965b08cd9947b7517e6ce02e820f23c0" +source = "git+https://github.com/peaqnetwork/peaq-pallet-rbac.git?branch=peaq-polkadot-stable2503-4#9fa5b5c8fec9415933c4eab83eef8649f7fca69f" dependencies = [ "parity-scale-codec", "peaq-pallet-rbac", @@ -9790,7 +9790,7 @@ dependencies = [ [[package]] name = "peaq-pallet-storage" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#a0d4ab66f6c10465400c84de5313496b1c489eb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -9807,7 +9807,7 @@ dependencies = [ [[package]] name = "peaq-pallet-storage-rpc" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#a0d4ab66f6c10465400c84de5313496b1c489eb8" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9824,7 +9824,7 @@ dependencies = [ [[package]] name = "peaq-pallet-storage-runtime-api" version = "0.3.1" -source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#57fca2347bd9e405a38b7c7b632bd1fcbc4d448e" +source = "git+https://github.com/peaqnetwork/peaq-storage-pallet.git?branch=peaq-polkadot-stable2503-4#a0d4ab66f6c10465400c84de5313496b1c489eb8" dependencies = [ "parity-scale-codec", "peaq-pallet-storage", From 4181f77a01b8f09b08ec0fbf5fd0d7ae7eee3dc2 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 27 Oct 2025 15:30:29 +0500 Subject: [PATCH 60/98] point evm dep to peaq upstream --- Cargo.lock | 66 +++++++++++++++++++++++++++--------------------------- Cargo.toml | 6 ++--- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5cf7b1bb..364ace931 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2790,7 +2790,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.101", + "syn 1.0.109", ] [[package]] @@ -3357,7 +3357,7 @@ dependencies = [ [[package]] name = "evm" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "auto_impl", "environmental", @@ -3377,7 +3377,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "parity-scale-codec", "primitive-types", @@ -3388,7 +3388,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "environmental", "evm-core", @@ -3399,7 +3399,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" dependencies = [ "auto_impl", "environmental", @@ -3500,7 +3500,7 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "async-trait", "fp-storage", @@ -3512,7 +3512,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "async-trait", "fp-consensus", @@ -3528,7 +3528,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "async-trait", "fc-api", @@ -3549,7 +3549,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fc-db", "fc-storage", @@ -3570,7 +3570,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -3624,7 +3624,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -3639,7 +3639,7 @@ dependencies = [ [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -3800,7 +3800,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "hex", "impl-serde", @@ -3819,7 +3819,7 @@ dependencies = [ [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "parity-scale-codec", @@ -3830,7 +3830,7 @@ dependencies = [ [[package]] name = "fp-dynamic-fee" version = "1.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "async-trait", "sp-core", @@ -3840,7 +3840,7 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -3852,7 +3852,7 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "environmental", "evm", @@ -3868,7 +3868,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -3884,7 +3884,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "frame-support", "parity-scale-codec", @@ -3896,7 +3896,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "parity-scale-codec", "serde", @@ -4986,7 +4986,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -7631,7 +7631,7 @@ dependencies = [ [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "frame-support", @@ -7952,7 +7952,7 @@ dependencies = [ [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "ethereum", "ethereum-types", @@ -7975,7 +7975,7 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "environmental", @@ -8101,7 +8101,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-blake2" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", ] @@ -8109,7 +8109,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "sp-core", @@ -8119,7 +8119,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-dispatch" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "frame-support", @@ -8131,7 +8131,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "num", @@ -8223,7 +8223,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "tiny-keccak", @@ -8232,7 +8232,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "fp-evm", "ripemd", @@ -11559,7 +11559,7 @@ dependencies = [ [[package]] name = "precompile-utils" version = "0.1.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "derive_more 1.0.0", "environmental", @@ -11588,7 +11588,7 @@ dependencies = [ [[package]] name = "precompile-utils-macro" version = "0.1.0" -source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#7090f6f53f233d330f37b1fd0f46886ac0d4516b" +source = "git+https://github.com/peaqnetwork/frontier?branch=peaq-polkadot-stable2503-4#29dca6bf66b2fabcc1833ce343fc4335468024e9" dependencies = [ "case", "num_enum 0.7.3", @@ -11830,7 +11830,7 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "itertools 0.14.0", "log", "multimap", diff --git a/Cargo.toml b/Cargo.toml index 5490767fd..0bf0019df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,9 +41,9 @@ clap = { version = "4.0.32"} derive_more = "0.99" environmental = { version = "1.1.4", default-features = false } futures = { version = "0.3.21" } -evm = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } -evm-gasometer = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } -evm-runtime = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } +evm = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-stable2503-4", default-features = false } +evm-gasometer = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-stable2503-4", default-features = false } +evm-runtime = { git = "https://github.com/peaqnetwork/evm", branch = "peaq-polkadot-stable2503-4", default-features = false } ethereum = { git = "https://github.com/rust-ethereum/ethereum", rev = "bbb544622208ef6e9890a2dbc224248f6dd13318", default-features = false } ethereum-types = { version = "0.15.1", default-features = false } flume = "0.10" From fedc882bd2c5e83d1ff73ce48fb565d664cf5561 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 27 Oct 2025 19:00:03 +0500 Subject: [PATCH 61/98] removed resolved TODOs --- runtime/krest/src/lib.rs | 2 -- runtime/peaq-dev/src/lib.rs | 2 -- runtime/peaq-dev/src/xcm_config.rs | 1 - runtime/peaq/src/lib.rs | 2 -- 4 files changed, 7 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 7cd4e651d..e28c27801 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -720,8 +720,6 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - // type SuicideQuickClearLimit = ConstU32<0>; - // TODO verify this type AccountProvider = pallet_evm::FrameSystemAccountProvider; type CreateInnerOriginFilter = (); type CreateOriginFilter = (); diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 5de3e16bc..00e944450 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -736,8 +736,6 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - // type SuicideQuickClearLimit = ConstU32<0>; - // TODO verify this type AccountProvider = pallet_evm::FrameSystemAccountProvider; type CreateInnerOriginFilter = (); type CreateOriginFilter = (); diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index 1c09595e6..672971ba2 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -310,7 +310,6 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = ConstU32<64>; type AssetLocker = (); type AssetExchanger = (); - // TODO Verify generics to SendXcmFeeToAccount type FeeManager = XcmFeeManagerFromComponents< (), SendXcmFeeToAccount, diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index bc964ac15..8ffa16fa6 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -769,8 +769,6 @@ impl pallet_evm::Config for Runtime { type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; type Timestamp = Timestamp; type WeightInfo = crate::weights::pallet_evm::WeightInfo; - // type SuicideQuickClearLimit = ConstU32<0>; - // TODO verify this type AccountProvider = pallet_evm::FrameSystemAccountProvider; type CreateInnerOriginFilter = (); type CreateOriginFilter = (); From 88dd0c2be48f71271204df8e808a004a000788d5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 3 Nov 2025 13:51:14 +0500 Subject: [PATCH 62/98] bumped runtime versions --- runtime/krest/src/lib.rs | 2 +- runtime/peaq-dev/src/lib.rs | 2 +- runtime/peaq/src/lib.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index e28c27801..ebcd60c23 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -183,7 +183,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 115, + spec_version: 107, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 00e944450..87ac2000a 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -187,7 +187,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 115, + spec_version: 107, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 8ffa16fa6..52f9c7bee 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -210,7 +210,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 117, + spec_version: 111, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From 47158a2ef708de7274666ac08d1434dfa96ad18d Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 00:40:36 +0500 Subject: [PATCH 63/98] revert RocksDbWeight and elastic scaling config --- runtime/peaq-dev/src/lib.rs | 14 ++--- runtime/peaq-dev/src/weights/mod.rs | 1 - .../peaq-dev/src/weights/rocksdb_weights.rs | 62 ------------------- 3 files changed, 5 insertions(+), 72 deletions(-) delete mode 100644 runtime/peaq-dev/src/weights/rocksdb_weights.rs diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 87ac2000a..0906dd93e 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -66,8 +66,6 @@ use zenlink_protocol::{AssetBalance, MultiAssetsHandler, PairInfo, ZenlinkMultiA mod weights; pub mod xcm_config; -use weights::rocksdb_weights::constants::RocksDbWeight; - // A few exports that help ease life for downstream crates. #[cfg(feature = "std")] pub use fp_evm::GenesisAccount; @@ -83,7 +81,7 @@ pub use frame_support::{ }, weights::{ constants::{ - BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND, + BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND, }, ConstantMultiplier, IdentityFee, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -151,11 +149,10 @@ pub type Block = generic::Block; /// Maximum number of blocks simultaneously accepted by the Runtime, not yet included into the /// relay chain. -pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 2 * MAX_BLOCK_PROCESSING_VELOCITY + 1; +pub const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; /// How many parachain blocks are processed by the relay chain per parent. Limits the number of /// blocks authored per slot. -/// 12 to achieve 500ms blocktime -pub const MAX_BLOCK_PROCESSING_VELOCITY: u32 = 12; +pub const BLOCK_PROCESSING_VELOCITY: u32 = 1; /// Relay chain slot duration, in milliseconds. pub const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; @@ -660,8 +657,7 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = - pallet_aura::Authorities::::get()[author_index as usize].clone(); + let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -805,7 +801,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, - MAX_BLOCK_PROCESSING_VELOCITY, + BLOCK_PROCESSING_VELOCITY, UNINCLUDED_SEGMENT_CAPACITY, >; diff --git a/runtime/peaq-dev/src/weights/mod.rs b/runtime/peaq-dev/src/weights/mod.rs index c9a974e26..42c2d1345 100644 --- a/runtime/peaq-dev/src/weights/mod.rs +++ b/runtime/peaq-dev/src/weights/mod.rs @@ -1,3 +1,2 @@ pub mod pallet_evm; pub mod pallet_xcm; -pub mod rocksdb_weights; \ No newline at end of file diff --git a/runtime/peaq-dev/src/weights/rocksdb_weights.rs b/runtime/peaq-dev/src/weights/rocksdb_weights.rs deleted file mode 100644 index e7c1fdd18..000000000 --- a/runtime/peaq-dev/src/weights/rocksdb_weights.rs +++ /dev/null @@ -1,62 +0,0 @@ -// This file is part of Substrate. - -// Copyright (C) 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. - -pub mod constants { - use frame_support::weights::constants; - use sp_core::parameter_types; - use sp_weights::RuntimeDbWeight; - - parameter_types! { - /// By default, Substrate uses RocksDB, so this will be the weight used throughout - /// the runtime. - pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 20_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - write: 37_000 * constants::WEIGHT_REF_TIME_PER_NANOS, - }; - } - - #[cfg(test)] - mod test_db_weights { - use super::constants::RocksDbWeight as W; - use sp_weights::constants; - - /// Checks that all weights exist and have sane values. - // NOTE: If this test fails but you are sure that the generated values are fine, - // you can delete it. - #[test] - fn sane() { - // At least 1 µs. - assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Read weight should be at least 1 µs." - ); - assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, - "Write weight should be at least 1 µs." - ); - // At most 1 ms. - assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Read weight should be at most 1 ms." - ); - assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, - "Write weight should be at most 1 ms." - ); - } - } -} From 54e3c5d1ef56454cfa8c5c7d4ae00a187f9cf4f1 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 01:02:22 +0500 Subject: [PATCH 64/98] install pallet storage weight reclaim in peaq runtime --- Cargo.lock | 1 + runtime/peaq/Cargo.toml | 1 + runtime/peaq/src/lib.rs | 32 ++++++++++++++++++++------------ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 364ace931..ea35bce68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10057,6 +10057,7 @@ dependencies = [ "address-unification", "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", + "cumulus-pallet-weight-reclaim", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index 6a5f9aaf7..c4ed49c58 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -79,6 +79,7 @@ cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } +cumulus-pallet-weight-reclaim = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } polkadot-parachain = { workspace = true, default-features = false } diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 52f9c7bee..f52dc98ee 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -1200,17 +1200,21 @@ construct_runtime!( ); /// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, - frame_metadata_hash_extension::CheckMetadataHash, -); +pub type SignedExtra = cumulus_pallet_weight_reclaim::StorageWeightReclaim< + Runtime, + ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, + ), +>; + type EventRecord = frame_system::EventRecord< ::RuntimeEvent, ::Hash, @@ -1423,7 +1427,7 @@ impl_runtime_apis! { Preamble::Signed(_, _, signed_extra) => { // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra // Get the 7th item from the tuple - let charge_transaction_payment = &signed_extra.7; + let charge_transaction_payment = &signed_extra.0.7; charge_transaction_payment.tip() }, Preamble::General(_, _) => 0, @@ -2371,3 +2375,7 @@ impl EVMAddressToAssetId for Runtime { Some(AssetIdToEVMAddress::::convert(asset_id)) } } + +impl cumulus_pallet_weight_reclaim::Config for Runtime { + type WeightInfo = (); +} \ No newline at end of file From 7f265868f0e2603f4520f372bbb8fc785bf28004 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 01:20:35 +0500 Subject: [PATCH 65/98] 90pc dispatch ratio and 10MB PoV size for peaq runtime --- runtime/common/src/lib.rs | 3 +++ runtime/peaq-dev/src/lib.rs | 5 +---- runtime/peaq/src/lib.rs | 19 +++++++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index 8cf4520bb..f59e5d44e 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -26,6 +26,9 @@ pub const MILLICENTS: Balance = 10_u128.pow(TOKEN_DECIMALS - 2 - 3); pub const CENTS: Balance = 10_u128.pow(TOKEN_DECIMALS - 2); pub const DOLLARS: Balance = 10_u128.pow(TOKEN_DECIMALS); +/// Polkadot/Kusama support 10MB now. +pub const MAX_POV_SIZE: u32 = 10 * 1024 * 1024; + parameter_types! { pub const TransactionByteFee: Balance = 1; pub const OperationalFeeMultiplier: u8 = 5; diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 0906dd93e..cc6f21628 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -123,7 +123,7 @@ use runtime_common::{ LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, - TransactionByteFee, CENTS, DOLLARS, MILLICENTS, + TransactionByteFee, CENTS, DOLLARS, MILLICENTS, MAX_POV_SIZE }; /// An index to a block. @@ -235,9 +235,6 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); /// `Operational` extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); -/// Polkadot/Kusama support 10MB now. -const MAX_POV_SIZE: u32 = 10 * 1024 * 1024; - /// We allow for 0.5 of a second of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), MAX_POV_SIZE as u64); diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index f52dc98ee..60d5fd720 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -123,7 +123,7 @@ use runtime_common::{ LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, - TransactionByteFee, CENTS, DOLLARS, MILLICENTS, + TransactionByteFee, CENTS, DOLLARS, MILLICENTS, MAX_POV_SIZE }; /// An index to a block. @@ -255,13 +255,11 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by /// `Operational` extrinsics. -const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( - WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), - cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, -); +const MAXIMUM_BLOCK_WEIGHT: Weight = + Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), MAX_POV_SIZE as u64); /// Base Deposit for occupying storage - 0.01 PEAQ const STORAGE_DEPOSIT_BASE: Balance = CENTS; @@ -403,8 +401,13 @@ parameter_types! { // The lazy deletion runs inside on_initialize. pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * RuntimeBlockWeights::get().max_block; pub const DeletionQueueDepth: u32 = 128; - pub Schedule: pallet_contracts::Schedule = Default::default(); - pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); + pub Schedule: pallet_contracts::Schedule = pallet_contracts::Schedule { + limits: pallet_contracts::Limits { + payload_len: 12 * 1024, // Reduced from 16KB to 12KB to meet storage limit with 90% dispatch ratio + ..Default::default() + }, + ..Default::default() + }; pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); // TODO: re-vist to make sure values are appropriate pub const MaxDelegateDependencies: u32 = 32; } From 241be3887defb432ebed21f901f6cb6fd2cd0827 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 01:54:25 +0500 Subject: [PATCH 66/98] use westend-local for dev chainspec --- node/src/parachain/dev_chain_spec.rs | 2 +- node/src/parachain/service.rs | 3 +-- node/src/rpc.rs | 12 +----------- precompiles/vesting/src/lib.rs | 1 - 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/node/src/parachain/dev_chain_spec.rs b/node/src/parachain/dev_chain_spec.rs index d91af5ae4..013969574 100644 --- a/node/src/parachain/dev_chain_spec.rs +++ b/node/src/parachain/dev_chain_spec.rs @@ -56,7 +56,7 @@ pub fn get_chain_spec_local_testnet(para_id: u32) -> Result { Ok(ChainSpec::builder( wasm_binary, - Extensions { bad_blocks: Default::default(), relay_chain: "rococo-local".into(), para_id }, + Extensions { bad_blocks: Default::default(), relay_chain: "westend-local".into(), para_id }, ) .with_name("peaq-dev") .with_id("dev-testnet") diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 5572ace9f..0e33a0aea 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -204,8 +204,7 @@ where Ok((worker, telemetry)) }) .transpose()?; - - // [TODO] ... + let executor = sc_service::new_wasm_executor(&config.executor); let (client, backend, keystore_container, task_manager) = diff --git a/node/src/rpc.rs b/node/src/rpc.rs index e0d9a7edc..17eca715a 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -149,7 +149,6 @@ where use peaq_pallet_storage_rpc::{PeaqStorage, PeaqStorageApiServer}; use peaq_rpc_debug::{Debug, DebugServer}; use peaq_rpc_trace::{Trace, TraceServer}; - // use peaq_rpc_txpool::{TxPool, TxPoolServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; use zenlink_protocol_rpc::{ZenlinkProtocol, ZenlinkProtocolApiServer}; @@ -177,16 +176,7 @@ where io.merge(System::new(Arc::clone(&client), Arc::clone(&pool)).into_rpc())?; io.merge(TransactionPayment::new(Arc::clone(&client)).into_rpc())?; - - // enum Never {} - // impl fp_rpc::ConvertTransaction for Never { - // fn convert_transaction(&self, _transaction: pallet_ethereum::Transaction) -> T { - // // The Never type is not instantiable, but this method requires the type to be - // // instantiated to be called (`&self` parameter), so if the code compiles we have the - // // guarantee that this function will never be called. - // unreachable!() - // } - // } + let no_tx_converter: Option = None; let slot_duration = sc_consensus_aura::slot_duration(&*client)?; diff --git a/precompiles/vesting/src/lib.rs b/precompiles/vesting/src/lib.rs index c0f02118b..dfc796274 100644 --- a/precompiles/vesting/src/lib.rs +++ b/precompiles/vesting/src/lib.rs @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later #![cfg_attr(not(feature = "std"), no_std)] -// #![cfg_attr(test, feature(assert_matches))] use fp_evm::PrecompileHandle; use frame_support::{ From 5741bd7a43d8a3d531347898fe1587042ccaf94c Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 01:59:29 +0500 Subject: [PATCH 67/98] fix BasicCurrency wrapper for PeaqNativeCurrencyWrapper --- runtime/common/src/wrapper.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/runtime/common/src/wrapper.rs b/runtime/common/src/wrapper.rs index 12e65e1f9..82431c9d2 100644 --- a/runtime/common/src/wrapper.rs +++ b/runtime/common/src/wrapper.rs @@ -222,15 +222,14 @@ where Currency::ensure_can_withdraw(who, amount, WithdrawReasons::all(), new_balance) } - fn transfer(from: &AccountId, to: &AccountId, amount: Self::Balance, _existence_requirement: ExistenceRequirement) -> DispatchResult { + fn transfer(from: &AccountId, to: &AccountId, amount: Self::Balance, existence_requirement: ExistenceRequirement) -> DispatchResult { log::debug!( "PeaqNativeCurrencyWrapper: transfer: from: {:?}, to: {:?}, amount: {:?}", from, to, amount ); - // TODO already set to KeepAlive, do we need to provide function argument also? - Currency::transfer(from, to, amount, ExistenceRequirement::KeepAlive) + Currency::transfer(from, to, amount, existence_requirement) } fn deposit(who: &AccountId, amount: Self::Balance) -> DispatchResult { @@ -242,9 +241,8 @@ where Ok(()) } - fn withdraw(who: &AccountId, amount: Self::Balance, _existence_requirement: ExistenceRequirement) -> DispatchResult { - // TODO already set to KeepAlive, do we need to provide function argument also? - Currency::withdraw(who, amount, WithdrawReasons::all(), ExistenceRequirement::AllowDeath) + fn withdraw(who: &AccountId, amount: Self::Balance, existence_requirement: ExistenceRequirement) -> DispatchResult { + Currency::withdraw(who, amount, WithdrawReasons::all(), existence_requirement) .map(|_| ()) } From 825a5979d0805ea96b15d47c3708877da4c6695e Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 02:17:25 +0500 Subject: [PATCH 68/98] stub weighs for pallet-xcm and some cleanups --- runtime/krest/src/lib.rs | 9 --------- runtime/krest/src/weights/pallet_xcm.rs | 8 +++++--- runtime/peaq-dev/src/weights/pallet_xcm.rs | 8 +++++--- runtime/peaq/src/weights/pallet_xcm.rs | 8 +++++--- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index ebcd60c23..d1509b6f3 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -603,19 +603,10 @@ parameter_types! { impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - // type ApproveOrigin = EitherOfDiverse< - // EnsureRoot, - // pallet_collective::EnsureProportionAtLeast, - // >; type RejectOrigin = EitherOfDiverse< EnsureRoot, pallet_collective::EnsureProportionMoreThan, >; - //type RuntimeEvent = RuntimeEvent; - // type OnSlash = (); - // type ProposalBond = ProposalBond; - // type ProposalBondMinimum = ProposalBondMinimum; - // type ProposalBondMaximum = (); type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); diff --git a/runtime/krest/src/weights/pallet_xcm.rs b/runtime/krest/src/weights/pallet_xcm.rs index 560166c25..fd182624f 100644 --- a/runtime/krest/src/weights/pallet_xcm.rs +++ b/runtime/krest/src/weights/pallet_xcm.rs @@ -319,9 +319,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().writes(1_u64)) } - fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } - fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } - fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn claim_assets() -> Weight { Weight::zero() } + + fn add_authorized_alias() -> Weight { Weight::zero() } + + fn remove_authorized_alias() -> Weight { Weight::zero() } } #[cfg(test)] diff --git a/runtime/peaq-dev/src/weights/pallet_xcm.rs b/runtime/peaq-dev/src/weights/pallet_xcm.rs index 6e4ee7b70..d92aa7948 100644 --- a/runtime/peaq-dev/src/weights/pallet_xcm.rs +++ b/runtime/peaq-dev/src/weights/pallet_xcm.rs @@ -319,9 +319,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().writes(1_u64)) } - fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } - fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } - fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn claim_assets() -> Weight { Weight::zero() } + + fn add_authorized_alias() -> Weight { Weight::zero() } + + fn remove_authorized_alias() -> Weight { Weight::zero() } } #[cfg(test)] diff --git a/runtime/peaq/src/weights/pallet_xcm.rs b/runtime/peaq/src/weights/pallet_xcm.rs index 560166c25..fd182624f 100644 --- a/runtime/peaq/src/weights/pallet_xcm.rs +++ b/runtime/peaq/src/weights/pallet_xcm.rs @@ -319,9 +319,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().writes(1_u64)) } - fn claim_assets() -> cumulus_primitives_core::Weight { todo!() } - fn add_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } - fn remove_authorized_alias() -> cumulus_primitives_core::Weight { todo!() } + fn claim_assets() -> Weight { Weight::zero() } + + fn add_authorized_alias() -> Weight { Weight::zero() } + + fn remove_authorized_alias() -> Weight { Weight::zero() } } #[cfg(test)] From 1f1d50ea1f687a59ed8c3b95b661d58776b4c29f Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 02:36:18 +0500 Subject: [PATCH 69/98] make fmt great again --- .../evm-tracing/src/formatters/blockscout.rs | 17 +- .../evm-tracing/src/formatters/call_tracer.rs | 102 ++--- client/evm-tracing/src/formatters/raw.rs | 3 +- .../src/formatters/trace_filter.rs | 37 +- client/evm-tracing/src/listeners/call_list.rs | 229 ++++-------- client/evm-tracing/src/listeners/raw.rs | 66 +--- client/evm-tracing/src/types/block.rs | 6 +- client/evm-tracing/src/types/single.rs | 17 +- client/rpc/debug/src/lib.rs | 347 +++++++----------- client/rpc/trace/src/lib.rs | 183 +++------ node/src/cli.rs | 2 +- node/src/command.rs | 7 +- node/src/parachain/service.rs | 112 +++--- node/src/rpc.rs | 6 +- pallets/address-unification/src/mock.rs | 9 +- pallets/block-reward/src/types.rs | 2 +- pallets/inflation-manager/src/mock.rs | 9 +- pallets/inflation-manager/src/types.rs | 24 +- pallets/parachain-staking/src/mock.rs | 9 +- pallets/parachain-staking/src/set.rs | 9 +- pallets/parachain-staking/src/tests.rs | 15 +- precompiles/assets-erc20/src/lib.rs | 1 - precompiles/assets-erc20/src/mock.rs | 1 - precompiles/balances-erc20/src/tests.rs | 2 +- precompiles/batch/src/mock.rs | 4 +- precompiles/parachain-staking/src/mock.rs | 9 +- precompiles/utils/src/account.rs | 6 +- precompiles/vesting/src/lib.rs | 1 - precompiles/xcm-utils/src/mock.rs | 2 +- precompiles/xtokens/src/lib.rs | 3 +- primitives/rpc/evm-tracing-events/src/evm.rs | 52 +-- .../rpc/evm-tracing-events/src/gasometer.rs | 57 +-- primitives/rpc/evm-tracing-events/src/lib.rs | 6 +- .../rpc/evm-tracing-events/src/runtime.rs | 73 +--- primitives/rpc/txpool/src/lib.rs | 4 +- primitives/xcm/src/evm.rs | 4 +- runtime/common/src/lib.rs | 2 +- runtime/common/src/payment.rs | 43 +-- runtime/common/src/wrapper.rs | 29 +- runtime/krest/src/lib.rs | 10 +- runtime/krest/src/xcm_config.rs | 12 +- runtime/peaq-dev/src/lib.rs | 11 +- runtime/peaq-dev/src/xcm_config.rs | 17 +- runtime/peaq/src/lib.rs | 14 +- runtime/peaq/src/xcm_config.rs | 17 +- 45 files changed, 608 insertions(+), 983 deletions(-) diff --git a/client/evm-tracing/src/formatters/blockscout.rs b/client/evm-tracing/src/formatters/blockscout.rs index 1ae00296b..25c5d570b 100644 --- a/client/evm-tracing/src/formatters/blockscout.rs +++ b/client/evm-tracing/src/formatters/blockscout.rs @@ -14,11 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::listeners::call_list::Listener; -use crate::types::serialization::*; -use crate::types::{ - single::{Call, TransactionTrace}, - CallResult, CallType, CreateResult, +use crate::{ + listeners::call_list::Listener, + types::{ + serialization::*, + single::{Call, TransactionTrace}, + CallResult, CallType, CreateResult, + }, }; use ethereum_types::{H160, U256}; use parity_scale_codec::{Decode, Encode}; @@ -33,10 +35,7 @@ impl super::ResponseFormatter for Formatter { fn format(listener: Listener) -> Option { if let Some(entry) = listener.entries.last() { return Some(TransactionTrace::CallList( - entry - .iter() - .map(|(_, value)| Call::Blockscout(value.clone())) - .collect(), + entry.iter().map(|(_, value)| Call::Blockscout(value.clone())).collect(), )); } None diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index b7b219d7b..5c7679413 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -63,27 +63,24 @@ impl super::ResponseFormatter for Formatter { gas_used, trace_address: Some(trace_address.clone()), inner: match inner.clone() { - BlockscoutCallInner::Call { - input, - to, - res, - call_type, - } => CallTracerInner::Call { - call_type: match call_type { - CallType::Call => "CALL".as_bytes().to_vec(), - CallType::CallCode => "CALLCODE".as_bytes().to_vec(), - CallType::DelegateCall => "DELEGATECALL".as_bytes().to_vec(), - CallType::StaticCall => "STATICCALL".as_bytes().to_vec(), - }, - to, - input, - res: res.clone(), - value: Some(value), - logs: match res { - CallResult::Output { .. } => it.logs.clone(), - CallResult::Error { .. } => Vec::new(), + BlockscoutCallInner::Call { input, to, res, call_type } => + CallTracerInner::Call { + call_type: match call_type { + CallType::Call => "CALL".as_bytes().to_vec(), + CallType::CallCode => "CALLCODE".as_bytes().to_vec(), + CallType::DelegateCall => + "DELEGATECALL".as_bytes().to_vec(), + CallType::StaticCall => "STATICCALL".as_bytes().to_vec(), + }, + to, + input, + res: res.clone(), + value: Some(value), + logs: match res { + CallResult::Output { .. } => it.logs.clone(), + CallResult::Error { .. } => Vec::new(), + }, }, - }, BlockscoutCallInner::Create { init, res } => CallTracerInner::Create { input: init, error: match res { @@ -92,28 +89,24 @@ impl super::ResponseFormatter for Formatter { }, to: match res { CreateResult::Success { - created_contract_address_hash, - .. + created_contract_address_hash, .. } => Some(created_contract_address_hash), CreateResult::Error { .. } => None, }, output: match res { - CreateResult::Success { - created_contract_code, - .. - } => Some(created_contract_code), + CreateResult::Success { created_contract_code, .. } => + Some(created_contract_code), CreateResult::Error { .. } => None, }, value, call_type: "CREATE".as_bytes().to_vec(), }, - BlockscoutCallInner::SelfDestruct { balance, to } => { + BlockscoutCallInner::SelfDestruct { balance, to } => CallTracerInner::SelfDestruct { value: balance, to, call_type: "SELFDESTRUCT".as_bytes().to_vec(), - } - } + }, }, calls: Vec::new(), }) @@ -164,17 +157,11 @@ impl super::ResponseFormatter for Formatter { // // We consider an item to be `Ordering::Less` when: // - Is closer to the root or - // - Is greater than its sibling. + // - Is greater than its sibling. result.sort_by(|a, b| match (a, b) { ( - Call::CallTracer(CallTracerCall { - trace_address: Some(a), - .. - }), - Call::CallTracer(CallTracerCall { - trace_address: Some(b), - .. - }), + Call::CallTracer(CallTracerCall { trace_address: Some(a), .. }), + Call::CallTracer(CallTracerCall { trace_address: Some(b), .. }), ) => { let a_len = a.len(); let b_len = b.len(); @@ -183,7 +170,7 @@ impl super::ResponseFormatter for Formatter { match a_value.cmp(&b[i]) { std::cmp::Ordering::Greater => return true, std::cmp::Ordering::Less => return false, - std::cmp::Ordering::Equal => continue + std::cmp::Ordering::Equal => continue, } } false @@ -193,7 +180,7 @@ impl super::ResponseFormatter for Formatter { } else { Ordering::Greater } - } + }, _ => unreachable!(), }); // Stack pop-and-push. @@ -203,31 +190,18 @@ impl super::ResponseFormatter for Formatter { .expect("result.len() > 1, so pop() necessarily returns an element"); // Find the parent index. if let Some(index) = - result - .iter() - .position(|current| match (last.clone(), current) { - ( - Call::CallTracer(CallTracerCall { - trace_address: Some(a), - .. - }), - Call::CallTracer(CallTracerCall { - trace_address: Some(b), - .. - }), - ) => { - &b[..] - == a.get(0..a.len() - 1).expect( - "non-root element while traversing trace result", - ) - } - _ => unreachable!(), - }) { + result.iter().position(|current| match (last.clone(), current) { + ( + Call::CallTracer(CallTracerCall { trace_address: Some(a), .. }), + Call::CallTracer(CallTracerCall { trace_address: Some(b), .. }), + ) => + &b[..] == + a.get(0..a.len() - 1) + .expect("non-root element while traversing trace result"), + _ => unreachable!(), + }) { // Remove `trace_address` from result. - if let Call::CallTracer(CallTracerCall { - ref mut trace_address, - .. - }) = last + if let Call::CallTracer(CallTracerCall { ref mut trace_address, .. }) = last { *trace_address = None; } diff --git a/client/evm-tracing/src/formatters/raw.rs b/client/evm-tracing/src/formatters/raw.rs index 464cfcc5d..ac63e0669 100644 --- a/client/evm-tracing/src/formatters/raw.rs +++ b/client/evm-tracing/src/formatters/raw.rs @@ -14,8 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::listeners::raw::Listener; -use crate::types::single::TransactionTrace; +use crate::{listeners::raw::Listener, types::single::TransactionTrace}; pub struct Formatter; diff --git a/client/evm-tracing/src/formatters/trace_filter.rs b/client/evm-tracing/src/formatters/trace_filter.rs index b4477001a..e96bb9f83 100644 --- a/client/evm-tracing/src/formatters/trace_filter.rs +++ b/client/evm-tracing/src/formatters/trace_filter.rs @@ -15,12 +15,15 @@ // along with Moonbeam. If not, see . use super::blockscout::BlockscoutCallInner as CallInner; -use crate::listeners::call_list::Listener; -use crate::types::{ - block::{ - TransactionTrace, TransactionTraceAction, TransactionTraceOutput, TransactionTraceResult, +use crate::{ + listeners::call_list::Listener, + types::{ + block::{ + TransactionTrace, TransactionTraceAction, TransactionTraceOutput, + TransactionTraceResult, + }, + CallResult, CreateResult, CreateType, }, - CallResult, CreateResult, CreateType, }; use ethereum_types::H256; @@ -45,12 +48,7 @@ impl super::ResponseFormatter for Formatter { let mut tx_traces: Vec<_> = entry .iter() .map(|(_, trace)| match trace.inner.clone() { - CallInner::Call { - input, - to, - res, - call_type, - } => TransactionTrace { + CallInner::Call { input, to, res, call_type } => TransactionTrace { action: TransactionTraceAction::Call { call_type, from: trace.from, @@ -64,12 +62,11 @@ impl super::ResponseFormatter for Formatter { // Can't be known here, must be inserted upstream. block_number: 0, output: match res { - CallResult::Output(output) => { + CallResult::Output(output) => TransactionTraceOutput::Result(TransactionTraceResult::Call { gas_used: trace.gas_used, output, - }) - } + }), CallResult::Error(error) => TransactionTraceOutput::Error(error), }, subtraces: trace.subtraces, @@ -95,16 +92,14 @@ impl super::ResponseFormatter for Formatter { CreateResult::Success { created_contract_address_hash, created_contract_code, - } => { + } => TransactionTraceOutput::Result(TransactionTraceResult::Create { gas_used: trace.gas_used, code: created_contract_code, address: created_contract_address_hash, - }) - } - CreateResult::Error { error } => { - TransactionTraceOutput::Error(error) - } + }), + CreateResult::Error { error } => + TransactionTraceOutput::Error(error), }, subtraces: trace.subtraces, trace_address: trace.trace_address.clone(), @@ -112,7 +107,7 @@ impl super::ResponseFormatter for Formatter { transaction_hash: H256::default(), transaction_position: eth_tx_index as u32, } - } + }, CallInner::SelfDestruct { balance, to } => TransactionTrace { action: TransactionTraceAction::Suicide { address: trace.from, diff --git a/client/evm-tracing/src/listeners/call_list.rs b/client/evm-tracing/src/listeners/call_list.rs index 6ae3472bc..18c7eb2fa 100644 --- a/client/evm-tracing/src/listeners/call_list.rs +++ b/client/evm-tracing/src/listeners/call_list.rs @@ -14,9 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -use crate::formatters::blockscout::BlockscoutCall as Call; -use crate::formatters::blockscout::BlockscoutCallInner as CallInner; -use crate::types::{single::Log, CallResult, CallType, ContextType, CreateResult}; +use crate::{ + formatters::blockscout::{BlockscoutCall as Call, BlockscoutCallInner as CallInner}, + types::{single::Log, CallResult, CallType, ContextType, CreateResult}, +}; use ethereum_types::{H160, U256}; use evm_tracing_events::{ runtime::{Capture, ExitError, ExitReason, ExitSucceed}, @@ -168,7 +169,7 @@ impl Listener { }, logs: context.logs, } - } + }, ContextType::Create => { let res = CreateResult::Error { error: b"early exit (out of gas, stack overflow, direct call to precompile, ...)".to_vec(), @@ -181,13 +182,10 @@ impl Listener { gas: context.gas.into(), gas_used: gas_used.into(), from: context.from, - inner: CallInner::Create { - init: context.data, - res, - }, + inner: CallInner::Create { init: context.data, res }, logs: context.logs, } - } + }, }; self.insert_entry(context.entries_index, entry); @@ -226,20 +224,20 @@ impl Listener { pub fn gasometer_event(&mut self, event: GasometerEvent) { match event { - GasometerEvent::RecordCost { snapshot, .. } - | GasometerEvent::RecordDynamicCost { snapshot, .. } - | GasometerEvent::RecordStipend { snapshot, .. } => { + GasometerEvent::RecordCost { snapshot, .. } | + GasometerEvent::RecordDynamicCost { snapshot, .. } | + GasometerEvent::RecordStipend { snapshot, .. } => { if let Some(context) = self.context_stack.last_mut() { if context.start_gas.is_none() { context.start_gas = Some(snapshot.gas()); } context.gas = snapshot.gas(); } - } + }, GasometerEvent::RecordTransaction { cost, .. } => { self.transaction_cost = cost; self.record_transaction_event_only = true; - } + }, // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -248,24 +246,18 @@ impl Listener { pub fn runtime_event(&mut self, event: RuntimeEvent) { match event { - RuntimeEvent::StepResult { - result: Err(Capture::Trap(opcode)), - .. - } => { + RuntimeEvent::StepResult { result: Err(Capture::Trap(opcode)), .. } => { if let Some(ContextType::Call(call_type)) = ContextType::from(opcode) { self.call_type = Some(call_type) } - } - RuntimeEvent::StepResult { - result: Err(Capture::Exit(reason)), - return_value, - } => { + }, + RuntimeEvent::StepResult { result: Err(Capture::Exit(reason)), return_value } => { if let Some((key, entry)) = self.pop_context_to_entry(reason, return_value) { match self.version { TracingVersion::Legacy => { // In Legacy mode we directly insert the entry. self.insert_entry(key, entry); - } + }, TracingVersion::EarlyTransact => { // In EarlyTransact mode this context must be used if this event is // emitted. However the context of `EvmEvent::Exit` must be used if @@ -273,10 +265,10 @@ impl Listener { // entry in a temporary value, and deal with it in `EvmEvent::Exit` that // will be called in all cases. self.step_result_entry = Some((key, entry)); - } + }, } } - } + }, // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -285,13 +277,7 @@ impl Listener { pub fn evm_event(&mut self, event: EvmEvent) { match event { - EvmEvent::TransactCall { - caller, - address, - value, - data, - .. - } => { + EvmEvent::TransactCall { caller, address, value, data, .. } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -315,15 +301,9 @@ impl Listener { self.entries_next_index += 1; self.skip_next_context = true; - } + }, - EvmEvent::TransactCreate { - caller, - value, - init_code, - address, - .. - } => { + EvmEvent::TransactCreate { caller, value, init_code, address, .. } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -347,15 +327,9 @@ impl Listener { self.entries_next_index += 1; self.skip_next_context = true; - } + }, - EvmEvent::TransactCreate2 { - caller, - value, - init_code, - address, - .. - } => { + EvmEvent::TransactCreate2 { caller, value, init_code, address, .. } => { self.record_transaction_event_only = false; self.version = TracingVersion::EarlyTransact; self.context_stack.push(Context { @@ -379,15 +353,9 @@ impl Listener { self.entries_next_index += 1; self.skip_next_context = true; - } + }, - EvmEvent::Call { - code_address, - input, - is_static, - context, - .. - } => { + EvmEvent::Call { code_address, input, is_static, context, .. } => { self.record_transaction_event_only = false; let call_type = match (self.call_type, is_static) { @@ -438,7 +406,7 @@ impl Listener { } else { self.skip_next_context = false; } - } + }, EvmEvent::Create { caller, @@ -483,12 +451,8 @@ impl Listener { } else { self.skip_next_context = false; } - } - EvmEvent::Suicide { - address, - target, - balance, - } => { + }, + EvmEvent::Suicide { address, target, balance } => { let trace_address = if let Some(context) = self.context_stack.last_mut() { let mut trace_address = context.trace_address.clone(); trace_address.push(context.subtraces); @@ -507,19 +471,13 @@ impl Listener { value: 0.into(), gas: 0.into(), gas_used: 0.into(), - inner: CallInner::SelfDestruct { - to: target, - balance, - }, + inner: CallInner::SelfDestruct { to: target, balance }, logs: Vec::::new(), }, ); self.entries_next_index += 1; - } - EvmEvent::Exit { - reason, - return_value, - } => { + }, + EvmEvent::Exit { reason, return_value } => { // We know we're in `TracingVersion::EarlyTransact` mode. self.record_transaction_event_only = false; @@ -532,28 +490,19 @@ impl Listener { if let Some((key, entry)) = entry { self.insert_entry(key, entry); } - } + }, EvmEvent::PrecompileSubcall { .. } => { // In a precompile subcall there is no CALL opcode result to observe, thus // we need this new event. Precompile subcall might use non-standard call // behavior (like batch precompile does) thus we simply consider this a call. self.call_type = Some(CallType::Call); - } - EvmEvent::Log { - address, - topics, - data, - } => { + }, + EvmEvent::Log { address, topics, data } => if self.with_log { if let Some(stack) = self.context_stack.last_mut() { - stack.logs.push(Log { - address, - topics, - data, - }); + stack.logs.push(Log { address, topics, data }); } - } - } + }, // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] @@ -587,15 +536,13 @@ impl Listener { match context.context_type { ContextType::Call(call_type) => { let res = match &reason { - ExitReason::Succeed(ExitSucceed::Returned) => { - CallResult::Output(return_value.to_vec()) - } + ExitReason::Succeed(ExitSucceed::Returned) => + CallResult::Output(return_value.to_vec()), ExitReason::Succeed(_) => CallResult::Output(vec![]), ExitReason::Error(error) => CallResult::Error(error_message(error)), - ExitReason::Revert(_) => { - CallResult::Error(b"execution reverted".to_vec()) - } + ExitReason::Revert(_) => + CallResult::Error(b"execution reverted".to_vec()), ExitReason::Fatal(_) => CallResult::Error(vec![]), }; @@ -614,19 +561,17 @@ impl Listener { }, logs: context.logs, } - } + }, ContextType::Create => { let res = match &reason { ExitReason::Succeed(_) => CreateResult::Success { created_contract_address_hash: context.to, created_contract_code: return_value.to_vec(), }, - ExitReason::Error(error) => CreateResult::Error { - error: error_message(error), - }, - ExitReason::Revert(_) => CreateResult::Error { - error: b"execution reverted".to_vec(), - }, + ExitReason::Error(error) => + CreateResult::Error { error: error_message(error) }, + ExitReason::Revert(_) => + CreateResult::Error { error: b"execution reverted".to_vec() }, ExitReason::Fatal(_) => CreateResult::Error { error: vec![] }, }; @@ -637,13 +582,10 @@ impl Listener { gas: context.gas.into(), gas_used: gas_used.into(), from: context.from, - inner: CallInner::Create { - init: context.data, - res, - }, + inner: CallInner::Create { init: context.data, res }, logs: context.logs, } - } + }, }, )) } else { @@ -678,23 +620,19 @@ impl ListenerT for Listener { Event::Gasometer(gasometer_event) => self.gasometer_event(gasometer_event), Event::Runtime(runtime_event) => self.runtime_event(runtime_event), Event::Evm(evm_event) => self.evm_event(evm_event), - Event::CallListNew() => { + Event::CallListNew() => if !self.call_list_first_transaction { self.finish_transaction(); self.skip_next_context = false; self.entries.push(BTreeMap::new()); } else { self.call_list_first_transaction = false; - } - } + }, }; } fn step_event_filter(&self) -> StepEventFilter { - StepEventFilter { - enable_memory: false, - enable_stack: false, - } + StepEventFilter { enable_memory: false, enable_stack: false } } } @@ -746,9 +684,7 @@ mod tests { } fn test_create_scheme() -> CreateScheme { - CreateScheme::Legacy { - caller: H160::default(), - } + CreateScheme::Legacy { caller: H160::default() } } fn test_stack() -> Option { @@ -760,12 +696,7 @@ mod tests { } fn test_snapshot() -> Snapshot { - Snapshot { - gas_limit: 0u64, - memory_gas: 0u64, - used_gas: 0u64, - refunded_gas: 0i64, - } + Snapshot { gas_limit: 0u64, memory_gas: 0u64, used_gas: 0u64, refunded_gas: 0i64 } } fn test_emit_evm_event( @@ -795,10 +726,8 @@ mod tests { target: H160::default(), balance: U256::zero(), }, - TestEvmEvent::Exit => EvmEvent::Exit { - reason: exit_reason.unwrap(), - return_value: Vec::new(), - }, + TestEvmEvent::Exit => + EvmEvent::Exit { reason: exit_reason.unwrap(), return_value: Vec::new() }, TestEvmEvent::TransactCall => EvmEvent::TransactCall { caller: H160::default(), address: H160::default(), @@ -821,11 +750,8 @@ mod tests { gas_limit: 0u64, address: H160::default(), }, - TestEvmEvent::Log => EvmEvent::Log { - address: H160::default(), - topics: Vec::new(), - data: Vec::new(), - }, + TestEvmEvent::Log => + EvmEvent::Log { address: H160::default(), topics: Vec::new(), data: Vec::new() }, } } @@ -838,10 +764,8 @@ mod tests { stack: test_stack(), memory: test_memory(), }, - TestRuntimeEvent::StepResult => RuntimeEvent::StepResult { - result: Ok(()), - return_value: Vec::new(), - }, + TestRuntimeEvent::StepResult => + RuntimeEvent::StepResult { result: Ok(()), return_value: Vec::new() }, TestRuntimeEvent::SLoad => RuntimeEvent::SLoad { address: H160::default(), index: H256::default(), @@ -857,28 +781,20 @@ mod tests { fn test_emit_gasometer_event(event_type: TestGasometerEvent) -> GasometerEvent { match event_type { - TestGasometerEvent::RecordCost => GasometerEvent::RecordCost { - cost: 0u64, - snapshot: test_snapshot(), - }, - TestGasometerEvent::RecordRefund => GasometerEvent::RecordRefund { - refund: 0i64, - snapshot: test_snapshot(), - }, - TestGasometerEvent::RecordStipend => GasometerEvent::RecordStipend { - stipend: 0u64, - snapshot: test_snapshot(), - }, + TestGasometerEvent::RecordCost => + GasometerEvent::RecordCost { cost: 0u64, snapshot: test_snapshot() }, + TestGasometerEvent::RecordRefund => + GasometerEvent::RecordRefund { refund: 0i64, snapshot: test_snapshot() }, + TestGasometerEvent::RecordStipend => + GasometerEvent::RecordStipend { stipend: 0u64, snapshot: test_snapshot() }, TestGasometerEvent::RecordDynamicCost => GasometerEvent::RecordDynamicCost { gas_cost: 0u64, memory_gas: 0u64, gas_refund: 0i64, snapshot: test_snapshot(), }, - TestGasometerEvent::RecordTransaction => GasometerEvent::RecordTransaction { - cost: 0u64, - snapshot: test_snapshot(), - }, + TestGasometerEvent::RecordTransaction => + GasometerEvent::RecordTransaction { cost: 0u64, snapshot: test_snapshot() }, } } @@ -887,17 +803,11 @@ mod tests { } fn do_transact_create_event(listener: &mut Listener) { - listener.evm_event(test_emit_evm_event( - TestEvmEvent::TransactCreate, - false, - None, - )); + listener.evm_event(test_emit_evm_event(TestEvmEvent::TransactCreate, false, None)); } fn do_gasometer_event(listener: &mut Listener) { - listener.gasometer_event(test_emit_gasometer_event( - TestGasometerEvent::RecordTransaction, - )); + listener.gasometer_event(test_emit_gasometer_event(TestGasometerEvent::RecordTransaction)); } fn do_exit_event(listener: &mut Listener) { @@ -1172,7 +1082,8 @@ mod tests { listener.finish_transaction(); assert_eq!(listener.entries.len(), 1); // Each nested call contains 11 elements in the callstack (main + 10 subcalls). - // There are 5 main nested calls for a total of 56 elements in the callstack: 1 main + 55 nested. + // There are 5 main nested calls for a total of 56 elements in the callstack: 1 main + 55 + // nested. assert_eq!(listener.entries[0].len(), (depth * (subdepth + 1)) + 1); } diff --git a/client/evm-tracing/src/listeners/raw.rs b/client/evm-tracing/src/listeners/raw.rs index 5bede8169..574835234 100644 --- a/client/evm-tracing/src/listeners/raw.rs +++ b/client/evm-tracing/src/listeners/raw.rs @@ -97,7 +97,7 @@ impl Listener { // Next step will be the first context. self.new_context = true; self.final_gas = cost; - } + }, GasometerEvent::RecordCost { cost, snapshot } => { if let Some(context) = self.context_stack.last_mut() { // Register opcode cost. (ignore costs not between Step and StepResult) @@ -108,10 +108,8 @@ impl Listener { self.final_gas = snapshot.used_gas; } - } - GasometerEvent::RecordDynamicCost { - gas_cost, snapshot, .. - } => { + }, + GasometerEvent::RecordDynamicCost { gas_cost, snapshot, .. } => { if let Some(context) = self.context_stack.last_mut() { // Register opcode cost. (ignore costs not between Step and StepResult) if let Some(step) = &mut context.current_step { @@ -121,7 +119,7 @@ impl Listener { self.final_gas = snapshot.used_gas; } - } + }, // We ignore other kinds of message if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -130,13 +128,7 @@ impl Listener { pub fn runtime_event(&mut self, event: RuntimeEvent) { match event { - RuntimeEvent::Step { - context, - opcode, - position, - stack, - memory, - } => { + RuntimeEvent::Step { context, opcode, position, stack, memory } => { // Create a context if needed. if self.new_context { self.new_context = false; @@ -191,26 +183,16 @@ impl Listener { }, }); } - } - RuntimeEvent::StepResult { - result, - return_value, - } => { + }, + RuntimeEvent::StepResult { result, return_value } => { // StepResult is expected to be emitted after a step (in a context). // Only case StepResult will occur without a Step before is in a transfer // transaction to a non-contract address. However it will not contain any // steps and return an empty trace, so we can ignore this edge case. if let Some(context) = self.context_stack.last_mut() { if let Some(current_step) = context.current_step.take() { - let Step { - opcode, - depth, - gas, - gas_cost, - position, - memory, - stack, - } = current_step; + let Step { opcode, depth, gas, gas_cost, position, memory, stack } = + current_step; let memory = memory.map(convert_memory); @@ -261,7 +243,8 @@ impl Listener { .global_storage_changes .insert(context.address, context.storage_cache); - // Apply storage changes to parent, either updating its cache or map of changes. + // Apply storage changes to parent, either updating its cache or + // map of changes. for (address, mut storage) in context.global_storage_changes.into_iter() { @@ -287,29 +270,21 @@ impl Listener { } } } - } + }, Err(Capture::Trap(opcode)) if ContextType::from(opcode.clone()).is_some() => { self.new_context = true; - } + }, _ => (), } - } - RuntimeEvent::SLoad { - address: _, - index, - value, - } - | RuntimeEvent::SStore { - address: _, - index, - value, - } => { + }, + RuntimeEvent::SLoad { address: _, index, value } | + RuntimeEvent::SStore { address: _, index, value } => { if let Some(context) = self.context_stack.last_mut() { if !self.disable_storage { context.storage_cache.insert(index, value); } } - } + }, // We ignore other kinds of messages if any (new ones may be added in the future). #[allow(unreachable_patterns)] _ => (), @@ -326,14 +301,11 @@ impl ListenerT for Listener { match event { Event::Gasometer(e) => self.gasometer_event(e), Event::Runtime(e) => self.runtime_event(e), - _ => {} + _ => {}, }; } fn step_event_filter(&self) -> StepEventFilter { - StepEventFilter { - enable_memory: !self.disable_memory, - enable_stack: !self.disable_stack, - } + StepEventFilter { enable_memory: !self.disable_memory, enable_stack: !self.disable_stack } } } diff --git a/client/evm-tracing/src/types/block.rs b/client/evm-tracing/src/types/block.rs index e8737bdcd..994761dea 100644 --- a/client/evm-tracing/src/types/block.rs +++ b/client/evm-tracing/src/types/block.rs @@ -74,11 +74,7 @@ pub enum TransactionTraceAction { value: U256, }, #[serde(rename_all = "camelCase")] - Suicide { - address: H160, - balance: U256, - refund_address: H160, - }, + Suicide { address: H160, balance: U256, refund_address: H160 }, } #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] diff --git a/client/evm-tracing/src/types/single.rs b/client/evm-tracing/src/types/single.rs index 518bb1904..f918feb5d 100644 --- a/client/evm-tracing/src/types/single.rs +++ b/client/evm-tracing/src/types/single.rs @@ -36,11 +36,7 @@ pub enum Call { #[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode)] pub enum TraceType { /// Classic geth with no javascript based tracing. - Raw { - disable_storage: bool, - disable_memory: bool, - disable_stack: bool, - }, + Raw { disable_storage: bool, disable_memory: bool, disable_stack: bool }, /// List of calls and subcalls formatted with an input tracer (i.e. callTracer or Blockscout). CallList, /// A single block trace. Use in `debug_traceTransactionByNumber` / `traceTransactionByHash`. @@ -79,10 +75,7 @@ pub struct RawStepLog { #[serde(serialize_with = "u256_serialize")] pub gas_cost: U256, - #[serde( - serialize_with = "seq_h256_serialize", - skip_serializing_if = "Option::is_none" - )] + #[serde(serialize_with = "seq_h256_serialize", skip_serializing_if = "Option::is_none")] pub memory: Option>, #[serde(serialize_with = "opcode_serialize")] @@ -91,10 +84,7 @@ pub struct RawStepLog { #[serde(serialize_with = "u256_serialize")] pub pc: U256, - #[serde( - serialize_with = "seq_h256_serialize", - skip_serializing_if = "Option::is_none" - )] + #[serde(serialize_with = "seq_h256_serialize", skip_serializing_if = "Option::is_none")] pub stack: Option>, #[serde(skip_serializing_if = "Option::is_none")] @@ -108,7 +98,6 @@ pub struct TraceCallConfig { pub with_log: bool, } - #[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, Serialize)] pub struct Log { /// Event address. diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index a31f0d435..0b11aa575 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -26,11 +26,10 @@ use ethereum_types::H256; use fc_rpc::{frontier_backend_client, internal_err}; use fc_storage::StorageOverride; use fp_rpc::EthereumRuntimeRPCApi; -use peaq_client_evm_tracing::formatters::call_tracer::CallTracerInner; -use peaq_client_evm_tracing::types::block; -use peaq_client_evm_tracing::types::block::BlockTransactionTrace; -use peaq_client_evm_tracing::types::single::TransactionTrace; -use peaq_client_evm_tracing::{formatters::ResponseFormatter, types::single}; +use peaq_client_evm_tracing::{ + formatters::{call_tracer::CallTracerInner, ResponseFormatter}, + types::{block, block::BlockTransactionTrace, single, single::TransactionTrace}, +}; use peaq_rpc_core_types::{RequestBlockId, RequestBlockTag}; use peaq_rpc_primitives_debug::{DebugRuntimeApi, TracerInput}; use sc_client_api::backend::{Backend, StateBackend, StorageProvider}; @@ -45,8 +44,7 @@ use sp_runtime::{ generic::BlockId, traits::{BlakeTwo256, Block as BlockT, Header as HeaderT, UniqueSaturatedInto}, }; -use std::collections::BTreeMap; -use std::{future::Future, marker::PhantomData, sync::Arc}; +use std::{collections::BTreeMap, future::Future, marker::PhantomData, sync::Arc}; pub enum RequesterInput { Call((RequestBlockId, TraceCallParams)), @@ -89,10 +87,7 @@ impl DebugServer for Debug { requester .unbounded_send(((RequesterInput::Transaction(transaction_hash), params), tx)) .map_err(|err| { - internal_err(format!( - "failed to send request to debug service : {:?}", - err - )) + internal_err(format!("failed to send request to debug service : {:?}", err)) })?; // Receive a message from the service level task and send the rpc response. @@ -116,10 +111,7 @@ impl DebugServer for Debug { requester .unbounded_send(((RequesterInput::Block(id), params), tx)) .map_err(|err| { - internal_err(format!( - "failed to send request to debug service : {:?}", - err - )) + internal_err(format!("failed to send request to debug service : {:?}", err)) })?; // Receive a message from the service level task and send the rpc response. @@ -146,10 +138,7 @@ impl DebugServer for Debug { requester .unbounded_send(((RequesterInput::Call((id, call_params)), params), tx)) .map_err(|err| { - internal_err(format!( - "failed to send request to debug service : {:?}", - err - )) + internal_err(format!("failed to send request to debug service : {:?}", err)) })?; // Receive a message from the service level task and send the rpc response. @@ -230,7 +219,7 @@ where .await, ); }); - } + }, Some(( (RequesterInput::Call((request_block_id, call_params)), params), response_tx, @@ -264,7 +253,7 @@ where .await, ); }); - } + }, Some(((RequesterInput::Block(request_block_id), params), response_tx)) => { let client = client.clone(); let backend = backend.clone(); @@ -298,8 +287,8 @@ where .await, ); }); - } - _ => {} + }, + _ => {}, } } }; @@ -308,18 +297,10 @@ where fn handle_params( params: Option, - ) -> RpcResult<( - TracerInput, - single::TraceType, - Option, - )> { + ) -> RpcResult<(TracerInput, single::TraceType, Option)> { // Set trace input and type match params { - Some(TraceParams { - tracer: Some(tracer), - tracer_config, - .. - }) => { + Some(TraceParams { tracer: Some(tracer), tracer_config, .. }) => { const BLOCKSCOUT_JS_CODE_HASH: [u8; 16] = hex_literal::hex!("94d9f08796f91eb13a2e82a6066882f7"); const BLOCKSCOUT_JS_CODE_HASH_V2: [u8; 16] = @@ -341,7 +322,7 @@ where hash ))) } - } + }, Some(params) => Ok(( TracerInput::None, single::TraceType::Raw { @@ -375,15 +356,12 @@ where let reference_id: BlockId = match request_block_id { RequestBlockId::Number(n) => Ok(BlockId::Number(n.unique_saturated_into())), - RequestBlockId::Tag(RequestBlockTag::Latest) => { - Ok(BlockId::Number(client.info().best_number)) - } - RequestBlockId::Tag(RequestBlockTag::Earliest) => { - Ok(BlockId::Number(0u32.unique_saturated_into())) - } - RequestBlockId::Tag(RequestBlockTag::Pending) => { - Err(internal_err("'pending' blocks are not supported")) - } + RequestBlockId::Tag(RequestBlockTag::Latest) => + Ok(BlockId::Number(client.info().best_number)), + RequestBlockId::Tag(RequestBlockTag::Earliest) => + Ok(BlockId::Number(0u32.unique_saturated_into())), + RequestBlockId::Tag(RequestBlockTag::Pending) => + Err(internal_err("'pending' blocks are not supported")), RequestBlockId::Hash(eth_hash) => { match futures::executor::block_on(frontier_backend_client::load_hash::( client.as_ref(), @@ -394,7 +372,7 @@ where Ok(_) => Err(internal_err("Block hash not found".to_string())), Err(e) => Err(e), } - } + }, }?; // Get ApiRef. This handle allows to keep changes between txs in an internal buffer. @@ -421,9 +399,7 @@ where // Get parent blockid. let parent_block_hash = *header.parent_hash(); - let statuses = overrides - .current_transaction_statuses(hash) - .unwrap_or_default(); + let statuses = overrides.current_transaction_statuses(hash).unwrap_or_default(); // Partial ethereum transaction data to check if a trace match an ethereum transaction struct EthTxPartial { @@ -447,10 +423,8 @@ where }) .collect(); - let eth_tx_hashes: Vec<_> = eth_transactions_by_index - .values() - .map(|tx| tx.transaction_hash) - .collect(); + let eth_tx_hashes: Vec<_> = + eth_transactions_by_index.values().map(|tx| tx.transaction_hash).collect(); // If there are no ethereum transactions in the block return empty trace right away. if eth_tx_hashes.is_empty() { @@ -469,9 +443,7 @@ where { api_version } else { - return Err(internal_err( - "Runtime api version call failed (trace)".to_string(), - )); + return Err(internal_err("Runtime api version call failed (trace)".to_string())); }; // Trace the block. @@ -486,9 +458,7 @@ where { api_version } else { - return Err(internal_err( - "Runtime api version call failed (core)".to_string(), - )); + return Err(internal_err("Runtime api version call failed (core)".to_string())); }; // Initialize block: calls the "on_initialize" hook on every pallet @@ -537,65 +507,51 @@ where proxy.finish_transaction(); let response = match tracer_input { TracerInput::CallTracer => { - let result = - peaq_client_evm_tracing::formatters::CallTracer::format(proxy) - .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e)))? - .into_iter() - .filter_map(|mut trace: BlockTransactionTrace| { - if let Some(EthTxPartial { - transaction_hash, - from, - to, - }) = eth_transactions_by_index + let result = peaq_client_evm_tracing::formatters::CallTracer::format(proxy) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e)))? + .into_iter() + .filter_map(|mut trace: BlockTransactionTrace| { + if let Some(EthTxPartial { transaction_hash, from, to }) = + eth_transactions_by_index .get(&(trace.tx_position - tx_position_offset)) - { - // verify that the trace matches the ethereum transaction - let (trace_from, trace_to) = match trace.result { - TransactionTrace::Raw { .. } => { - (Default::default(), None) - } - TransactionTrace::CallList(_) => { - (Default::default(), None) - } - TransactionTrace::CallListNested(ref call) => { - match call { - single::Call::Blockscout(_) => { - (Default::default(), None) - } - single::Call::CallTracer(call) => ( - call.from, - match call.inner { - CallTracerInner::Call { - to, .. - } => Some(to), - CallTracerInner::Create { .. } => None, - CallTracerInner::SelfDestruct { - .. - } => None, - }, - ), - } - } - }; - if trace_from == *from && trace_to == *to { - trace.tx_hash = *transaction_hash; - Some(trace) - } else { - // if the trace does not match the ethereum transaction - // it means that the trace is about a buggy transaction that is not in the block - // we need to offset the tx_position - tx_position_offset += 1; - None - } + { + // verify that the trace matches the ethereum transaction + let (trace_from, trace_to) = match trace.result { + TransactionTrace::Raw { .. } => (Default::default(), None), + TransactionTrace::CallList(_) => (Default::default(), None), + TransactionTrace::CallListNested(ref call) => match call { + single::Call::Blockscout(_) => + (Default::default(), None), + single::Call::CallTracer(call) => ( + call.from, + match call.inner { + CallTracerInner::Call { to, .. } => Some(to), + CallTracerInner::Create { .. } => None, + CallTracerInner::SelfDestruct { .. } => None, + }, + ), + }, + }; + if trace_from == *from && trace_to == *to { + trace.tx_hash = *transaction_hash; + Some(trace) } else { - // If the transaction is not in the ethereum block - // it should not appear in the block trace + // if the trace does not match the ethereum transaction + // it means that the trace is about a buggy transaction that + // is not in the block we need to offset the + // tx_position tx_position_offset += 1; None } - }) - .collect::>(); + } else { + // If the transaction is not in the ethereum block + // it should not appear in the block trace + tx_position_offset += 1; + None + } + }) + .collect::>(); let n_txs = eth_transactions_by_index.len(); let n_traces = result.len(); @@ -609,14 +565,12 @@ where } Ok(result) - } - _ => Err(internal_err( - "Bug: failed to resolve the tracer format.".to_string(), - )), + }, + _ => Err(internal_err("Bug: failed to resolve the tracer format.".to_string())), }?; Ok(Response::Block(response)) - } + }, _ => Err(internal_err( "debug_traceBlock functions currently only support callList mode (enabled by providing `{{'tracer': 'callTracer'}}` in the request)." @@ -674,7 +628,7 @@ where let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder); api.register_extension(ext); }; - + // Get Blockchain backend let blockchain = backend.blockchain(); // Get the header I want to work with. @@ -700,9 +654,7 @@ where { api_version } else { - return Err(internal_err( - "Runtime api version call failed (trace)".to_string(), - )); + return Err(internal_err("Runtime api version call failed (trace)".to_string())); }; let reference_block = overrides.current_block(reference_hash); @@ -733,10 +685,9 @@ where // were processed by the "setValidationData" inherent call and not on an // "on_initialize" hook, which runs before enabling XCM tracing if core_api_version >= 5 { - api.initialize_block(parent_block_hash, &header) - .map_err(|e| { - internal_err(format!("Runtime api access error: {:?}", e)) - })?; + api.initialize_block(parent_block_hash, &header).map_err(|e| { + internal_err(format!("Runtime api access error: {:?}", e)) + })?; } else { #[allow(deprecated)] api.initialize_block_before_version_5(parent_block_hash, &header) @@ -756,21 +707,18 @@ where } else { // Pre-london update, legacy transactions. match transaction { + #[allow(deprecated)] ethereum::TransactionV2::Legacy(tx) => - { - #[allow(deprecated)] api.trace_transaction_before_version_4( parent_block_hash, exts, tx, - ) - } - _ => { + ), + _ => return Err(internal_err( "Bug: pre-london runtime expects legacy transactions" .to_string(), - )) - } + )), } } }; @@ -788,11 +736,7 @@ where }; return match trace_type { - single::TraceType::Raw { - disable_storage, - disable_memory, - disable_stack, - } => { + single::TraceType::Raw { disable_storage, disable_memory, disable_stack } => { let mut proxy = peaq_client_evm_tracing::listeners::Raw::new( disable_storage, disable_memory, @@ -808,33 +752,30 @@ where ), )?, )) - } + }, single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { - TracerInput::Blockscout => { + TracerInput::Blockscout => peaq_client_evm_tracing::formatters::Blockscout::format(proxy) .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e))) - } + .map_err(|e| internal_err(format!("{:?}", e))), TracerInput::CallTracer => { let mut res = - peaq_client_evm_tracing::formatters::CallTracer::format( - proxy, - ) - .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e)))?; + peaq_client_evm_tracing::formatters::CallTracer::format(proxy) + .ok_or("Trace result is empty.") + .map_err(|e| internal_err(format!("{:?}", e)))?; Ok(res.pop().expect("Trace result is empty.").result) - } + }, _ => Err(internal_err( "Bug: failed to resolve the tracer format.".to_string(), )), }?; Ok(Response::Single(response)) - } + }, not_supported => Err(internal_err(format!( "Bug: `handle_transaction_request` does not support {:?}.", not_supported @@ -857,15 +798,12 @@ where let reference_id: BlockId = match request_block_id { RequestBlockId::Number(n) => Ok(BlockId::Number(n.unique_saturated_into())), - RequestBlockId::Tag(RequestBlockTag::Latest) => { - Ok(BlockId::Number(client.info().best_number)) - } - RequestBlockId::Tag(RequestBlockTag::Earliest) => { - Ok(BlockId::Number(0u32.unique_saturated_into())) - } - RequestBlockId::Tag(RequestBlockTag::Pending) => { - Err(internal_err("'pending' blocks are not supported")) - } + RequestBlockId::Tag(RequestBlockTag::Latest) => + Ok(BlockId::Number(client.info().best_number)), + RequestBlockId::Tag(RequestBlockTag::Earliest) => + Ok(BlockId::Number(0u32.unique_saturated_into())), + RequestBlockId::Tag(RequestBlockTag::Pending) => + Err(internal_err("'pending' blocks are not supported")), RequestBlockId::Hash(eth_hash) => { match futures::executor::block_on(frontier_backend_client::load_hash::( client.as_ref(), @@ -876,7 +814,7 @@ where Ok(_) => Err(internal_err("Block hash not found".to_string())), Err(e) => Err(e), } - } + }, }?; // Get ApiRef. This handle allow to keep changes between txs in an internal buffer. @@ -906,15 +844,11 @@ where { api_version } else { - return Err(internal_err( - "Runtime api version call failed (trace)".to_string(), - )); + return Err(internal_err("Runtime api version call failed (trace)".to_string())); }; if trace_api_version <= 5 { - return Err(internal_err( - "debug_traceCall not supported with old runtimes".to_string(), - )); + return Err(internal_err("debug_traceCall not supported with old runtimes".to_string())); } let TraceCallParams { @@ -936,21 +870,15 @@ where (gas_price, None, None) => { // Legacy request, all default to gas price. // A zero-set gas price is None. - let gas_price = if gas_price.unwrap_or_default().is_zero() { - None - } else { - gas_price - }; + let gas_price = + if gas_price.unwrap_or_default().is_zero() { None } else { gas_price }; (gas_price, gas_price) - } + }, (_, max_fee, max_priority) => { // eip-1559 // A zero-set max fee is None. - let max_fee = if max_fee.unwrap_or_default().is_zero() { - None - } else { - max_fee - }; + let max_fee = + if max_fee.unwrap_or_default().is_zero() { None } else { max_fee }; // Ensure `max_priority_fee_per_gas` is less or equal to `max_fee_per_gas`. if let Some(max_priority) = max_priority { let max_fee = max_fee.unwrap_or_default(); @@ -961,7 +889,7 @@ where } } (max_fee, max_priority) - } + }, }; let gas_limit = match gas { @@ -977,44 +905,36 @@ where "block unavailable, cannot query gas limit".to_string(), )); } - } + }, }; let data = data.map(|d| d.0).unwrap_or_default(); let access_list = access_list.unwrap_or_default(); let f = || -> RpcResult<_> { - api - .trace_call( - parent_block_hash, - &header, - from.unwrap_or_default(), - to, - data, - value.unwrap_or_default(), - gas_limit, - max_fee_per_gas, - max_priority_fee_per_gas, - nonce, - Some( - access_list - .into_iter() - .map(|item| (item.address, item.storage_keys)) - .collect(), - ), - ) - .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))? - .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))?; + api.trace_call( + parent_block_hash, + &header, + from.unwrap_or_default(), + to, + data, + value.unwrap_or_default(), + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + Some( + access_list.into_iter().map(|item| (item.address, item.storage_keys)).collect(), + ), + ) + .map_err(|e| internal_err(format!("Runtime api access error: {:?}", e)))? + .map_err(|e| internal_err(format!("DispatchError: {:?}", e)))?; Ok(peaq_rpc_primitives_debug::Response::Single) }; match trace_type { - single::TraceType::Raw { - disable_storage, - disable_memory, - disable_stack, - } => { + single::TraceType::Raw { disable_storage, disable_memory, disable_stack } => { let mut proxy = peaq_client_evm_tracing::listeners::Raw::new( disable_storage, disable_memory, @@ -1023,38 +943,33 @@ where ); proxy.using(f)?; Ok(Response::Single( - peaq_client_evm_tracing::formatters::Raw::format(proxy).ok_or( - internal_err( - "replayed transaction generated too much data. \ + peaq_client_evm_tracing::formatters::Raw::format(proxy).ok_or(internal_err( + "replayed transaction generated too much data. \ try disabling memory or storage?", - ), - )?, + ))?, )) - } + }, single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { - TracerInput::Blockscout => { + TracerInput::Blockscout => peaq_client_evm_tracing::formatters::Blockscout::format(proxy) .ok_or("Trace result is empty.") - .map_err(|e| internal_err(format!("{:?}", e))) - } + .map_err(|e| internal_err(format!("{:?}", e))), TracerInput::CallTracer => { let mut res = peaq_client_evm_tracing::formatters::CallTracer::format(proxy) .ok_or("Trace result is empty.") .map_err(|e| internal_err(format!("{:?}", e)))?; Ok(res.pop().expect("Trace result is empty.").result) - } - _ => Err(internal_err( - "Bug: failed to resolve the tracer format.".to_string(), - )), + }, + _ => Err(internal_err("Bug: failed to resolve the tracer format.".to_string())), }?; Ok(Response::Single(response)) - } + }, not_supported => Err(internal_err(format!( "Bug: `handle_call_request` does not support {:?}.", not_supported diff --git a/client/rpc/trace/src/lib.rs b/client/rpc/trace/src/lib.rs index 6bc75b68b..e0353c740 100644 --- a/client/rpc/trace/src/lib.rs +++ b/client/rpc/trace/src/lib.rs @@ -21,8 +21,8 @@ //! The implementation is composed of multiple tasks : //! - Many calls the RPC handler `Trace::filter`, communicating with the main task. //! - A main `CacheTask` managing the cache and the communication between tasks. -//! - For each traced block an async task responsible to wait for a permit, spawn a blocking -//! task and waiting for the result, then send it to the main `CacheTask`. +//! - For each traced block an async task responsible to wait for a permit, spawn a blocking task +//! and waiting for the result, then send it to the main `CacheTask`. use futures::{select, stream::FuturesUnordered, FutureExt, StreamExt}; use std::{collections::BTreeMap, future::Future, marker::PhantomData, sync::Arc, time::Duration}; @@ -86,25 +86,18 @@ where { /// Create a new RPC handler. pub fn new(client: Arc, requester: CacheRequester, max_count: u32) -> Self { - Self { - client, - requester, - max_count, - _phantom: PhantomData, - } + Self { client, requester, max_count, _phantom: PhantomData } } /// Convert an optional block ID (number or tag) to a block height. fn block_id(&self, id: Option) -> Result { match id { Some(RequestBlockId::Number(n)) => Ok(n), - None | Some(RequestBlockId::Tag(RequestBlockTag::Latest)) => { - Ok(self.client.info().best_number) - } + None | Some(RequestBlockId::Tag(RequestBlockTag::Latest)) => + Ok(self.client.info().best_number), Some(RequestBlockId::Tag(RequestBlockTag::Earliest)) => Ok(0), - Some(RequestBlockId::Tag(RequestBlockTag::Pending)) => { - Err("'pending' is not supported") - } + Some(RequestBlockId::Tag(RequestBlockTag::Pending)) => + Err("'pending' is not supported"), Some(RequestBlockId::Hash(_)) => Err("Block hash not supported"), } } @@ -134,10 +127,7 @@ where .client .hash(block_height) .map_err(|e| { - format!( - "Error when fetching block {} header : {:?}", - block_height, e - ) + format!("Error when fetching block {} header : {:?}", block_height, e) })? .ok_or_else(|| format!("Block with height {} don't exist", block_height))?; @@ -179,18 +169,15 @@ where let mut block_traces: Vec<_> = block_traces .iter() .filter(|trace| match trace.action { - block::TransactionTraceAction::Call { from, to, .. } => { - (from_address.is_empty() || from_address.contains(&from)) - && (to_address.is_empty() || to_address.contains(&to)) - } - block::TransactionTraceAction::Create { from, .. } => { - (from_address.is_empty() || from_address.contains(&from)) - && to_address.is_empty() - } - block::TransactionTraceAction::Suicide { address, .. } => { - (from_address.is_empty() || from_address.contains(&address)) - && to_address.is_empty() - } + block::TransactionTraceAction::Call { from, to, .. } => + (from_address.is_empty() || from_address.contains(&from)) && + (to_address.is_empty() || to_address.contains(&to)), + block::TransactionTraceAction::Create { from, .. } => + (from_address.is_empty() || from_address.contains(&from)) && + to_address.is_empty(), + block::TransactionTraceAction::Suicide { address, .. } => + (from_address.is_empty() || from_address.contains(&address)) && + to_address.is_empty(), }) .cloned() .collect(); @@ -241,10 +228,7 @@ where &self, filter: FilterRequest, ) -> jsonrpsee::core::RpcResult> { - self.clone() - .filter(filter) - .await - .map_err(fc_rpc::internal_err) + self.clone().filter(filter).await.map_err(fc_rpc::internal_err) } } @@ -288,23 +272,14 @@ impl CacheRequester { let sender = self.0.clone(); sender - .unbounded_send(CacheRequest::StartBatch { - sender: response_tx, - blocks, - }) + .unbounded_send(CacheRequest::StartBatch { sender: response_tx, blocks }) .map_err(|e| { - format!( - "Failed to send request to the trace cache task. Error : {:?}", - e - ) + format!("Failed to send request to the trace cache task. Error : {:?}", e) })?; - response_rx.await.map_err(|e| { - format!( - "Trace cache task closed the response channel. Error : {:?}", - e - ) - }) + response_rx + .await + .map_err(|e| format!("Trace cache task closed the response channel. Error : {:?}", e)) } /// Fetch the traces for given block hash. @@ -317,25 +292,14 @@ impl CacheRequester { let sender = self.0.clone(); sender - .unbounded_send(CacheRequest::GetTraces { - sender: response_tx, - block, - }) + .unbounded_send(CacheRequest::GetTraces { sender: response_tx, block }) .map_err(|e| { - format!( - "Failed to send request to the trace cache task. Error : {:?}", - e - ) + format!("Failed to send request to the trace cache task. Error : {:?}", e) })?; response_rx .await - .map_err(|e| { - format!( - "Trace cache task closed the response channel. Error : {:?}", - e - ) - })? + .map_err(|e| format!("Trace cache task closed the response channel. Error : {:?}", e))? .map_err(|e| format!("Failed to replay block. Error : {:?}", e)) } @@ -347,14 +311,9 @@ impl CacheRequester { // Here we don't care if the request has been accepted or refused, the caller can't // do anything with it. - let _ = sender - .unbounded_send(CacheRequest::StopBatch { batch_id }) - .map_err(|e| { - format!( - "Failed to send request to the trace cache task. Error : {:?}", - e - ) - }); + let _ = sender.unbounded_send(CacheRequest::StopBatch { batch_id }).map_err(|e| { + format!("Failed to send request to the trace cache task. Error : {:?}", e) + }); } } @@ -400,10 +359,7 @@ enum BlockingTaskMessage { /// started being traced. Started { block_hash: H256 }, /// The tracing is finished and the result is sent to the main task. - Finished { - block_hash: H256, - result: TxsTraceRes, - }, + Finished { block_hash: H256, result: TxsTraceRes }, } /// Type wrapper for the cache task, generic over the Client, Block and Backend types. @@ -462,7 +418,7 @@ where Err(err) => { log::error!(target: "tracing", "Failed to register metrics {err:?}"); None - } + }, } } else { None @@ -601,10 +557,7 @@ where // Send a response to the main task. let _ = blocking_tx - .send(BlockingTaskMessage::Finished { - block_hash: block, - result, - }) + .send(BlockingTaskMessage::Finished { block_hash: block, result }) .await; } .instrument(tracing::trace_span!("Block tracing", block = %block)), @@ -634,19 +587,16 @@ where /// Handle a request to get the traces of the provided block. /// - If the result is stored in the cache, it sends it immediately. - /// - If the block is currently being pooled, it is added to this block cache waiting list, - /// and all requests concerning this block will be satisfied when the tracing for this block - /// is finished. + /// - If the block is currently being pooled, it is added to this block cache waiting list, and + /// all requests concerning this block will be satisfied when the tracing for this block is + /// finished. /// - If this block is missing from the cache, it means no batch asked for it. All requested /// blocks should be contained in a batch beforehand, and thus an error is returned. #[instrument(skip(self))] fn request_get_traces(&mut self, sender: oneshot::Sender, block: H256) { if let Some(block_cache) = self.cached_blocks.get_mut(&block) { match &mut block_cache.state { - CacheBlockState::Pooled { - ref mut waiting_requests, - .. - } => { + CacheBlockState::Pooled { ref mut waiting_requests, .. } => { tracing::warn!( "A request asked a pooled block ({}), adding it to the list of \ waiting requests.", @@ -656,7 +606,7 @@ where if let Some(metrics) = &self.metrics { metrics.tracing_cache_misses.inc(); } - } + }, CacheBlockState::Cached { traces, .. } => { tracing::warn!( "A request asked a cached block ({}), sending the traces directly.", @@ -666,17 +616,15 @@ where if let Some(metrics) = &self.metrics { metrics.tracing_cache_hits.inc(); } - } + }, } } else { tracing::warn!( "An RPC request asked to get a block ({}) which was not batched.", block ); - let _ = sender.send(Err(format!( - "RPC request asked a block ({}) that was not batched", - block - ))); + let _ = sender + .send(Err(format!("RPC request asked a block ({}) that was not batched", block))); } } @@ -696,8 +644,8 @@ where // We remove early the block cache if this batch is the last // pooling this block. if let Some(block_cache) = self.cached_blocks.get_mut(block) { - if block_cache.active_batch_count == 1 - && matches!( + if block_cache.active_batch_count == 1 && + matches!( block_cache.state, CacheBlockState::Pooled { started: false, .. } ) { @@ -720,10 +668,7 @@ where #[instrument(skip(self))] fn blocking_started(&mut self, block_hash: H256) { if let Some(block_cache) = self.cached_blocks.get_mut(&block_hash) { - if let CacheBlockState::Pooled { - ref mut started, .. - } = block_cache.state - { + if let CacheBlockState::Pooled { ref mut started, .. } = block_cache.state { *started = true; } } @@ -739,11 +684,7 @@ where // TODO : Should we add it back ? Should it have an active_batch_count // of 1 then ? if let Some(block_cache) = self.cached_blocks.get_mut(&block_hash) { - if let CacheBlockState::Pooled { - ref mut waiting_requests, - .. - } = block_cache.state - { + if let CacheBlockState::Pooled { ref mut waiting_requests, .. } = block_cache.state { tracing::trace!( "A new block ({}) has been traced, adding it to the cache and responding to \ {} waiting requests.", @@ -798,10 +739,7 @@ where let block_header = client .header(substrate_hash) .map_err(|e| { - format!( - "Error when fetching substrate block {} header : {:?}", - substrate_hash, e - ) + format!("Error when fetching substrate block {} header : {:?}", substrate_hash, e) })? .ok_or_else(|| format!("Substrate block {} don't exist", substrate_hash))?; @@ -814,29 +752,22 @@ where overrides.current_transaction_statuses(substrate_hash), ) { (Some(a), Some(b)) => (a, b), - _ => { + _ => return Err(format!( "Failed to get Ethereum block data for Substrate block {}", substrate_hash - )) - } + )), }; let eth_block_hash = eth_block.header.hash(); - let eth_tx_hashes = eth_transactions - .iter() - .map(|t| t.transaction_hash) - .collect(); + let eth_tx_hashes = eth_transactions.iter().map(|t| t.transaction_hash).collect(); // Get extrinsics (containing Ethereum ones) let extrinsics = backend .blockchain() .body(substrate_hash) .map_err(|e| { - format!( - "Blockchain error when fetching extrinsics of block {} : {:?}", - height, e - ) + format!("Blockchain error when fetching extrinsics of block {} : {:?}", height, e) })? .ok_or_else(|| format!("Could not find block {} when fetching extrinsics.", height))?; @@ -852,12 +783,7 @@ where // Trace the block. let f = || -> Result<_, String> { let result = if trace_api_version >= 5 { - api.trace_block( - substrate_parent_hash, - extrinsics, - eth_tx_hashes, - &block_header, - ) + api.trace_block(substrate_parent_hash, extrinsics, eth_tx_hashes, &block_header) } else { // Get core runtime api version let core_api_version = if let Ok(Some(api_version)) = @@ -895,10 +821,7 @@ where height, e ); - format!( - "Internal runtime error when replaying block {} : {:?}", - height, e - ) + format!("Internal runtime error when replaying block {} : {:?}", height, e) })?; Ok(peaq_rpc_primitives_debug::Response::Block) @@ -933,7 +856,7 @@ where } Some(trace) - } + }, None => { log::warn!( target: "tracing", @@ -942,7 +865,7 @@ where trace, ); None - } + }, } }) .collect(); diff --git a/node/src/cli.rs b/node/src/cli.rs index 992152bb9..5dc6aabae 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -126,7 +126,7 @@ pub enum Subcommand { Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Exposing this at all times for documentation reasons - /// try-runtime CLI is no longer supported by peaq and is now a standalone CLI + /// try-runtime CLI is no longer supported by peaq and is now a standalone CLI /// https://github.com/paritytech/try-runtime-cli TryRuntime, } diff --git a/node/src/command.rs b/node/src/command.rs index 882f950e9..e3055e3f4 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -522,12 +522,7 @@ impl CliConfiguration for RelayChainCli { self.base.base.prometheus_config(default_listen_port, chain_spec) } - fn init( - &self, - _support_url: &String, - _impl_version: &String, - _logger_hook: F, - ) -> Result<()> + fn init(&self, _support_url: &String, _impl_version: &String, _logger_hook: F) -> Result<()> where F: FnOnce(&mut sc_cli::LoggerBuilder), { diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 0e33a0aea..ec19377b2 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -1,7 +1,8 @@ //! Parachain Service and ServiceFactory implementation. use cumulus_client_cli::CollatorOptions; use cumulus_client_consensus_aura::collators::slot_based::{ - self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport as TSlotBasedBlockImport, SlotBasedBlockImportHandle, + self as slot_based, Params as SlotBasedParams, SlotBasedBlockImport as TSlotBasedBlockImport, + SlotBasedBlockImportHandle, }; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; @@ -74,49 +75,38 @@ pub type ExtHostFunctions = ( peaq_primitives_ext::peaq_ext::HostFunctions, ); - type ParachainExecutor = WasmExecutor; type ParachainClient = TFullClient; - type ParachainBackend = TFullBackend; -type FrontierBlockImport = TFrontierBlockImport< - Block, - SlotBasedBlockImport, - ParachainClient, ->; +type FrontierBlockImport = + TFrontierBlockImport, ParachainClient>; -type SlotBasedBlockImport = TSlotBasedBlockImport< - Block, - Arc>, - ParachainClient ->; +type SlotBasedBlockImport = + TSlotBasedBlockImport>, ParachainClient>; -type ParachainBlockImport = TParachainBlockImport< - Block, - FrontierBlockImport, - ParachainBackend, ->; +type ParachainBlockImport = + TParachainBlockImport, ParachainBackend>; type Service = PartialComponents< - ParachainClient, - ParachainBackend, - (), - sc_consensus::DefaultImportQueue, - sc_transaction_pool::TransactionPoolHandle>, - ( - ParachainBlockImport, - SlotBasedBlockImportHandle, - // SlotBasedBlockImport, ParachainClient>, - Option, - Option, - Option, - Arc>>, - FeeHistoryCache, - ), - >; + ParachainClient, + ParachainBackend, + (), + sc_consensus::DefaultImportQueue, + sc_transaction_pool::TransactionPoolHandle>, + ( + ParachainBlockImport, + SlotBasedBlockImportHandle, + // SlotBasedBlockImport, ParachainClient>, + Option, + Option, + Option, + Arc>>, + FeeHistoryCache, + ), +>; pub fn frontier_database_dir(config: &Configuration, path: &str) -> std::path::PathBuf { config.base_path.config_dir(config.chain_spec.id()).join("frontier").join(path) @@ -204,7 +194,7 @@ where Ok((worker, telemetry)) }) .transpose()?; - + let executor = sc_service::new_wasm_executor(&config.executor); let (client, backend, keystore_container, task_manager) = @@ -236,11 +226,12 @@ where .with_prometheus(config.prometheus_registry()) .build(); - let (slot_based_block_import, slot_based_handle) = - SlotBasedBlockImport::new(client.clone(), client.clone()); - let frontier_block_import = FrontierBlockImport::new(slot_based_block_import.clone(), client.clone()); - let parachain_block_import = ParachainBlockImport::new(frontier_block_import.clone(), backend.clone()); + SlotBasedBlockImport::new(client.clone(), client.clone()); + let frontier_block_import = + FrontierBlockImport::new(slot_based_block_import.clone(), client.clone()); + let parachain_block_import = + ParachainBlockImport::new(frontier_block_import.clone(), backend.clone()); let import_queue = fn_build_import_queue( client.clone(), @@ -287,8 +278,9 @@ async fn build_relay_chain_interface( polkadot_config, parachain_config.prometheus_registry(), task_manager, - rpc_target_urls - ).await + rpc_target_urls, + ) + .await } else { build_inprocess_relay_chain( polkadot_config, @@ -359,7 +351,7 @@ where KeystorePtr, ParaId, CollatorPair, - SlotBasedBlockImportHandle + SlotBasedBlockImportHandle, ) -> Result<(), sc_service::Error>, { let mut parachain_config = prepare_node_config(parachain_config); @@ -398,7 +390,7 @@ where let import_queue_service = params.import_queue.service(); let network_config = FullNetworkConfiguration::<_, _, sc_network::NetworkWorker<_, _>>::new( ¶chain_config.network, - prometheus_registry.clone() + prometheus_registry.clone(), ); let (network, system_rpc_tx, tx_handler_controller, sync_service) = cumulus_client_service::build_network(BuildNetworkParams { @@ -611,7 +603,7 @@ where params.keystore_container.keystore(), id, collator_key.expect("Command line arguments do not allow this. qed"), - slot_based_handle + slot_based_handle, )?; } @@ -648,8 +640,8 @@ where _, _, _, - >(cumulus_client_consensus_aura::BuildVerifierParams { - client: client2.clone(), + >(cumulus_client_consensus_aura::BuildVerifierParams { + client: client2.clone(), create_inherent_data_providers: move |parent_hash, _| { let cidp_client = client2.clone(); async move { @@ -663,9 +655,9 @@ where ); Ok((slot, time)) } - }, - telemetry: telemetry_handle, - })); + }, + telemetry: telemetry_handle, + })); let relay_chain_verifier = Box::new(RelayChainVerifier::new(client.clone(), |_, _| async { Ok(()) })) as Box<_>; @@ -707,7 +699,7 @@ where + peaq_pallet_storage_rpc::PeaqStorageRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi + cumulus_primitives_aura::AuraUnincludedSegmentApi - + cumulus_primitives_core::GetCoreSelectorApi + + cumulus_primitives_core::GetCoreSelectorApi, { start_contracts_node_impl::( parachain_config, @@ -758,7 +750,7 @@ where relay_chain_interface, transaction_pool, sync_oracle, - keystore, + keystore, para_id, collator_key, block_import_handle| { @@ -808,12 +800,22 @@ where slot_offset: Duration::from_secs(1), spawner: task_manager.spawn_handle(), export_pov: None, - block_import_handle + block_import_handle, }; - slot_based::run::( - params, - ); + slot_based::run::< + Block, + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + _, + _, + _, + _, + _, + >(params); Ok(()) }, diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 17eca715a..79e65e88f 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -3,9 +3,7 @@ use cumulus_primitives_core::ParaId; use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; -use fc_rpc::{EthBlockDataCacheTask, StorageOverride}; -use fc_rpc::TxPool; -use fc_rpc::TxPoolApiServer; +use fc_rpc::{EthBlockDataCacheTask, StorageOverride, TxPool, TxPoolApiServer}; use fc_rpc_core::types::{FeeHistoryCache, FilterPool}; use jsonrpsee::RpcModule; use peaq_primitives_xcm::*; @@ -176,7 +174,7 @@ where io.merge(System::new(Arc::clone(&client), Arc::clone(&pool)).into_rpc())?; io.merge(TransactionPayment::new(Arc::clone(&client)).into_rpc())?; - + let no_tx_converter: Option = None; let slot_duration = sc_consensus_aura::slot_duration(&*client)?; diff --git a/pallets/address-unification/src/mock.rs b/pallets/address-unification/src/mock.rs index a3dbfbdf3..013693449 100644 --- a/pallets/address-unification/src/mock.rs +++ b/pallets/address-unification/src/mock.rs @@ -122,9 +122,12 @@ impl ExtBuilder { pub fn build(self) -> sp_io::TestExternalities { let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - pallet_balances::GenesisConfig:: { balances: vec![(bob_account_id(), 100000)], ..Default::default() } - .assimilate_storage(&mut t) - .unwrap(); + pallet_balances::GenesisConfig:: { + balances: vec![(bob_account_id(), 100000)], + ..Default::default() + } + .assimilate_storage(&mut t) + .unwrap(); let mut ext = sp_io::TestExternalities::new(t); ext.execute_with(|| System::set_block_number(1)); diff --git a/pallets/block-reward/src/types.rs b/pallets/block-reward/src/types.rs index 8bb246fb3..08a17f5a8 100644 --- a/pallets/block-reward/src/types.rs +++ b/pallets/block-reward/src/types.rs @@ -101,7 +101,7 @@ impl Default for RewardDistributionConfigV0 { MaxEncodedLen, Serialize, Deserialize, - DecodeWithMemTracking + DecodeWithMemTracking, )] pub struct RewardDistributionConfig { /// Base percentage of reward that goes to treasury diff --git a/pallets/inflation-manager/src/mock.rs b/pallets/inflation-manager/src/mock.rs index 7f694c0ac..21944ead4 100644 --- a/pallets/inflation-manager/src/mock.rs +++ b/pallets/inflation-manager/src/mock.rs @@ -158,9 +158,12 @@ impl ExternalityBuilder { frame_system::GenesisConfig::::default().build_storage().unwrap(); // This will cause some initial issuance - pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } - .assimilate_storage(&mut storage) - .ok(); + pallet_balances::GenesisConfig:: { + balances: self.balances, + ..Default::default() + } + .assimilate_storage(&mut storage) + .ok(); inflation_manager::GenesisConfig:: { _phantom: Default::default() } .assimilate_storage(&mut storage) .ok(); diff --git a/pallets/inflation-manager/src/types.rs b/pallets/inflation-manager/src/types.rs index a152ee106..2ab8639fc 100644 --- a/pallets/inflation-manager/src/types.rs +++ b/pallets/inflation-manager/src/types.rs @@ -7,7 +7,17 @@ use sp_runtime::Perbill; pub type AccountIdOf = ::AccountId; pub type BalanceOf = <::Currency as Currency>>::Balance; -#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen, DecodeWithMemTracking)] +#[derive( + PartialEq, + Eq, + Clone, + Encode, + Decode, + RuntimeDebug, + TypeInfo, + MaxEncodedLen, + DecodeWithMemTracking, +)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct InflationParameters { pub inflation_rate: Perbill, @@ -23,7 +33,17 @@ impl Default for InflationParameters { } } -#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo, MaxEncodedLen, DecodeWithMemTracking)] +#[derive( + PartialEq, + Eq, + Clone, + Encode, + Decode, + RuntimeDebug, + TypeInfo, + MaxEncodedLen, + DecodeWithMemTracking, +)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct InflationConfiguration { // the invariant rates for inflation and disinflation going forward diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index 8d0df9aa9..60aaf1f77 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -274,9 +274,12 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances.clone(), ..Default::default() } - .assimilate_storage(&mut t) - .expect("Pallet balances storage can be assimilated"); + pallet_balances::GenesisConfig:: { + balances: self.balances.clone(), + ..Default::default() + } + .assimilate_storage(&mut t) + .expect("Pallet balances storage can be assimilated"); let mut stakers: Vec<(AccountId, Option, Balance)> = Vec::new(); for collator in self.collators.clone() { diff --git a/pallets/parachain-staking/src/set.rs b/pallets/parachain-staking/src/set.rs index 27ffdb5c2..153d6c377 100644 --- a/pallets/parachain-staking/src/set.rs +++ b/pallets/parachain-staking/src/set.rs @@ -169,11 +169,10 @@ impl> OrderedSet { /// Iteratively searches this (from greatest to lowest) ordered set for a /// given element. /// - /// 1. If the value is found, then Result::Ok is returned, containing the - /// index of the matching element. - /// 2. If the value is not found, then Result::Err is returned, containing - /// the index where a matching element could be inserted while maintaining - /// sorted order. + /// 1. If the value is found, then Result::Ok is returned, containing the index of the matching + /// element. + /// 2. If the value is not found, then Result::Err is returned, containing the index where a + /// matching element could be inserted while maintaining sorted order. pub fn linear_search(&self, value: &T) -> Result { let size = self.0.len(); let mut loc: usize = size; diff --git a/pallets/parachain-staking/src/tests.rs b/pallets/parachain-staking/src/tests.rs index 049171baa..8df68490a 100644 --- a/pallets/parachain-staking/src/tests.rs +++ b/pallets/parachain-staking/src/tests.rs @@ -1611,31 +1611,36 @@ fn coinbase_rewards_many_blocks_simple_check() { assert_eq!( Balances::free_balance(1), genesis_reward_1 + - normal_odd_reward_1 + normal_even_reward_1 + + normal_odd_reward_1 + + normal_even_reward_1 + 40_000_000 * DECIMALS ); assert_eq!( Balances::free_balance(2), genesis_reward_2 + - normal_odd_reward_2 + normal_even_reward_2 + + normal_odd_reward_2 + + normal_even_reward_2 + 40_000_000 * DECIMALS ); assert_eq!( Balances::free_balance(3), genesis_reward_3 + - normal_odd_reward_3 + normal_even_reward_3 + + normal_odd_reward_3 + + normal_even_reward_3 + 40_000_000 * DECIMALS ); assert_eq!( Balances::free_balance(4), genesis_reward_4 + - normal_odd_reward_4 + normal_even_reward_4 + + normal_odd_reward_4 + + normal_even_reward_4 + 20_000_000 * DECIMALS ); assert_eq!( Balances::free_balance(5), genesis_reward_5 + - normal_odd_reward_5 + normal_even_reward_5 + + normal_odd_reward_5 + + normal_even_reward_5 + 20_000_000 * DECIMALS ); diff --git a/precompiles/assets-erc20/src/lib.rs b/precompiles/assets-erc20/src/lib.rs index b9b31cc50..cb98728c7 100644 --- a/precompiles/assets-erc20/src/lib.rs +++ b/precompiles/assets-erc20/src/lib.rs @@ -141,7 +141,6 @@ where Runtime: EVMAddressToAssetId>, <::RuntimeCall as Dispatchable>::RuntimeOrigin: OriginTrait, ::AddressMapping: AddressMapping, - { /// PrecompileSet discriminant. Allows to knows if the address maps to an asset id, /// and if this is the case which one. diff --git a/precompiles/assets-erc20/src/mock.rs b/precompiles/assets-erc20/src/mock.rs index 1c3d5888e..b837bc6ad 100644 --- a/precompiles/assets-erc20/src/mock.rs +++ b/precompiles/assets-erc20/src/mock.rs @@ -119,7 +119,6 @@ impl frame_system::Config for Runtime { type PreInherents = (); type PostTransactions = (); type SingleBlockMigrations = (); - } parameter_types! { diff --git a/precompiles/balances-erc20/src/tests.rs b/precompiles/balances-erc20/src/tests.rs index e274b7b5f..93dc2efe8 100644 --- a/precompiles/balances-erc20/src/tests.rs +++ b/precompiles/balances-erc20/src/tests.rs @@ -19,10 +19,10 @@ use std::str::from_utf8; use crate::{eip2612::Eip2612, mock::*, *}; use libsecp256k1::{sign, Message, SecretKey}; +use peaq_precompile_utils::MockPeaqAccount; use precompile_utils::testing::*; use sha3::{Digest, Keccak256}; use sp_core::{H256, U256}; -use peaq_precompile_utils::MockPeaqAccount; // No test of invalid selectors since we have a fallback behavior (deposit). fn precompiles() -> Precompiles { diff --git a/precompiles/batch/src/mock.rs b/precompiles/batch/src/mock.rs index bb223d5c1..93c037e38 100644 --- a/precompiles/batch/src/mock.rs +++ b/precompiles/batch/src/mock.rs @@ -192,7 +192,7 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default()} + pallet_balances::GenesisConfig:: { balances: self.balances, ..Default::default() } .assimilate_storage(&mut t) .expect("Pallet balances storage can be assimilated"); @@ -202,7 +202,7 @@ impl ExtBuilder { let _ = pallet_evm::Pallet::::create_account( MockPeaqAccount::EVMu2Account.into(), hex_literal::hex!("1460006000fd").to_vec(), - None + None, ); }); ext diff --git a/precompiles/parachain-staking/src/mock.rs b/precompiles/parachain-staking/src/mock.rs index e96aac6fb..7cefc2f43 100644 --- a/precompiles/parachain-staking/src/mock.rs +++ b/precompiles/parachain-staking/src/mock.rs @@ -328,9 +328,12 @@ impl ExtBuilder { .build_storage() .expect("Frame system builds valid default genesis config"); - pallet_balances::GenesisConfig:: { balances: self.balances.clone(), ..Default::default() } - .assimilate_storage(&mut t) - .expect("Pallet balances storage can be assimilated"); + pallet_balances::GenesisConfig:: { + balances: self.balances.clone(), + ..Default::default() + } + .assimilate_storage(&mut t) + .expect("Pallet balances storage can be assimilated"); let mut stakers: Vec<(AccountId, Option, Balance)> = Vec::new(); for collator in self.collators.clone() { diff --git a/precompiles/utils/src/account.rs b/precompiles/utils/src/account.rs index b05b226ae..ef2646502 100644 --- a/precompiles/utils/src/account.rs +++ b/precompiles/utils/src/account.rs @@ -35,7 +35,7 @@ use sp_core::{Decode, Encode, MaxEncodedLen, H160, H256}; Serialize, Deserialize, derive_more::Display, - DecodeWithMemTracking + DecodeWithMemTracking, )] pub struct MockAccount(pub H160); @@ -205,7 +205,7 @@ mock_account!(SiblingParachainAccount(u32), |v: SiblingParachainAccount| { Deserialize, derive_more::Display, TypeInfo, - DecodeWithMemTracking + DecodeWithMemTracking, )] pub struct MockAssetId(pub u128); @@ -266,7 +266,7 @@ impl peaq_primitives_xcm::AssetIdExt for MockAssetId { Deserialize, derive_more::Display, TypeInfo, - DecodeWithMemTracking + DecodeWithMemTracking, )] pub enum MockPeaqAccount { Alice, diff --git a/precompiles/vesting/src/lib.rs b/precompiles/vesting/src/lib.rs index dfc796274..43d99bb29 100644 --- a/precompiles/vesting/src/lib.rs +++ b/precompiles/vesting/src/lib.rs @@ -52,7 +52,6 @@ where [u8; 32]: From>, H256: From<[u8; 32]>, ::AddressMapping: AddressMapping, - { #[precompile::public("vest()")] fn vest(handle: &mut impl PrecompileHandle) -> EvmResult { diff --git a/precompiles/xcm-utils/src/mock.rs b/precompiles/xcm-utils/src/mock.rs index 6fdd9909b..b126a567f 100644 --- a/precompiles/xcm-utils/src/mock.rs +++ b/precompiles/xcm-utils/src/mock.rs @@ -21,12 +21,12 @@ use frame_support::{ traits::{ConstU32, EnsureOrigin, Everything, Nothing, OriginTrait, PalletInfo as _}, weights::{RuntimeDbWeight, Weight}, }; -use xcm_builder::Case; use pallet_evm::{EnsureAddressNever, EnsureAddressRoot, GasWeightMapping}; use peaq_precompile_utils::*; use precompile_utils::precompile_set::*; use sp_core::{H256, U256}; use sp_runtime::BuildStorage; +use xcm_builder::Case; use sp_runtime::traits::{ BlakeTwo256, diff --git a/precompiles/xtokens/src/lib.rs b/precompiles/xtokens/src/lib.rs index ce61fc757..4fbeff612 100644 --- a/precompiles/xtokens/src/lib.rs +++ b/precompiles/xtokens/src/lib.rs @@ -25,7 +25,7 @@ use frame_support::{ }; use pallet_evm::AddressMapping; use pallet_evm_precompile_assets_erc20::AssetIdOf; -use peaq_precompile_utils::DEFAULT_PROOF_SIZE; +use peaq_precompile_utils::{DEFAULT_PROOF_SIZE, SYSTEM_ACCOUNT_SIZE}; use peaq_primitives_xcm::EVMAddressToAssetId; use precompile_utils::prelude::*; use sp_core::{H160, U256}; @@ -41,7 +41,6 @@ use xcm::{ latest::{Asset, AssetId, Assets, Fungibility, Location, WeightLimit}, VersionedAsset, VersionedAssets, VersionedLocation, }; -use peaq_precompile_utils::SYSTEM_ACCOUNT_SIZE; #[cfg(test)] mod mock; diff --git a/primitives/rpc/evm-tracing-events/src/evm.rs b/primitives/rpc/evm-tracing-events/src/evm.rs index 4876e564f..48aac712c 100644 --- a/primitives/rpc/evm-tracing-events/src/evm.rs +++ b/primitives/rpc/evm-tracing-events/src/evm.rs @@ -33,11 +33,7 @@ pub struct Transfer { impl From for Transfer { fn from(i: evm_runtime::Transfer) -> Self { - Self { - source: i.source, - target: i.target, - value: i.value, - } + Self { source: i.source, target: i.target, value: i.value } } } @@ -65,15 +61,8 @@ impl From for CreateScheme { fn from(i: evm_runtime::CreateScheme) -> Self { match i { evm_runtime::CreateScheme::Legacy { caller } => Self::Legacy { caller }, - evm_runtime::CreateScheme::Create2 { - caller, - code_hash, - salt, - } => Self::Create2 { - caller, - code_hash, - salt, - }, + evm_runtime::CreateScheme::Create2 { caller, code_hash, salt } => + Self::Create2 { caller, code_hash, salt }, evm_runtime::CreateScheme::Fixed(address) => Self::Fixed(address), } } @@ -177,35 +166,12 @@ impl<'a> From> for EvmEvent { init_code: init_code.to_vec(), target_gas, }, - evm::tracing::Event::Suicide { - address, - target, - balance, - } => Self::Suicide { - address, - target, - balance, - }, - evm::tracing::Event::Exit { - reason, - return_value, - } => Self::Exit { - reason: reason.clone(), - return_value: return_value.to_vec(), - }, - evm::tracing::Event::TransactCall { - caller, - address, - value, - data, - gas_limit, - } => Self::TransactCall { - caller, - address, - value, - data: data.to_vec(), - gas_limit, - }, + evm::tracing::Event::Suicide { address, target, balance } => + Self::Suicide { address, target, balance }, + evm::tracing::Event::Exit { reason, return_value } => + Self::Exit { reason: reason.clone(), return_value: return_value.to_vec() }, + evm::tracing::Event::TransactCall { caller, address, value, data, gas_limit } => + Self::TransactCall { caller, address, value, data: data.to_vec(), gas_limit }, evm::tracing::Event::TransactCreate { caller, value, diff --git a/primitives/rpc/evm-tracing-events/src/gasometer.rs b/primitives/rpc/evm-tracing-events/src/gasometer.rs index 3b12bad61..149f47036 100644 --- a/primitives/rpc/evm-tracing-events/src/gasometer.rs +++ b/primitives/rpc/evm-tracing-events/src/gasometer.rs @@ -48,50 +48,23 @@ impl From> for Snapshot { #[derive(Debug, Copy, Clone, Encode, Decode, PartialEq, Eq)] pub enum GasometerEvent { - RecordCost { - cost: u64, - snapshot: Snapshot, - }, - RecordRefund { - refund: i64, - snapshot: Snapshot, - }, - RecordStipend { - stipend: u64, - snapshot: Snapshot, - }, - RecordDynamicCost { - gas_cost: u64, - memory_gas: u64, - gas_refund: i64, - snapshot: Snapshot, - }, - RecordTransaction { - cost: u64, - snapshot: Snapshot, - }, + RecordCost { cost: u64, snapshot: Snapshot }, + RecordRefund { refund: i64, snapshot: Snapshot }, + RecordStipend { stipend: u64, snapshot: Snapshot }, + RecordDynamicCost { gas_cost: u64, memory_gas: u64, gas_refund: i64, snapshot: Snapshot }, + RecordTransaction { cost: u64, snapshot: Snapshot }, } #[cfg(feature = "evm-tracing")] impl From for GasometerEvent { fn from(i: evm_gasometer::tracing::Event) -> Self { match i { - evm_gasometer::tracing::Event::RecordCost { cost, snapshot } => Self::RecordCost { - cost, - snapshot: snapshot.into(), - }, - evm_gasometer::tracing::Event::RecordRefund { refund, snapshot } => { - Self::RecordRefund { - refund, - snapshot: snapshot.into(), - } - } - evm_gasometer::tracing::Event::RecordStipend { stipend, snapshot } => { - Self::RecordStipend { - stipend, - snapshot: snapshot.into(), - } - } + evm_gasometer::tracing::Event::RecordCost { cost, snapshot } => + Self::RecordCost { cost, snapshot: snapshot.into() }, + evm_gasometer::tracing::Event::RecordRefund { refund, snapshot } => + Self::RecordRefund { refund, snapshot: snapshot.into() }, + evm_gasometer::tracing::Event::RecordStipend { stipend, snapshot } => + Self::RecordStipend { stipend, snapshot: snapshot.into() }, evm_gasometer::tracing::Event::RecordDynamicCost { gas_cost, memory_gas, @@ -103,12 +76,8 @@ impl From for GasometerEvent { gas_refund, snapshot: snapshot.into(), }, - evm_gasometer::tracing::Event::RecordTransaction { cost, snapshot } => { - Self::RecordTransaction { - cost, - snapshot: snapshot.into(), - } - } + evm_gasometer::tracing::Event::RecordTransaction { cost, snapshot } => + Self::RecordTransaction { cost, snapshot: snapshot.into() }, } } } diff --git a/primitives/rpc/evm-tracing-events/src/lib.rs b/primitives/rpc/evm-tracing-events/src/lib.rs index a390ad8a8..dc1707ded 100644 --- a/primitives/rpc/evm-tracing-events/src/lib.rs +++ b/primitives/rpc/evm-tracing-events/src/lib.rs @@ -107,10 +107,6 @@ pub struct Context { impl From for Context { fn from(i: evm_runtime::Context) -> Self { - Self { - address: i.address, - caller: i.caller, - apparent_value: i.apparent_value, - } + Self { address: i.address, caller: i.caller, apparent_value: i.apparent_value } } } diff --git a/primitives/rpc/evm-tracing-events/src/runtime.rs b/primitives/rpc/evm-tracing-events/src/runtime.rs index 0eb1b19ec..92dac682b 100644 --- a/primitives/rpc/evm-tracing-events/src/runtime.rs +++ b/primitives/rpc/evm-tracing-events/src/runtime.rs @@ -30,10 +30,7 @@ pub struct Stack { impl From<&evm::Stack> for Stack { fn from(i: &evm::Stack) -> Self { - Self { - data: i.data().clone(), - limit: i.limit() as u64, - } + Self { data: i.data().clone(), limit: i.limit() as u64 } } } @@ -46,11 +43,7 @@ pub struct Memory { impl From<&evm::Memory> for Memory { fn from(i: &evm::Memory) -> Self { - Self { - data: i.data().clone(), - effective_len: i.effective_len(), - limit: i.limit() as u64, - } + Self { data: i.data().clone(), effective_len: i.effective_len(), limit: i.limit() as u64 } } } @@ -99,34 +92,18 @@ impl RuntimeEvent { filter: crate::StepEventFilter, ) -> Self { match i { - evm_runtime::tracing::Event::Step { - context, - opcode, - position, - stack, - memory, - } => Self::Step { - context: context.clone().into(), - opcode: opcodes_string(opcode), - position: match position { - Ok(position) => Ok(*position as u64), - Err(e) => Err(e.clone()), - }, - stack: if filter.enable_stack { - Some(stack.into()) - } else { - None - }, - memory: if filter.enable_memory { - Some(memory.into()) - } else { - None + evm_runtime::tracing::Event::Step { context, opcode, position, stack, memory } => + Self::Step { + context: context.clone().into(), + opcode: opcodes_string(opcode), + position: match position { + Ok(position) => Ok(*position as u64), + Err(e) => Err(e.clone()), + }, + stack: if filter.enable_stack { Some(stack.into()) } else { None }, + memory: if filter.enable_memory { Some(memory.into()) } else { None }, }, - }, - evm_runtime::tracing::Event::StepResult { - result, - return_value, - } => Self::StepResult { + evm_runtime::tracing::Event::StepResult { result, return_value } => Self::StepResult { result: match result { Ok(_) => Ok(()), Err(capture) => match capture { @@ -136,24 +113,10 @@ impl RuntimeEvent { }, return_value: return_value.to_vec(), }, - evm_runtime::tracing::Event::SLoad { - address, - index, - value, - } => Self::SLoad { - address, - index, - value, - }, - evm_runtime::tracing::Event::SStore { - address, - index, - value, - } => Self::SStore { - address, - index, - value, - }, + evm_runtime::tracing::Event::SLoad { address, index, value } => + Self::SLoad { address, index, value }, + evm_runtime::tracing::Event::SStore { address, index, value } => + Self::SStore { address, index, value }, } } } @@ -323,7 +286,7 @@ pub fn opcodes_string(opcode: Opcode) -> Vec { Opcode(n) => { tmp = alloc::format!("Unknown({})", n); &tmp - } + }, }; out.as_bytes().to_vec() } diff --git a/primitives/rpc/txpool/src/lib.rs b/primitives/rpc/txpool/src/lib.rs index edf937a67..17e51cf7a 100644 --- a/primitives/rpc/txpool/src/lib.rs +++ b/primitives/rpc/txpool/src/lib.rs @@ -21,9 +21,7 @@ pub use ethereum::{TransactionV0 as LegacyTransaction, TransactionV2 as Transaction}; use parity_scale_codec::{Decode, Encode}; -use sp_runtime::scale_info::TypeInfo; -use sp_runtime::traits::Block as BlockT; -use sp_runtime::RuntimeDebug; +use sp_runtime::{scale_info::TypeInfo, traits::Block as BlockT, RuntimeDebug}; use sp_std::vec::Vec; #[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)] diff --git a/primitives/xcm/src/evm.rs b/primitives/xcm/src/evm.rs index f73eb5ba8..46ad190bf 100644 --- a/primitives/xcm/src/evm.rs +++ b/primitives/xcm/src/evm.rs @@ -9,8 +9,8 @@ pub type EvmAddress = sp_core::H160; /// Convert any type that implements Into into byte representation ([u8, 32]) pub fn to_bytes>(value: T) -> [u8; 32] { - let value: U256 = value.into(); - value.to_big_endian() + let value: U256 = value.into(); + value.to_big_endian() } /// Revert opt code. It's inserted at the precompile addresses, to make them functional in EVM. diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index f59e5d44e..88b08a48d 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -157,7 +157,7 @@ where amount .try_into() .map_err(|_| DispatchError::Other("convert amount in local withdraw"))?, - ExistenceRequirement::AllowDeath + ExistenceRequirement::AllowDeath, )?; Ok(amount) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 7586617f3..6667c7617 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -3,10 +3,7 @@ use frame_support::{ pallet_prelude::{ InvalidTransaction, MaxEncodedLen, MaybeSerializeDeserialize, TransactionValidityError, }, - traits::{ - Currency, ExistenceRequirement, Get, Imbalance, OnUnbalanced, - WithdrawReasons, - }, + traits::{Currency, ExistenceRequirement, Get, Imbalance, OnUnbalanced, WithdrawReasons}, Parameter, }; use frame_system::Config as SysConfig; @@ -23,11 +20,11 @@ use sp_runtime::{ }; use sp_std::{fmt::Debug, marker::PhantomData, vec, vec::Vec}; +use pallet_evm::AccountIdOf as EVMAccountIdOf; use peaq_primitives_xcm::AssetId as PeaqAssetId; use zenlink_protocol::{ AssetBalance, AssetId as ZenlinkAssetId, Config as ZenProtConfig, ExportZenlink, }; -use pallet_evm::{AccountIdOf as EVMAccountIdOf}; use crate::{log, log_icon, log_internal}; @@ -136,16 +133,16 @@ where } // [TODO] Need to check... - fn can_withdraw_fee( + fn can_withdraw_fee( who: &::AccountId, _call: &::RuntimeCall, _dispatch_info: &DispatchInfoOf<::RuntimeCall>, - fee: Self::Balance, - _tip: Self::Balance, - ) -> Result<(), TransactionValidityError> { - if fee.is_zero() { - return Ok(()); - } + fee: Self::Balance, + _tip: Self::Balance, + ) -> Result<(), TransactionValidityError> { + if fee.is_zero() { + return Ok(()); + } // Check if user can withdraw in any valid currency. let currency_id = PCPC::ensure_can_withdraw(who, fee)?; let native_currency_id = PeaqAssetId::default().try_into().ok().unwrap(); @@ -158,8 +155,7 @@ where ); } Ok(()) - } - + } } /// Individual trait to handle payments in non-local currencies. The intention is to keep it as @@ -266,12 +262,12 @@ impl OnChargeEVMTransactionT for OnChargeEVMTransaction where T: pallet_evm::Config, C: Currency>, - C::PositiveImbalance: - Imbalance<>>::Balance, Opposite = C::NegativeImbalance>, - C::NegativeImbalance: - Imbalance<>>::Balance, Opposite = C::PositiveImbalance>, - OU: OnUnbalanced>, - U256: UniqueSaturatedInto<>>::Balance>, + C::PositiveImbalance: + Imbalance<>>::Balance, Opposite = C::NegativeImbalance>, + C::NegativeImbalance: + Imbalance<>>::Balance, Opposite = C::PositiveImbalance>, + OU: OnUnbalanced>, + U256: UniqueSaturatedInto<>>::Balance>, { type LiquidityInfo = Option>; @@ -285,7 +281,12 @@ where base_fee: U256, already_withdrawn: Self::LiquidityInfo, ) -> Self::LiquidityInfo { - as OnChargeEVMTransactionT>::correct_and_deposit_fee(who, corrected_fee, base_fee, already_withdrawn) + as OnChargeEVMTransactionT>::correct_and_deposit_fee( + who, + corrected_fee, + base_fee, + already_withdrawn, + ) } fn pay_priority_fee(tip: Self::LiquidityInfo) { diff --git a/runtime/common/src/wrapper.rs b/runtime/common/src/wrapper.rs index 82431c9d2..0ca4817ef 100644 --- a/runtime/common/src/wrapper.rs +++ b/runtime/common/src/wrapper.rs @@ -134,7 +134,7 @@ where asset_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance, - existense_requirement: ExistenceRequirement + existense_requirement: ExistenceRequirement, ) -> DispatchResult { if amount.is_zero() { return Ok(()); @@ -176,8 +176,15 @@ where } else { // We cannot slash the token because it didn't implemnt that... // If error happens, will return 0 - MultiCurrencies::burn_from(asset_id, who, amount, Preservation::Expendable, Precision::Exact, Fortitude::Polite) - .unwrap_or(Zero::zero()) + MultiCurrencies::burn_from( + asset_id, + who, + amount, + Preservation::Expendable, + Precision::Exact, + Fortitude::Polite, + ) + .unwrap_or(Zero::zero()) } } } @@ -222,7 +229,12 @@ where Currency::ensure_can_withdraw(who, amount, WithdrawReasons::all(), new_balance) } - fn transfer(from: &AccountId, to: &AccountId, amount: Self::Balance, existence_requirement: ExistenceRequirement) -> DispatchResult { + fn transfer( + from: &AccountId, + to: &AccountId, + amount: Self::Balance, + existence_requirement: ExistenceRequirement, + ) -> DispatchResult { log::debug!( "PeaqNativeCurrencyWrapper: transfer: from: {:?}, to: {:?}, amount: {:?}", from, @@ -241,9 +253,12 @@ where Ok(()) } - fn withdraw(who: &AccountId, amount: Self::Balance, existence_requirement: ExistenceRequirement) -> DispatchResult { - Currency::withdraw(who, amount, WithdrawReasons::all(), existence_requirement) - .map(|_| ()) + fn withdraw( + who: &AccountId, + amount: Self::Balance, + existence_requirement: ExistenceRequirement, + ) -> DispatchResult { + Currency::withdraw(who, amount, WithdrawReasons::all(), existence_requirement).map(|_| ()) } fn can_slash(who: &AccountId, amount: Self::Balance) -> bool { diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index d1509b6f3..712d434fc 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -36,7 +36,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::{traits::IdentityLookup, generic::Preamble}; +use sp_runtime::{generic::Preamble, traits::IdentityLookup}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -58,7 +58,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; +use sp_std::{borrow::Cow, marker::PhantomData, prelude::*, vec, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -636,7 +636,8 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -722,7 +723,8 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; + type StateRoot = + pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } diff --git a/runtime/krest/src/xcm_config.rs b/runtime/krest/src/xcm_config.rs index b511c45c7..c3a0fde07 100644 --- a/runtime/krest/src/xcm_config.rs +++ b/runtime/krest/src/xcm_config.rs @@ -4,13 +4,15 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; +use crate::{NegativeImbalance, PeaqAssetLocationIdConverter, Treasury}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, + traits::{ + fungible::Credit, fungibles, Contains, Everything, Imbalance, Nothing, OnUnbalanced, + TransformOrigin, + }, }; -use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -33,10 +35,10 @@ use xcm_builder::{ AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, SendXcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::{traits::JustTry, XcmExecutor}; diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index cc6f21628..71fc81815 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -38,9 +38,9 @@ use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use sp_runtime::{generic::Preamble, traits::IdentityLookup}; use frame_support::traits::{ - tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, - EqualPrivilegeOnly, LinearStoragePrice, - }; + tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, + EqualPrivilegeOnly, LinearStoragePrice, +}; use smallvec::smallvec; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -123,7 +123,7 @@ use runtime_common::{ LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, - TransactionByteFee, CENTS, DOLLARS, MILLICENTS, MAX_POV_SIZE + TransactionByteFee, CENTS, DOLLARS, MAX_POV_SIZE, MILLICENTS, }; /// An index to a block. @@ -654,7 +654,8 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); diff --git a/runtime/peaq-dev/src/xcm_config.rs b/runtime/peaq-dev/src/xcm_config.rs index 672971ba2..0b5839de9 100644 --- a/runtime/peaq-dev/src/xcm_config.rs +++ b/runtime/peaq-dev/src/xcm_config.rs @@ -4,13 +4,15 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; +use crate::{NegativeImbalance, PeaqAssetLocationIdConverter, Treasury}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, + traits::{ + fungible::Credit, fungibles, Contains, Everything, Imbalance, Nothing, OnUnbalanced, + TransformOrigin, + }, }; -use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -27,16 +29,19 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; +use xcm::{ + latest::{prelude::*, Asset}, + v4::NetworkId as OldNetworkId, +}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, SendXcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::{traits::JustTry, XcmExecutor}; diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 60d5fd720..ed7e1eef7 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -36,7 +36,7 @@ use peaq_pallet_rbac::{ }; use peaq_pallet_storage::traits::Storage; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; -use sp_runtime::{traits::IdentityLookup, generic::Preamble}; +use sp_runtime::{generic::Preamble, traits::IdentityLookup}; use frame_support::traits::{ tokens::{fungible::HoldConsideration, PayFromAccount, UnityAssetBalanceConversion}, @@ -59,7 +59,7 @@ use sp_runtime::{ }, ApplyExtrinsicResult, FixedPointNumber, Perbill, Percent, Permill, }; -use sp_std::{marker::PhantomData, prelude::*, vec, vec::Vec, borrow::Cow}; +use sp_std::{borrow::Cow, marker::PhantomData, prelude::*, vec, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -123,7 +123,7 @@ use runtime_common::{ LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, - TransactionByteFee, CENTS, DOLLARS, MILLICENTS, MAX_POV_SIZE + TransactionByteFee, CENTS, DOLLARS, MAX_POV_SIZE, MILLICENTS, }; /// An index to a block. @@ -675,7 +675,8 @@ impl> FindAuthor for FindAuthorTruncated { I: 'a + IntoIterator, { if let Some(author_index) = F::find_author(digests) { - let authority_id = pallet_aura::Authorities::::get()[author_index as usize].clone(); + let authority_id = + pallet_aura::Authorities::::get()[author_index as usize].clone(); let encoded = authority_id.encode(); let bytes: [u8; 32] = encoded.try_into().expect("Encoded authority_id should be exactly 32 bytes"); @@ -783,7 +784,8 @@ parameter_types! { impl pallet_ethereum::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type StateRoot = pallet_ethereum::IntermediateStateRoot<::Version>; + type StateRoot = + pallet_ethereum::IntermediateStateRoot<::Version>; type PostLogContent = PostBlockAndTxnHashes; type ExtraDataLength = ConstU32<30>; } @@ -2381,4 +2383,4 @@ impl EVMAddressToAssetId for Runtime { impl cumulus_pallet_weight_reclaim::Config for Runtime { type WeightInfo = (); -} \ No newline at end of file +} diff --git a/runtime/peaq/src/xcm_config.rs b/runtime/peaq/src/xcm_config.rs index 4ae23360f..49c071448 100644 --- a/runtime/peaq/src/xcm_config.rs +++ b/runtime/peaq/src/xcm_config.rs @@ -4,13 +4,15 @@ use super::{ RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, StorageAssetId, WeightToFee, XcAssetConfig, XcmpQueue, }; -use crate::{PeaqAssetLocationIdConverter, Treasury, NegativeImbalance}; +use crate::{NegativeImbalance, PeaqAssetLocationIdConverter, Treasury}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{fungibles, Contains, Everything, Nothing, TransformOrigin, OnUnbalanced, fungible::Credit}, + traits::{ + fungible::Credit, fungibles, Contains, Everything, Imbalance, Nothing, OnUnbalanced, + TransformOrigin, + }, }; -use frame_support::traits::Imbalance; use frame_system::EnsureRoot; use orml_traits::location::{RelativeReserveProvider, Reserve}; use orml_xcm_support::{DisabledParachainFee, MultiNativeAsset}; @@ -27,16 +29,19 @@ use sp_runtime::{ Perbill, }; use sp_weights::Weight; -use xcm::{latest::{prelude::*, Asset}, v4::NetworkId as OldNetworkId}; +use xcm::{ + latest::{prelude::*, Asset}, + v4::NetworkId as OldNetworkId, +}; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeRevenue, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, - XcmFeeManagerFromComponents, SendXcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::{traits::JustTry, XcmExecutor}; From 69580a1d90b3c2964a2f813544fd5701faf726a0 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 7 Nov 2025 15:17:30 +0500 Subject: [PATCH 70/98] cargo fmt --- client/rpc/debug/src/lib.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index 0b11aa575..799bf338f 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -708,12 +708,11 @@ where // Pre-london update, legacy transactions. match transaction { #[allow(deprecated)] - ethereum::TransactionV2::Legacy(tx) => - api.trace_transaction_before_version_4( - parent_block_hash, - exts, - tx, - ), + ethereum::TransactionV2::Legacy(tx) => api.trace_transaction_before_version_4( + parent_block_hash, + exts, + tx, + ), _ => return Err(internal_err( "Bug: pre-london runtime expects legacy transactions" From 6800a326cfcb81e2046cc81c9602dfc388fadecf Mon Sep 17 00:00:00 2001 From: jaypan Date: Sun, 9 Nov 2025 06:56:19 +0100 Subject: [PATCH 71/98] Fix the cumulus-pallet-weight-reclaim error --- Cargo.lock | 1 + node/src/parachain/service.rs | 3 ++- runtime/peaq-dev/Cargo.toml | 1 + runtime/peaq/Cargo.toml | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index ea35bce68..966e3d3da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2347,6 +2347,7 @@ dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", "docify", + "frame-benchmarking", "frame-support", "frame-system", "log", diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index ec19377b2..e021119bc 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -198,10 +198,11 @@ where let executor = sc_service::new_wasm_executor(&config.executor); let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::( + sc_service::new_full_parts_record_import::( config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), executor, + true )?; let client = Arc::new(client); diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 0db96602d..52beb144f 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -253,6 +253,7 @@ std = [ "cumulus-primitives-aura/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-aura-ext/std", + "cumulus-pallet-weight-reclaim/std", "parachain-info/std", "parachains-common/std", diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index c4ed49c58..3d62bb022 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -248,6 +248,7 @@ std = [ "cumulus-primitives-aura/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-aura-ext/std", + "cumulus-pallet-weight-reclaim/std", "parachain-info/std", "parachains-common/std", From 826856338b7f29cddf323dc9945c252b7a58ffea Mon Sep 17 00:00:00 2001 From: jaypan Date: Fri, 7 Nov 2025 11:26:05 +0100 Subject: [PATCH 72/98] Enable Council governance for treasury spending --- runtime/krest/src/lib.rs | 14 ++++++++------ runtime/peaq-dev/src/lib.rs | 23 ++++++++--------------- runtime/peaq/src/lib.rs | 24 +++++++++--------------- 3 files changed, 25 insertions(+), 36 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 712d434fc..baf394427 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -11,7 +11,7 @@ use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use fp_rpc::TransactionStatus; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureRootWithSuccess, EnsureSigned, + EnsureRoot, EnsureSigned, EnsureWithSuccess, }; use sp_core::crypto::AccountId32; @@ -600,20 +600,22 @@ parameter_types! { pub const MaxBalance: Balance = Balance::MAX; } +type RootOrTreasuryCouncilOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - type RejectOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionMoreThan, - >; + type RejectOrigin = RootOrTreasuryCouncilOrigin; type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); type SpendFunds = (); type WeightInfo = pallet_treasury::weights::SubstrateWeight; type MaxApprovals = MaxApprovals; - type SpendOrigin = EnsureRootWithSuccess; //EnsureWithSuccess, AccountId, MaxBalance>; + type SpendOrigin = EnsureWithSuccess; type RuntimeEvent = RuntimeEvent; type AssetKind = (); diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 71fc81815..177a57bf9 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -10,7 +10,7 @@ use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use fp_rpc::TransactionStatus; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureRootWithSuccess, EnsureSigned, + EnsureRoot, EnsureSigned, EnsureWithSuccess, }; use address_unification::{CallKillEVMLinkAccount, EVMAddressMapping}; @@ -609,29 +609,22 @@ parameter_types! { pub const MaxBalance: Balance = Balance::MAX; } +type RootOrTreasuryCouncilOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - // type ApproveOrigin = EitherOfDiverse< - // EnsureRoot, - // pallet_collective::EnsureProportionAtLeast, - // >; - type RejectOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionMoreThan, - >; - //type RuntimeEvent = RuntimeEvent; - // type OnSlash = (); - // type ProposalBond = ProposalBond; - // type ProposalBondMinimum = ProposalBondMinimum; - // type ProposalBondMaximum = (); + type RejectOrigin = RootOrTreasuryCouncilOrigin; type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); type SpendFunds = (); type WeightInfo = pallet_treasury::weights::SubstrateWeight; type MaxApprovals = MaxApprovals; - type SpendOrigin = EnsureRootWithSuccess; //EnsureWithSuccess, AccountId, MaxBalance>; + type SpendOrigin = EnsureWithSuccess; type RuntimeEvent = RuntimeEvent; type AssetKind = (); diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index ed7e1eef7..2add634b2 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -10,7 +10,7 @@ use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use fp_rpc::TransactionStatus; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureRoot, EnsureRootWithSuccess, EnsureSigned, + EnsureRoot, EnsureSigned, EnsureWithSuccess, }; use sp_core::crypto::AccountId32; @@ -630,29 +630,23 @@ parameter_types! { pub const MaxBalance: Balance = Balance::MAX; } +type RootOrTreasuryCouncilOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + + impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; - // type ApproveOrigin = EitherOfDiverse< - // EnsureRoot, - // pallet_collective::EnsureProportionAtLeast, - // >; - type RejectOrigin = EitherOfDiverse< - EnsureRoot, - pallet_collective::EnsureProportionMoreThan, - >; - //type RuntimeEvent = RuntimeEvent; - // type OnSlash = (); - // type ProposalBond = ProposalBond; - // type ProposalBondMinimum = ProposalBondMinimum; - // type ProposalBondMaximum = (); + type RejectOrigin = RootOrTreasuryCouncilOrigin; type SpendPeriod = SpendPeriod; type Burn = Burn; type BurnDestination = (); type SpendFunds = (); type WeightInfo = pallet_treasury::weights::SubstrateWeight; type MaxApprovals = MaxApprovals; - type SpendOrigin = EnsureRootWithSuccess; //EnsureWithSuccess, AccountId, MaxBalance>; + type SpendOrigin = EnsureWithSuccess; type RuntimeEvent = RuntimeEvent; type AssetKind = (); From bcb682d02b9921d0fab0d55eb9dca45946cf0470 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 10 Nov 2025 15:45:27 +0500 Subject: [PATCH 73/98] cargo fmt fixe --- client/evm-tracing/src/formatters/blockscout.rs | 2 +- client/evm-tracing/src/formatters/call_tracer.rs | 4 +--- client/evm-tracing/src/formatters/trace_filter.rs | 4 +--- client/rpc/debug/src/lib.rs | 6 +++--- node/src/parachain/service.rs | 2 +- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/client/evm-tracing/src/formatters/blockscout.rs b/client/evm-tracing/src/formatters/blockscout.rs index 25c5d570b..fa714ad41 100644 --- a/client/evm-tracing/src/formatters/blockscout.rs +++ b/client/evm-tracing/src/formatters/blockscout.rs @@ -35,7 +35,7 @@ impl super::ResponseFormatter for Formatter { fn format(listener: Listener) -> Option { if let Some(entry) = listener.entries.last() { return Some(TransactionTrace::CallList( - entry.iter().map(|(_, value)| Call::Blockscout(value.clone())).collect(), + entry.values().map(|value| Call::Blockscout(value.clone())).collect(), )); } None diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index 5c7679413..1112f64ee 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -48,9 +48,7 @@ impl super::ResponseFormatter for Formatter { ); continue; } - let mut result: Vec = entry - .iter() - .map(|(_, it)| { + let mut result: Vec = entry.values().map(|it| { let from = it.from; let trace_address = it.trace_address.clone(); let value = it.value; diff --git a/client/evm-tracing/src/formatters/trace_filter.rs b/client/evm-tracing/src/formatters/trace_filter.rs index e96bb9f83..2a34a8b1d 100644 --- a/client/evm-tracing/src/formatters/trace_filter.rs +++ b/client/evm-tracing/src/formatters/trace_filter.rs @@ -45,9 +45,7 @@ impl super::ResponseFormatter for Formatter { ); continue; } - let mut tx_traces: Vec<_> = entry - .iter() - .map(|(_, trace)| match trace.inner.clone() { + let mut tx_traces: Vec<_> = entry.values().map(|trace| match trace.inner.clone() { CallInner::Call { input, to, res, call_type } => TransactionTrace { action: TransactionTraceAction::Call { call_type, diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index 799bf338f..98c097d94 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -502,7 +502,7 @@ where match trace_type { single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); - proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); + proxy.with_log = tracer_config.is_some_and(|cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { @@ -754,7 +754,7 @@ where }, single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); - proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); + proxy.with_log = tracer_config.is_some_and(|cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { @@ -950,7 +950,7 @@ where }, single::TraceType::CallList => { let mut proxy = peaq_client_evm_tracing::listeners::CallList::default(); - proxy.with_log = tracer_config.map_or(false, |cfg| cfg.with_log); + proxy.with_log = tracer_config.is_some_and(|cfg| cfg.with_log); proxy.using(f)?; proxy.finish_transaction(); let response = match tracer_input { diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index e021119bc..e95fca17b 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -271,7 +271,7 @@ async fn build_relay_chain_interface( telemetry_worker_handle: Option, task_manager: &mut TaskManager, collator_options: CollatorOptions, -) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { +) -> RelayChainResult<(Arc, Option)> { if let cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) = collator_options.relay_chain_mode { From d8a1b4afbb3d8f73af7d95b2566169c18cf92415 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 02:35:06 +0500 Subject: [PATCH 74/98] fixed runtime-benchmarking feature --- node/src/command.rs | 4 ++-- runtime/common/Cargo.toml | 10 ++++++++++ runtime/common/src/payment.rs | 8 ++++++++ runtime/krest/Cargo.toml | 3 ++- runtime/peaq-dev/Cargo.toml | 3 ++- runtime/peaq/Cargo.toml | 3 ++- 6 files changed, 26 insertions(+), 5 deletions(-) diff --git a/node/src/command.rs b/node/src/command.rs index e3055e3f4..6f7cd2825 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -14,7 +14,7 @@ use sc_service::{ }; use sp_core::hexdisplay::HexDisplay; use sp_runtime::{ - traits::{AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, Zero}, + traits::{AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, HashingFor, Zero}, StateVersion, }; use std::io::Write; @@ -321,7 +321,7 @@ pub fn run() -> sc_cli::Result<()> { BenchmarkCmd::Pallet(cmd) => { with_runtime_or_err!(chain_spec, { runner.sync_run(|config| { - cmd.run::(config) + cmd.run_with_spec::, parachain::ExtHostFunctions>(Some(config.chain_spec)) }) }) }, diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 784c2c4be..b423d9581 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -57,3 +57,13 @@ std = [ "zenlink-protocol/std", "xc-asset-config/std", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "pallet-block-reward/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "xc-asset-config/runtime-benchmarks", + + "xcm-builder/runtime-benchmarks", +] \ No newline at end of file diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 6667c7617..42bd1c367 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -156,6 +156,14 @@ where } Ok(()) } + + // These two are unused but must satisfy the trait impl + #[cfg(feature = "runtime-benchmarks")] + fn endow_account(_who: &::AccountId, _amount: Self::Balance) {} + #[cfg(feature = "runtime-benchmarks")] + fn minimum_balance() -> Self::Balance { + Self::Balance::zero() + } } /// Individual trait to handle payments in non-local currencies. The intention is to keep it as diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index dd266ef86..c81b97e09 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -174,7 +174,8 @@ runtime-benchmarks = [ "peaq-pallet-storage/runtime-benchmarks", "inflation-manager/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks" + "pallet-preimage/runtime-benchmarks", + "runtime-common/runtime-benchmarks", ] std = [ diff --git a/runtime/peaq-dev/Cargo.toml b/runtime/peaq-dev/Cargo.toml index 52beb144f..0558e11e5 100644 --- a/runtime/peaq-dev/Cargo.toml +++ b/runtime/peaq-dev/Cargo.toml @@ -176,7 +176,8 @@ runtime-benchmarks = [ "peaq-pallet-mor/runtime-benchmarks", "inflation-manager/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks" + "pallet-preimage/runtime-benchmarks", + "runtime-common/runtime-benchmarks", ] std = [ diff --git a/runtime/peaq/Cargo.toml b/runtime/peaq/Cargo.toml index 3d62bb022..9b38660e7 100644 --- a/runtime/peaq/Cargo.toml +++ b/runtime/peaq/Cargo.toml @@ -173,7 +173,8 @@ runtime-benchmarks = [ "peaq-pallet-storage/runtime-benchmarks", "inflation-manager/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", - "pallet-preimage/runtime-benchmarks" + "pallet-preimage/runtime-benchmarks", + "runtime-common/runtime-benchmarks", ] std = [ From c09affb488ada96175360d644b4173a1162ab4b5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 03:14:13 +0500 Subject: [PATCH 75/98] Updated comment --- primitives/rpc/evm-tracing-events/src/evm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primitives/rpc/evm-tracing-events/src/evm.rs b/primitives/rpc/evm-tracing-events/src/evm.rs index 48aac712c..e9cc93921 100644 --- a/primitives/rpc/evm-tracing-events/src/evm.rs +++ b/primitives/rpc/evm-tracing-events/src/evm.rs @@ -215,7 +215,7 @@ impl<'a> From> for EvmEvent { is_static, context: context.clone().into(), }, - // [TODO] Need to check... + // No such variant as Log on evm::tracing::Event // evm::tracing::Event::Log { // address, // topics, From 4022eb57e0283f589c9351a29aa07e938358ee78 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 03:15:20 +0500 Subject: [PATCH 76/98] cargo fmt --- client/evm-tracing/src/formatters/call_tracer.rs | 4 +++- client/evm-tracing/src/formatters/trace_filter.rs | 4 +++- node/src/command.rs | 8 ++++++-- node/src/parachain/service.rs | 2 +- runtime/peaq/src/lib.rs | 1 - 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/client/evm-tracing/src/formatters/call_tracer.rs b/client/evm-tracing/src/formatters/call_tracer.rs index 1112f64ee..586f33825 100644 --- a/client/evm-tracing/src/formatters/call_tracer.rs +++ b/client/evm-tracing/src/formatters/call_tracer.rs @@ -48,7 +48,9 @@ impl super::ResponseFormatter for Formatter { ); continue; } - let mut result: Vec = entry.values().map(|it| { + let mut result: Vec = entry + .values() + .map(|it| { let from = it.from; let trace_address = it.trace_address.clone(); let value = it.value; diff --git a/client/evm-tracing/src/formatters/trace_filter.rs b/client/evm-tracing/src/formatters/trace_filter.rs index 2a34a8b1d..cda30c6f8 100644 --- a/client/evm-tracing/src/formatters/trace_filter.rs +++ b/client/evm-tracing/src/formatters/trace_filter.rs @@ -45,7 +45,9 @@ impl super::ResponseFormatter for Formatter { ); continue; } - let mut tx_traces: Vec<_> = entry.values().map(|trace| match trace.inner.clone() { + let mut tx_traces: Vec<_> = entry + .values() + .map(|trace| match trace.inner.clone() { CallInner::Call { input, to, res, call_type } => TransactionTrace { action: TransactionTraceAction::Call { call_type, diff --git a/node/src/command.rs b/node/src/command.rs index 6f7cd2825..cf2665848 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -14,7 +14,9 @@ use sc_service::{ }; use sp_core::hexdisplay::HexDisplay; use sp_runtime::{ - traits::{AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, HashingFor, Zero}, + traits::{ + AccountIdConversion, Block as BlockT, Hash as HashT, HashingFor, Header as HeaderT, Zero, + }, StateVersion, }; use std::io::Write; @@ -321,7 +323,9 @@ pub fn run() -> sc_cli::Result<()> { BenchmarkCmd::Pallet(cmd) => { with_runtime_or_err!(chain_spec, { runner.sync_run(|config| { - cmd.run_with_spec::, parachain::ExtHostFunctions>(Some(config.chain_spec)) + cmd.run_with_spec::, parachain::ExtHostFunctions>( + Some(config.chain_spec), + ) }) }) }, diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index e95fca17b..20498b28c 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -202,7 +202,7 @@ where config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), executor, - true + true, )?; let client = Arc::new(client); diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 2add634b2..363f1bfde 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -635,7 +635,6 @@ type RootOrTreasuryCouncilOrigin = EitherOfDiverse< pallet_collective::EnsureProportionMoreThan, >; - impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; From a7d53fd47f332b6ab6e884003efbce77381a1b8f Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 14:08:47 +0500 Subject: [PATCH 77/98] removed benchmark feature warnings --- runtime/krest/src/lib.rs | 4 ++-- runtime/peaq-dev/src/lib.rs | 4 ++-- runtime/peaq/src/lib.rs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index baf394427..c1893d4bb 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -2175,7 +2175,7 @@ impl_runtime_apis! { Vec, Vec, ) { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkList}; + use frame_benchmarking::{baseline, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; @@ -2191,7 +2191,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch}; + use frame_benchmarking::{baseline, BenchmarkBatch}; use frame_support::traits::TrackedStorageKey; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 177a57bf9..995d86e8d 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -2199,7 +2199,7 @@ impl_runtime_apis! { Vec, Vec, ) { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkList}; + use frame_benchmarking::{baseline, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; @@ -2215,7 +2215,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch}; + use frame_benchmarking::{baseline, BenchmarkBatch}; use frame_support::traits::TrackedStorageKey; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 363f1bfde..8b0f69eee 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -2215,7 +2215,7 @@ impl_runtime_apis! { Vec, Vec, ) { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkList}; + use frame_benchmarking::{baseline, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; @@ -2231,7 +2231,7 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch}; + use frame_benchmarking::{baseline, BenchmarkBatch}; use frame_support::traits::TrackedStorageKey; use frame_system_benchmarking::Pallet as SystemBench; use baseline::Pallet as BaselineBench; From e4f2c9ff4e684aa36fec5069e9365eae57f9d0fa Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 14:20:50 +0500 Subject: [PATCH 78/98] fixed imports for benchmarking, used attribute macros to suppress false positive warnings --- client/evm-tracing/src/types/single.rs | 1 + client/rpc/debug/src/lib.rs | 2 ++ node/src/command.rs | 4 ++-- primitives/rpc/debug/src/lib.rs | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client/evm-tracing/src/types/single.rs b/client/evm-tracing/src/types/single.rs index f918feb5d..854667773 100644 --- a/client/evm-tracing/src/types/single.rs +++ b/client/evm-tracing/src/types/single.rs @@ -44,6 +44,7 @@ pub enum TraceType { } /// Single transaction trace. +#[allow(clippy::large_enum_variant)] #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, Serialize)] #[serde(rename_all = "camelCase", untagged)] pub enum TransactionTrace { diff --git a/client/rpc/debug/src/lib.rs b/client/rpc/debug/src/lib.rs index 98c097d94..6757d7fb3 100644 --- a/client/rpc/debug/src/lib.rs +++ b/client/rpc/debug/src/lib.rs @@ -46,12 +46,14 @@ use sp_runtime::{ }; use std::{collections::BTreeMap, future::Future, marker::PhantomData, sync::Arc}; +#[allow(clippy::large_enum_variant)] pub enum RequesterInput { Call((RequestBlockId, TraceCallParams)), Transaction(H256), Block(RequestBlockId), } +#[allow(clippy::large_enum_variant)] pub enum Response { Single(single::TransactionTrace), Block(Vec), diff --git a/node/src/command.rs b/node/src/command.rs index cf2665848..8d0589ab5 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -15,7 +15,7 @@ use sc_service::{ use sp_core::hexdisplay::HexDisplay; use sp_runtime::{ traits::{ - AccountIdConversion, Block as BlockT, Hash as HashT, HashingFor, Header as HeaderT, Zero, + AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, Zero, }, StateVersion, }; @@ -323,7 +323,7 @@ pub fn run() -> sc_cli::Result<()> { BenchmarkCmd::Pallet(cmd) => { with_runtime_or_err!(chain_spec, { runner.sync_run(|config| { - cmd.run_with_spec::, parachain::ExtHostFunctions>( + cmd.run_with_spec::, parachain::ExtHostFunctions>( Some(config.chain_spec), ) }) diff --git a/primitives/rpc/debug/src/lib.rs b/primitives/rpc/debug/src/lib.rs index c6613b2c2..1ebbc214e 100644 --- a/primitives/rpc/debug/src/lib.rs +++ b/primitives/rpc/debug/src/lib.rs @@ -62,6 +62,7 @@ sp_api::decl_runtime_apis! { header: &Block::Header, ) -> Result<(), sp_runtime::DispatchError>; + #[allow(clippy::too_many_arguments)] fn trace_call( header: &Block::Header, from: H160, From 4ff4ba29bc6c5e45c3cc654e69a05717f5f21452 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 16:48:45 +0500 Subject: [PATCH 79/98] removed remnants of manual seal --- node/src/parachain/service.rs | 1 - node/src/rpc.rs | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index 20498b28c..b53a116e8 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -521,7 +521,6 @@ where fc_db::Backend::KeyValue(b) => b.clone(), }, backend: backend.clone(), - command_sink: None, max_past_logs, fee_history_limit, fee_history_cache: fee_history_cache.clone(), diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 79e65e88f..115763362 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -13,7 +13,7 @@ use sc_client_api::{ client::BlockchainEvents, UsageProvider, }; -use sc_consensus_manual_seal::rpc::EngineCommand; + use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc::SubscriptionTaskExecutor; @@ -83,8 +83,6 @@ pub struct FullDeps { pub frontier_backend: Arc>, /// Backend. pub backend: Arc, - /// Manual seal command sink - pub command_sink: Option>>, /// Maximum number of logs in a query. pub max_past_logs: u32, /// Maximum fee history cache size. @@ -160,7 +158,6 @@ where sync, filter_pool, ethapi_cmd, - command_sink: _, frontier_backend, backend: _, max_past_logs, From 311a01b22d7b8743cf3fa7f7c08eec2e4f795d07 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 17:17:40 +0500 Subject: [PATCH 80/98] warn usage of relay_chain_rpc_urls --- node/src/command.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/node/src/command.rs b/node/src/command.rs index 8d0589ab5..6cdaa49aa 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -461,6 +461,14 @@ pub fn run() -> sc_cli::Result<()> { info!("Parachain Account: {}", parachain_account); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); + if !rpc_config.relay_chain_rpc_urls.is_empty() && !cli.relaychain_args.is_empty() { + log::warn!( + "Detected relay chain node arguments together with \ + --relay-chain-rpc-url. This command starts a minimal Polkadot node that only \ + uses a network-related subset of all relay chain CLI options." + ); + } + with_runtime_or_err!(config.chain_spec, { info!("{} network start", config.chain_spec.id()); start_node::( From 6c701a99be9d8eb38d53a9f6aa43cf78542441be Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 17:39:57 +0500 Subject: [PATCH 81/98] removed unused CLI arg xcm_senders --- node/src/parachain/service.rs | 1 - node/src/rpc.rs | 6 ------ 2 files changed, 7 deletions(-) diff --git a/node/src/parachain/service.rs b/node/src/parachain/service.rs index b53a116e8..88049293a 100644 --- a/node/src/parachain/service.rs +++ b/node/src/parachain/service.rs @@ -524,7 +524,6 @@ where max_past_logs, fee_history_limit, fee_history_cache: fee_history_cache.clone(), - xcm_senders: None, overrides: overrides.clone(), block_data_cache: block_data_cache.clone(), forced_parent_hashes: None, diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 115763362..b241c111c 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -1,6 +1,5 @@ //! A collection of node-specific RPC methods. -use cumulus_primitives_core::ParaId; use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; use fc_rpc::{EthBlockDataCacheTask, StorageOverride, TxPool, TxPoolApiServer}; @@ -59,8 +58,6 @@ pub struct SpawnTasksParams<'a, B: BlockT, C, BE> { pub fee_history_cache: FeeHistoryCache, } -pub type XcmSenders = Option<(flume::Sender>, flume::Sender<(ParaId, Vec)>)>; - /// Full client dependencies. pub struct FullDeps { /// The client instance to use. @@ -89,8 +86,6 @@ pub struct FullDeps { pub fee_history_limit: u64, /// Fee history cache. pub fee_history_cache: FeeHistoryCache, - /// Channels for manual xcm messages (downward, hrmp) - pub xcm_senders: XcmSenders, /// Ethereum data access overrides. pub overrides: Arc>, /// Cache for Ethereum block data. @@ -163,7 +158,6 @@ where max_past_logs, fee_history_limit, fee_history_cache, - xcm_senders: _, overrides, block_data_cache, forced_parent_hashes, From c8637be20075d896ed37326f9205537b056d1d86 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 21:06:31 +0500 Subject: [PATCH 82/98] cargo fmt --- node/src/command.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/node/src/command.rs b/node/src/command.rs index 6cdaa49aa..752057fe5 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -14,9 +14,7 @@ use sc_service::{ }; use sp_core::hexdisplay::HexDisplay; use sp_runtime::{ - traits::{ - AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, Zero, - }, + traits::{AccountIdConversion, Block as BlockT, Hash as HashT, Header as HeaderT, Zero}, StateVersion, }; use std::io::Write; From 1eee2e80c6b69fab9363c8e237a813dca4c53036 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 11 Nov 2025 21:47:56 +0500 Subject: [PATCH 83/98] implemented OnChargeTransaction interface fully for benchmarking --- runtime/common/src/payment.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 42bd1c367..2420f68e9 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -156,13 +156,15 @@ where } Ok(()) } - - // These two are unused but must satisfy the trait impl + #[cfg(feature = "runtime-benchmarks")] - fn endow_account(_who: &::AccountId, _amount: Self::Balance) {} + fn endow_account(who: &::AccountId, amount: Self::Balance) { + let _ = C::deposit_creating(who, amount); + } + #[cfg(feature = "runtime-benchmarks")] fn minimum_balance() -> Self::Balance { - Self::Balance::zero() + C::minimum_balance() } } From 9a1e7b17a65b4fb23ad5f87f77bda3449bd2576b Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 12 Nov 2025 17:38:27 +0500 Subject: [PATCH 84/98] Update MAX_POV_SIZE, NormalDispatchRatio and impl pallet weight reclaim on Krest --- Cargo.lock | 1 + runtime/krest/Cargo.toml | 1 + runtime/krest/src/lib.rs | 56 +++++++++++++++++++++++----------------- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 966e3d3da..1fa942cef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9445,6 +9445,7 @@ dependencies = [ "address-unification", "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", + "cumulus-pallet-weight-reclaim", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index c81b97e09..6ec600b62 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -80,6 +80,7 @@ cumulus-primitives-timestamp = { workspace = true, default-features = false } cumulus-primitives-aura = { workspace = true, default-features = false } cumulus-pallet-parachain-system = { workspace = true, default-features = false } cumulus-pallet-aura-ext = { workspace = true, default-features = false } +cumulus-pallet-weight-reclaim = { workspace = true, default-features = false } parachain-info = { workspace = true, default-features = false } parachains-common = { workspace = true, default-features = false } polkadot-parachain = { workspace = true, default-features = false } diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index c1893d4bb..0d8f57572 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -118,12 +118,7 @@ use peaq_primitives_xcm::EVMAddressToAssetId; pub use precompiles::EVMAssetPrefix; -use runtime_common::{ - LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, - PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, - PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, - TransactionByteFee, CENTS, DOLLARS, MILLICENTS, -}; +use runtime_common::{LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, TransactionByteFee, CENTS, DOLLARS, MAX_POV_SIZE, MILLICENTS}; /// An index to a block. type BlockNumber = peaq_primitives_xcm::BlockNumber; @@ -228,13 +223,11 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by /// `Operational` extrinsics. -const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( - WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), - cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, -); +const MAXIMUM_BLOCK_WEIGHT: Weight = + Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2_u64), MAX_POV_SIZE as u64); /// Base Deposit for occupying storage - 0.002 KREST const STORAGE_DEPOSIT_BASE: Balance = 2 * CENTS / 10; @@ -376,7 +369,13 @@ parameter_types! { // The lazy deletion runs inside on_initialize. pub DeletionWeightLimit: Weight = AVERAGE_ON_INITIALIZE_RATIO * RuntimeBlockWeights::get().max_block; pub const DeletionQueueDepth: u32 = 128; - pub Schedule: pallet_contracts::Schedule = Default::default(); + pub Schedule: pallet_contracts::Schedule = pallet_contracts::Schedule { + limits: pallet_contracts::Limits { + payload_len: 12 * 1024, // Reduced from 16KB to 12KB to meet storage limit with 90% dispatch ratio + ..Default::default() + }, + ..Default::default() + }; pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); // TODO: re-vist to make sure values are appropriate pub const MaxDelegateDependencies: u32 = 32; @@ -1162,17 +1161,22 @@ construct_runtime!( ); /// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckNonZeroSender, - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, - frame_metadata_hash_extension::CheckMetadataHash, -); +pub type SignedExtra = cumulus_pallet_weight_reclaim::StorageWeightReclaim< + Runtime, + ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, + frame_metadata_hash_extension::CheckMetadataHash, + ), +>; + + type EventRecord = frame_system::EventRecord< ::RuntimeEvent, ::Hash, @@ -1384,7 +1388,7 @@ impl_runtime_apis! { Preamble::Signed(_, _, signed_extra) => { // Yuck, this depends on the index of ChargeTransactionPayment in SignedExtra // Get the 7th item from the tuple - let charge_transaction_payment = &signed_extra.7; + let charge_transaction_payment = &signed_extra.0.7; charge_transaction_payment.tip() }, Preamble::General(_, _) => 0, @@ -2333,3 +2337,7 @@ impl EVMAddressToAssetId for Runtime { Some(AssetIdToEVMAddress::::convert(asset_id)) } } + +impl cumulus_pallet_weight_reclaim::Config for Runtime { + type WeightInfo = (); +} From a91c746c042ca03ee4f6295a4313d53abcdb2260 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 12 Nov 2025 17:39:14 +0500 Subject: [PATCH 85/98] Use nightly fmt fork workflow --- .github/workflows/pr-check.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index f0137a88a..f9f022d3c 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -22,9 +22,12 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 1 - + + - name: Install nightly toolchain + run: rustup toolchain install nightly --component rustfmt + - name: "[Check] cargo fmt" - run: cargo fmt --check + run: cargo +nightly fmt --check test-and-clippy: runs-on: ubuntu-latest From 0ba68289574e1c4642d97a4bab23c2df135a9b7d Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 12 Nov 2025 17:43:05 +0500 Subject: [PATCH 86/98] cargo fmt --- runtime/common/src/payment.rs | 4 ++-- runtime/krest/src/lib.rs | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/runtime/common/src/payment.rs b/runtime/common/src/payment.rs index 2420f68e9..43773b06e 100644 --- a/runtime/common/src/payment.rs +++ b/runtime/common/src/payment.rs @@ -156,12 +156,12 @@ where } Ok(()) } - + #[cfg(feature = "runtime-benchmarks")] fn endow_account(who: &::AccountId, amount: Self::Balance) { let _ = C::deposit_creating(who, amount); } - + #[cfg(feature = "runtime-benchmarks")] fn minimum_balance() -> Self::Balance { C::minimum_balance() diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 0d8f57572..987584be2 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -118,7 +118,12 @@ use peaq_primitives_xcm::EVMAddressToAssetId; pub use precompiles::EVMAssetPrefix; -use runtime_common::{LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, TransactionByteFee, CENTS, DOLLARS, MAX_POV_SIZE, MILLICENTS}; +use runtime_common::{ + LocalAssetAdaptor, OnChargeEVMTransaction, OperationalFeeMultiplier, + PeaqAssetZenlinkLpGenerate, PeaqMultiCurrenciesOnChargeTransaction, + PeaqMultiCurrenciesPaymentConvert, PeaqMultiCurrenciesWrapper, PeaqNativeCurrencyWrapper, + TransactionByteFee, CENTS, DOLLARS, MAX_POV_SIZE, MILLICENTS, +}; /// An index to a block. type BlockNumber = peaq_primitives_xcm::BlockNumber; @@ -1176,7 +1181,6 @@ pub type SignedExtra = cumulus_pallet_weight_reclaim::StorageWeightReclaim< ), >; - type EventRecord = frame_system::EventRecord< ::RuntimeEvent, ::Hash, From a2b409968e75ea02bbecc117f16414281f9723cf Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 12 Nov 2025 18:10:36 +0500 Subject: [PATCH 87/98] Fix std leak --- runtime/krest/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/krest/Cargo.toml b/runtime/krest/Cargo.toml index 6ec600b62..23a67269d 100644 --- a/runtime/krest/Cargo.toml +++ b/runtime/krest/Cargo.toml @@ -252,6 +252,7 @@ std = [ "cumulus-primitives-aura/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-aura-ext/std", + "cumulus-pallet-weight-reclaim/std", "parachain-info/std", "parachains-common/std", From ecce3faf696dca04de1dd619b2af5f3b1a05a82a Mon Sep 17 00:00:00 2001 From: talhadaar Date: Tue, 20 Jan 2026 16:16:36 +0500 Subject: [PATCH 88/98] update comments to reflect changes --- runtime/krest/src/lib.rs | 2 +- runtime/peaq-dev/src/lib.rs | 2 +- runtime/peaq/src/lib.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/krest/src/lib.rs b/runtime/krest/src/lib.rs index 987584be2..4c6fbf859 100644 --- a/runtime/krest/src/lib.rs +++ b/runtime/krest/src/lib.rs @@ -226,7 +226,7 @@ pub fn native_version() -> NativeVersion { /// used to limit the maximal weight of a single extrinsic. const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); -/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by +/// We allow `Normal` extrinsics to fill up the block up to 90%, the rest can be used by /// `Operational` extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); diff --git a/runtime/peaq-dev/src/lib.rs b/runtime/peaq-dev/src/lib.rs index 995d86e8d..2cdd92a3a 100644 --- a/runtime/peaq-dev/src/lib.rs +++ b/runtime/peaq-dev/src/lib.rs @@ -231,7 +231,7 @@ pub fn native_version() -> NativeVersion { /// used to limit the maximal weight of a single extrinsic. const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); -/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by +/// We allow `Normal` extrinsics to fill up the block up to 90%, the rest can be used by /// `Operational` extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); diff --git a/runtime/peaq/src/lib.rs b/runtime/peaq/src/lib.rs index 8b0f69eee..1bb14a0a0 100644 --- a/runtime/peaq/src/lib.rs +++ b/runtime/peaq/src/lib.rs @@ -253,7 +253,7 @@ pub fn native_version() -> NativeVersion { /// used to limit the maximal weight of a single extrinsic. const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); -/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by +/// We allow `Normal` extrinsics to fill up the block up to 90%, the rest can be used by /// `Operational` extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); From 6042d1f8f186646f06a6b89d6b4be0aea1ef8607 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 22 Jan 2026 15:12:53 +0500 Subject: [PATCH 89/98] updated parachain_staking benchmark --- pallets/parachain-staking/src/benchmarking.rs | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/pallets/parachain-staking/src/benchmarking.rs b/pallets/parachain-staking/src/benchmarking.rs index 91bd636a9..f5e401cd1 100644 --- a/pallets/parachain-staking/src/benchmarking.rs +++ b/pallets/parachain-staking/src/benchmarking.rs @@ -22,13 +22,13 @@ use crate::{types::RoundInfo, *}; use frame_benchmarking::v1::{account, benchmarks, impl_benchmark_test_suite}; use frame_support::{ assert_ok, - traits::{Currency, Get, OnInitialize}, + traits::{Currency, Get, OnInitialize, OnFinalize}, }; use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System, RawOrigin}; use pallet_session::Pallet as Session; use sp_runtime::{ traits::{One, SaturatedConversion, StaticLookup}, - Permill, + Permill, Saturating }; use sp_std::{convert::TryInto, vec::Vec}; @@ -139,13 +139,14 @@ benchmarks! { assert_eq!(>::get().current, 0u32); } - on_initialize_round_update { - let round = >::get(); - assert_eq!(round.current, 0u32); - }: { Pallet::::on_initialize(round.length) } - verify { - assert_eq!(>::get().current, 1u32); - } + // NOTE round updates in on_finalize now + // on_initialize_round_update { + // let round = >::get(); + // assert_eq!(round.current, 0u32); + // }: { Pallet::::on_initialize(round.length) } + // verify { + // assert_eq!(>::get().current, 1u32); + // } force_new_round { let round = >::get(); @@ -286,13 +287,22 @@ benchmarks! { // go to block in which we can exit assert_ok!(>::init_leave_candidates(RawOrigin::Signed(candidate.clone()).into())); + + // Get the initial round when leave was initiated + let initial_round = >::get().current; + let exit_round = initial_round.saturating_add(T::ExitQueueDelay::get()); - for i in 1..=T::ExitQueueDelay::get() { + // Advance rounds until we reach the exit round + while >::get().current < exit_round { let round = >::get(); - let now = round.first + round.length; - System::::set_block_number(now); - Pallet::::on_initialize(now); + let round_end_block = round.first.saturating_add(round.length); + System::::set_block_number(round_end_block); + Session::::on_initialize(round_end_block); } + + // Verify we can exit now + let state = >::get(&candidate).expect("Candidate should exist"); + assert!(state.can_exit(>::get().current), "Candidate should be able to exit"); let unlookup_candidate = T::Lookup::unlookup(candidate.clone()); }: _(RawOrigin::Signed(candidate.clone()), unlookup_candidate) From f34c6b4d07bdb673ca56a9f6bcfe138c138bccac Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 22 Jan 2026 15:13:30 +0500 Subject: [PATCH 90/98] cargo fmt --- pallets/parachain-staking/src/benchmarking.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pallets/parachain-staking/src/benchmarking.rs b/pallets/parachain-staking/src/benchmarking.rs index f5e401cd1..fc8e8fdad 100644 --- a/pallets/parachain-staking/src/benchmarking.rs +++ b/pallets/parachain-staking/src/benchmarking.rs @@ -22,13 +22,13 @@ use crate::{types::RoundInfo, *}; use frame_benchmarking::v1::{account, benchmarks, impl_benchmark_test_suite}; use frame_support::{ assert_ok, - traits::{Currency, Get, OnInitialize, OnFinalize}, + traits::{Currency, Get, OnFinalize, OnInitialize}, }; use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System, RawOrigin}; use pallet_session::Pallet as Session; use sp_runtime::{ traits::{One, SaturatedConversion, StaticLookup}, - Permill, Saturating + Permill, Saturating, }; use sp_std::{convert::TryInto, vec::Vec}; @@ -287,7 +287,7 @@ benchmarks! { // go to block in which we can exit assert_ok!(>::init_leave_candidates(RawOrigin::Signed(candidate.clone()).into())); - + // Get the initial round when leave was initiated let initial_round = >::get().current; let exit_round = initial_round.saturating_add(T::ExitQueueDelay::get()); @@ -299,7 +299,7 @@ benchmarks! { System::::set_block_number(round_end_block); Session::::on_initialize(round_end_block); } - + // Verify we can exit now let state = >::get(&candidate).expect("Candidate should exist"); assert!(state.can_exit(>::get().current), "Candidate should be able to exit"); From 676ed745f2470f7875c7f084c4427f9a82f59f1d Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 22 Jan 2026 15:21:10 +0500 Subject: [PATCH 91/98] removed unused import --- pallets/parachain-staking/src/benchmarking.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/parachain-staking/src/benchmarking.rs b/pallets/parachain-staking/src/benchmarking.rs index fc8e8fdad..c7f3ce336 100644 --- a/pallets/parachain-staking/src/benchmarking.rs +++ b/pallets/parachain-staking/src/benchmarking.rs @@ -22,7 +22,7 @@ use crate::{types::RoundInfo, *}; use frame_benchmarking::v1::{account, benchmarks, impl_benchmark_test_suite}; use frame_support::{ assert_ok, - traits::{Currency, Get, OnFinalize, OnInitialize}, + traits::{Currency, Get, OnInitialize}, }; use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System, RawOrigin}; use pallet_session::Pallet as Session; From 73078928e2627be8375ef29d48625b5e4896bcf5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 26 Jan 2026 15:20:41 +0500 Subject: [PATCH 92/98] added script for benchmarking peaq pallets --- scripts/benchmark_peaq_pallets.sh | 320 ++++++++++++++++++++++++++++++ 1 file changed, 320 insertions(+) create mode 100755 scripts/benchmark_peaq_pallets.sh diff --git a/scripts/benchmark_peaq_pallets.sh b/scripts/benchmark_peaq_pallets.sh new file mode 100755 index 000000000..17201f1fa --- /dev/null +++ b/scripts/benchmark_peaq_pallets.sh @@ -0,0 +1,320 @@ +#!/usr/bin/env bash +# Script to run benchmarking for all extrinsics of all peaq pallets +# Places autogenerated weights files in runtime/common/src/weights folder +# +# DESCRIPTION: +# This script benchmarks all peaq pallets (both local and external) and generates +# weight files for each pallet. It automatically discovers local pallets in the +# pallets/ directory and includes external peaq pallets from git dependencies. +# +# Local Pallets (from pallets/ directory): +# - address-unification +# - block-reward +# - inflation-manager +# - parachain-staking +# - xc-asset-config +# +# External Pallets (from external repositories): +# - Transaction (peaq-pallet-transaction) +# - PeaqDid (peaq-pallet-did) +# - PeaqRbac (peaq-pallet-rbac) +# - PeaqStorage (peaq-pallet-storage) +# - PeaqMor (peaq-pallet-mor) +# +# The script uses the following benchmark command format: +# ./target/release/peaq-node benchmark pallet \ +# --chain= \ +# --execution=native \ +# --wasm-execution=compiled \ +# --pallet= \ +# --extrinsic="*" \ +# --steps= \ +# --repeat= \ +# --output= +# +# FEATURES: +# - Automatically builds the binary if it doesn't exist (with runtime-benchmarks feature) +# - Verifies binary supports benchmarking before running +# - Colored output for better readability +# - Progress tracking and summary report +# - Error handling with detailed failure reporting +# +# USAGE: +# ./scripts/benchmark_peaq_pallets.sh [chain] [binary_path] [steps] [repeat] +# +# ARGUMENTS: +# chain - Chain name to benchmark (default: peaq-local) +# Common options: peaq-local, peaq, dev-local, krest, krest-local +# binary_path - Path to peaq-node binary (default: ./target/release/peaq-node) +# The script will attempt to build it if it doesn't exist +# steps - Number of steps for benchmarking (default: 50) +# Higher values provide more accurate results but take longer +# repeat - Number of repeats for benchmarking (default: 20) +# Higher values provide more accurate results but take longer +# +# OUTPUT: +# All generated weight files are placed in: ./runtime/common/src/weights/ +# Each pallet generates a file named after its crate (e.g., peaq_pallet_did.rs) +# +# EXAMPLES: +# # Run with all defaults (peaq-local chain, 50 steps, 20 repeats) +# ./scripts/benchmark_peaq_pallets.sh +# +# # Run with custom chain +# ./scripts/benchmark_peaq_pallets.sh dev-local +# +# # Run with custom chain and binary path +# ./scripts/benchmark_peaq_pallets.sh peaq-local ./target/release/peaq-node +# +# # Run with custom steps and repeats for more accurate results +# ./scripts/benchmark_peaq_pallets.sh peaq-local ./target/release/peaq-node 100 50 +# +# # Run for production chain with high accuracy +# ./scripts/benchmark_peaq_pallets.sh peaq ./target/release/peaq-node 200 100 +# +# # Run with debug binary (if you have one built) +# ./scripts/benchmark_peaq_pallets.sh dev-local ./target/debug/peaq-node 10 5 +# +# EXIT CODES: +# 0 - All pallets benchmarked successfully +# 1 - One or more pallets failed to benchmark +# +# REQUIREMENTS: +# - Rust toolchain with cargo +# - peaq-node binary with runtime-benchmarks feature (will be built automatically) +# - Valid chain specification that exists in the node + +set -e + +# Default values +CHAIN="${1:-peaq-local}" +BINARY_PATH="${2:-./target/release/peaq-node}" +STEPS="${3:-50}" +REPEAT="${4:-20}" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Function to print colored output +print_info() { + echo -e "${BLUE}[INFO]${NC} $1" +} + +print_success() { + echo -e "${GREEN}[SUCCESS]${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" +} + +print_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# Check if binary exists +if [ ! -f "$BINARY_PATH" ]; then + print_error "Binary not found at $BINARY_PATH" + print_info "Building node with runtime-benchmarks feature..." + cargo build --release --features runtime-benchmarks --bin peaq-node + if [ ! -f "$BINARY_PATH" ]; then + print_error "Failed to build binary. Please build manually with:" + print_info "cargo build --release --features runtime-benchmarks --bin peaq-node" + exit 1 + fi + print_success "Binary built successfully" +fi + +# Verify binary has benchmarking feature +print_info "Verifying benchmarking feature..." +if ! "$BINARY_PATH" benchmark --help &>/dev/null; then + print_error "Binary does not support benchmarking. Please rebuild with --features runtime-benchmarks" + exit 1 +fi + +# Create output directory +WEIGHTS_DIR="./runtime/common/src/weights" +mkdir -p "$WEIGHTS_DIR" +print_info "Weights output directory: $WEIGHTS_DIR" + +# Function to get pallet mapping for a directory name +# Returns "pallet_name:output_filename" or empty string if not found +get_pallet_mapping() { + local dir_name="$1" + case "$dir_name" in + "address-unification") + echo "address_unification:address_unification" + ;; + "block-reward") + echo "pallet_block_reward:pallet_block_reward" + ;; + "inflation-manager") + echo "inflation_manager:inflation_manager" + ;; + "parachain-staking") + echo "parachain-staking:parachain_staking" + ;; + "xc-asset-config") + echo "xc_asset_config:xc_asset_config" + ;; + *) + echo "" + ;; + esac +} + +# External peaq pallets (not in local pallets/ directory) +# Format: "runtime_pallet_name:benchmark_pallet_name:output_filename" +EXTERNAL_PALLETS=( + "Transaction:Transaction:peaq_pallet_transaction" + "PeaqDid:PeaqDid:peaq_pallet_did" + "PeaqRbac:PeaqRbac:peaq_pallet_rbac" + "PeaqStorage:PeaqStorage:peaq_pallet_storage" + "PeaqMor:PeaqMor:peaq_pallet_mor" +) + +# Find all pallet directories +PALLET_DIRS=() +for dir in pallets/*/; do + dir_name=$(basename "$dir") + if [ -d "$dir" ] && [ -f "$dir/Cargo.toml" ]; then + mapping=$(get_pallet_mapping "$dir_name") + if [ -n "$mapping" ]; then + PALLET_DIRS+=("$dir_name") + fi + fi +done + +TOTAL_PALLETS=$((${#PALLET_DIRS[@]} + ${#EXTERNAL_PALLETS[@]})) + +if [ $TOTAL_PALLETS -eq 0 ]; then + print_error "No peaq pallets found to benchmark" + exit 1 +fi + +print_info "Found ${#PALLET_DIRS[@]} local pallet(s) and ${#EXTERNAL_PALLETS[@]} external pallet(s) to benchmark (total: $TOTAL_PALLETS)" +print_info "Starting benchmarking for chain: $CHAIN" +print_info "Steps: $STEPS, Repeat: $REPEAT" +echo "" + +# Track results +SUCCESS_COUNT=0 +FAILED_COUNT=0 +FAILED_PALLETS=() + +# Benchmark local pallets (from pallets/ directory) +for PALLET_DIR in "${PALLET_DIRS[@]}"; do + # Get pallet name and output filename from mapping function + mapping=$(get_pallet_mapping "$PALLET_DIR") + IFS=':' read -r PALLET_NAME OUTPUT_NAME <<< "$mapping" + + print_info "Benchmarking local pallet: $PALLET_DIR (--pallet=$PALLET_NAME)" + + # Output file path in runtime/common + WEIGHT_FILE="$WEIGHTS_DIR/${OUTPUT_NAME}.rs" + + # Build benchmark command matching the format from weights.rs comments + BENCHMARK_CMD=( + "$BINARY_PATH" + benchmark + pallet + --chain="$CHAIN" + --execution=native + --wasm-execution=compiled + --pallet="$PALLET_NAME" + --extrinsic="*" + --steps="$STEPS" + --repeat="$REPEAT" + --output="$WEIGHT_FILE" + ) + + # Run benchmark + if "${BENCHMARK_CMD[@]}"; then + if [ -f "$WEIGHT_FILE" ]; then + print_success "Completed benchmarking for $PALLET_DIR" + print_info " Weight file: $WEIGHT_FILE" + ((SUCCESS_COUNT++)) + else + print_warning "Benchmark completed for $PALLET_DIR but weight file not found at $WEIGHT_FILE" + ((FAILED_COUNT++)) + FAILED_PALLETS+=("$PALLET_DIR") + fi + else + print_error "Failed to benchmark $PALLET_DIR" + ((FAILED_COUNT++)) + FAILED_PALLETS+=("$PALLET_DIR") + fi + echo "" +done + +# Benchmark external peaq pallets (from external repositories) +for PALLET_ENTRY in "${EXTERNAL_PALLETS[@]}"; do + # Parse entry: "runtime_pallet_name:benchmark_pallet_name:output_filename" + IFS=':' read -r RUNTIME_NAME PALLET_NAME OUTPUT_NAME <<< "$PALLET_ENTRY" + + print_info "Benchmarking external pallet: $RUNTIME_NAME (--pallet=$PALLET_NAME)" + + # Output file path in runtime/common + WEIGHT_FILE="$WEIGHTS_DIR/${OUTPUT_NAME}.rs" + + # Build benchmark command matching the format from weights.rs comments + BENCHMARK_CMD=( + "$BINARY_PATH" + benchmark + pallet + --chain="$CHAIN" + --execution=native + --wasm-execution=compiled + --pallet="$PALLET_NAME" + --extrinsic="*" + --steps="$STEPS" + --repeat="$REPEAT" + --output="$WEIGHT_FILE" + ) + + # Run benchmark + if "${BENCHMARK_CMD[@]}"; then + if [ -f "$WEIGHT_FILE" ]; then + print_success "Completed benchmarking for $RUNTIME_NAME" + print_info " Weight file: $WEIGHT_FILE" + ((SUCCESS_COUNT++)) + else + print_warning "Benchmark completed for $RUNTIME_NAME but weight file not found at $WEIGHT_FILE" + ((FAILED_COUNT++)) + FAILED_PALLETS+=("$RUNTIME_NAME") + fi + else + print_error "Failed to benchmark $RUNTIME_NAME" + ((FAILED_COUNT++)) + FAILED_PALLETS+=("$RUNTIME_NAME") + fi + echo "" +done + +# Print summary +echo "==========================================" +print_info "Benchmarking Summary" +echo "==========================================" +print_success "Successful: $SUCCESS_COUNT pallet(s)" +if [ $FAILED_COUNT -gt 0 ]; then + print_error "Failed: $FAILED_COUNT pallet(s)" + print_warning "Failed pallets: ${FAILED_PALLETS[*]}" +fi +echo "" +print_info "Generated weight files in: $WEIGHTS_DIR" +if [ -d "$WEIGHTS_DIR" ]; then + ls -lh "$WEIGHTS_DIR"/*.rs 2>/dev/null || print_warning "No weight files generated" +fi +echo "" + +if [ $FAILED_COUNT -eq 0 ]; then + print_success "All pallets benchmarked successfully!" + exit 0 +else + print_error "Some pallets failed to benchmark" + exit 1 +fi From a8ac1d6e0a762043437dda7448faa55b363280c0 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Mon, 26 Jan 2026 18:10:34 +0500 Subject: [PATCH 93/98] updated benchmarking scripts --- scripts/benchmark_peaq_pallets.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/benchmark_peaq_pallets.sh b/scripts/benchmark_peaq_pallets.sh index 17201f1fa..73337f39a 100755 --- a/scripts/benchmark_peaq_pallets.sh +++ b/scripts/benchmark_peaq_pallets.sh @@ -206,6 +206,9 @@ SUCCESS_COUNT=0 FAILED_COUNT=0 FAILED_PALLETS=() +# Disable exit on error for benchmark loops (we handle errors manually) +set +e + # Benchmark local pallets (from pallets/ directory) for PALLET_DIR in "${PALLET_DIRS[@]}"; do # Get pallet name and output filename from mapping function @@ -295,6 +298,9 @@ for PALLET_ENTRY in "${EXTERNAL_PALLETS[@]}"; do echo "" done +# Re-enable exit on error for summary section +set -e + # Print summary echo "==========================================" print_info "Benchmarking Summary" From d67f2d01a9298e3f049c61402bd8c416feb267c7 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 28 Jan 2026 14:09:22 +0500 Subject: [PATCH 94/98] updated pallet xcm weights --- runtime/krest/src/weights/pallet_xcm.rs | 653 ++++++++++----------- runtime/peaq-dev/src/weights/pallet_xcm.rs | 653 ++++++++++----------- runtime/peaq/src/weights/pallet_xcm.rs | 653 ++++++++++----------- 3 files changed, 894 insertions(+), 1065 deletions(-) diff --git a/runtime/krest/src/weights/pallet_xcm.rs b/runtime/krest/src/weights/pallet_xcm.rs index fd182624f..25cff8038 100644 --- a/runtime/krest/src/weights/pallet_xcm.rs +++ b/runtime/krest/src/weights/pallet_xcm.rs @@ -1,298 +1,333 @@ -// TODO: UPDATE BEFORE RELEASE +// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH - -// The KILT Blockchain 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. - -// The KILT Blockchain 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 . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org +// 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. //! Autogenerated weights for `pallet_xcm` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-05, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2025-05-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `2a28e941ef22`, CPU: `QEMU Virtual CPU version 2.5+` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 // Executed Command: -// ./target/release/kilt-parachain +// frame-omni-bencher +// v1 // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --execution=wasm +// --extrinsic=* +// --runtime=target/production/wbuild/asset-hub-polkadot-runtime/asset_hub_polkadot_runtime.wasm +// --pallet=pallet_xcm +// --header=/_work/fellowship-001/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/asset-hubs/asset-hub-polkadot/src/weights // --wasm-execution=compiled +// --steps=50 +// --repeat=20 // --heap-pages=4096 -// --steps=2 -// --repeat=1 -// --chain=dev -// --pallet=pallet-xcm -// --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_xcm.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `4830` - // Minimum execution time: 53_691_000 picoseconds. - Weight::from_parts(53_691_000, 0) - .saturating_add(Weight::from_parts(0, 4830)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 21_810_000 picoseconds. + Weight::from_parts(23_151_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `74` + // Estimated: `3593` + // Minimum execution time: 112_151_000 picoseconds. + Weight::from_parts(115_880_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `296` + // Estimated: `6196` + // Minimum execution time: 147_051_000 picoseconds. + Weight::from_parts(151_311_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `514` + // Estimated: `6208` + // Minimum execution time: 175_962_000 picoseconds. + Weight::from_parts(181_821_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Estimated: `1485` + // Minimum execution time: 9_160_000 picoseconds. + Weight::from_parts(9_730_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 23_351_000 picoseconds. - Weight::from_parts(23_351_000, 0) + // Minimum execution time: 7_680_000 picoseconds. + Weight::from_parts(8_030_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_492_000 picoseconds. - Weight::from_parts(5_492_000, 0) + // Minimum execution time: 2_850_000 picoseconds. + Weight::from_parts(3_041_000, 0) .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `8025` - // Minimum execution time: 32_747_000 picoseconds. - Weight::from_parts(32_747_000, 0) - .saturating_add(Weight::from_parts(0, 8025)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 28_020_000 picoseconds. + Weight::from_parts(29_790_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `8729` - // Minimum execution time: 27_723_000 picoseconds. - Weight::from_parts(27_723_000, 0) - .saturating_add(Weight::from_parts(0, 8729)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `136` + // Estimated: `3601` + // Minimum execution time: 28_780_000 picoseconds. + Weight::from_parts(30_060_000, 0) + .saturating_add(Weight::from_parts(0, 3601)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_909_000 picoseconds. + Weight::from_parts(3_200_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:6 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `10029` - // Minimum execution time: 16_511_000 picoseconds. - Weight::from_parts(16_511_000, 0) - .saturating_add(Weight::from_parts(0, 10029)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `22` + // Estimated: `15862` + // Minimum execution time: 23_010_000 picoseconds. + Weight::from_parts(24_211_000, 0) + .saturating_add(Weight::from_parts(0, 15862)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `10033` - // Minimum execution time: 16_697_000 picoseconds. - Weight::from_parts(16_697_000, 0) - .saturating_add(Weight::from_parts(0, 10033)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `26` + // Estimated: `15866` + // Minimum execution time: 22_980_000 picoseconds. + Weight::from_parts(23_680_000, 0) + .saturating_add(Weight::from_parts(0, 15866)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:7 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `12515` - // Minimum execution time: 18_638_000 picoseconds. - Weight::from_parts(18_638_000, 0) - .saturating_add(Weight::from_parts(0, 12515)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `37` + // Estimated: `18352` + // Minimum execution time: 26_080_000 picoseconds. + Weight::from_parts(26_620_000, 0) + .saturating_add(Weight::from_parts(0, 18352)) + .saturating_add(T::DbWeight::get().reads(7)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `10257` - // Minimum execution time: 28_545_000 picoseconds. - Weight::from_parts(28_545_000, 0) - .saturating_add(Weight::from_parts(0, 10257)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) + // Measured: `75` + // Estimated: `6015` + // Minimum execution time: 26_521_000 picoseconds. + Weight::from_parts(27_290_000, 0) + .saturating_add(Weight::from_parts(0, 6015)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `7597` - // Minimum execution time: 8_132_000 picoseconds. - Weight::from_parts(8_132_000, 0) - .saturating_add(Weight::from_parts(0, 7597)) - .saturating_add(T::DbWeight::get().reads(3)) + // Measured: `40` + // Estimated: `13405` + // Minimum execution time: 18_820_000 picoseconds. + Weight::from_parts(19_201_000, 0) + .saturating_add(Weight::from_parts(0, 13405)) + .saturating_add(T::DbWeight::get().reads(5)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `10040` - // Minimum execution time: 17_297_000 picoseconds. - Weight::from_parts(17_297_000, 0) - .saturating_add(Weight::from_parts(0, 10040)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `33` + // Estimated: `15873` + // Minimum execution time: 22_920_000 picoseconds. + Weight::from_parts(23_370_000, 0) + .saturating_add(Weight::from_parts(0, 15873)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `146` - // Estimated: `15231` - // Minimum execution time: 34_890_000 picoseconds. - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - fn force_suspension() -> Weight { - // Copied from above TODO - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) + // Measured: `75` + // Estimated: `15915` + // Minimum execution time: 40_350_000 picoseconds. + Weight::from_parts(42_132_000, 0) + .saturating_add(Weight::from_parts(0, 15915)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -302,10 +337,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 2_160_000 picoseconds. - Weight::from_parts(2_313_000, 1485) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Minimum execution time: 3_370_000 picoseconds. + Weight::from_parts(3_539_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `PolkadotXcm::Queries` (r:1 w:1) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -313,139 +349,46 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7576` // Estimated: `11041` - // Minimum execution time: 21_847_000 picoseconds. - Weight::from_parts(22_199_000, 11041) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) - } - - fn claim_assets() -> Weight { Weight::zero() } - - fn add_authorized_alias() -> Weight { Weight::zero() } - - fn remove_authorized_alias() -> Weight { Weight::zero() } -} - -#[cfg(test)] -mod tests { - #[test] - fn test_send() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 4830 - ); - } - #[test] - fn test_force_subscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8025 - ); - } - #[test] - fn test_force_unsubscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8729 - ); - } - #[test] - fn test_migrate_supported_version() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10029 - ); - } - #[test] - fn test_migrate_version_notifiers() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10033 - ); - } - #[test] - fn test_already_notified_target() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 12515 - ); - } - #[test] - fn test_notify_current_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10257 - ); + // Minimum execution time: 33_361_000 picoseconds. + Weight::from_parts(34_469_000, 0) + .saturating_add(Weight::from_parts(0, 11041)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_notify_target_migration_fail() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 7597 - ); + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `23` + // Estimated: `3488` + // Minimum execution time: 41_561_000 picoseconds. + Weight::from_parts(44_390_000, 0) + .saturating_add(Weight::from_parts(0, 3488)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_version_notify_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10040 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn add_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `361` + // Estimated: `3826` + // Minimum execution time: 15_975_000 picoseconds. + Weight::from_parts(16_398_000, 3826) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_and_notify_old_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 15231 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn remove_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `400` + // Estimated: `3865` + // Minimum execution time: 17_326_000 picoseconds. + Weight::from_parts(17_622_000, 3865) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } -} +} \ No newline at end of file diff --git a/runtime/peaq-dev/src/weights/pallet_xcm.rs b/runtime/peaq-dev/src/weights/pallet_xcm.rs index d92aa7948..25cff8038 100644 --- a/runtime/peaq-dev/src/weights/pallet_xcm.rs +++ b/runtime/peaq-dev/src/weights/pallet_xcm.rs @@ -1,298 +1,333 @@ -// TODO: UPDATE BEFORE RELEASE +// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH - -// The KILT Blockchain 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. - -// The KILT Blockchain 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 . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org +// 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. //! Autogenerated weights for `pallet_xcm` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-05, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2025-05-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `2a28e941ef22`, CPU: `QEMU Virtual CPU version 2.5+` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 // Executed Command: -// ./target/release/kilt-parachain +// frame-omni-bencher +// v1 // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --execution=wasm +// --extrinsic=* +// --runtime=target/production/wbuild/asset-hub-polkadot-runtime/asset_hub_polkadot_runtime.wasm +// --pallet=pallet_xcm +// --header=/_work/fellowship-001/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/asset-hubs/asset-hub-polkadot/src/weights // --wasm-execution=compiled +// --steps=50 +// --repeat=20 // --heap-pages=4096 -// --steps=2 -// --repeat=1 -// --chain=dev -// --pallet=pallet-xcm -// --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_xcm.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `4830` - // Minimum execution time: 53_691_000 picoseconds. - Weight::from_parts(53_691_000, 0) - .saturating_add(Weight::from_parts(0, 4830)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 21_810_000 picoseconds. + Weight::from_parts(23_151_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `74` + // Estimated: `3593` + // Minimum execution time: 112_151_000 picoseconds. + Weight::from_parts(115_880_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `296` + // Estimated: `6196` + // Minimum execution time: 147_051_000 picoseconds. + Weight::from_parts(151_311_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `514` + // Estimated: `6208` + // Minimum execution time: 175_962_000 picoseconds. + Weight::from_parts(181_821_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_364_000 picoseconds. - Weight::from_parts(4_364_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Estimated: `1485` + // Minimum execution time: 9_160_000 picoseconds. + Weight::from_parts(9_730_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 23_351_000 picoseconds. - Weight::from_parts(23_351_000, 0) + // Minimum execution time: 7_680_000 picoseconds. + Weight::from_parts(8_030_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_492_000 picoseconds. - Weight::from_parts(5_492_000, 0) + // Minimum execution time: 2_850_000 picoseconds. + Weight::from_parts(3_041_000, 0) .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `8025` - // Minimum execution time: 32_747_000 picoseconds. - Weight::from_parts(32_747_000, 0) - .saturating_add(Weight::from_parts(0, 8025)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 28_020_000 picoseconds. + Weight::from_parts(29_790_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `8729` - // Minimum execution time: 27_723_000 picoseconds. - Weight::from_parts(27_723_000, 0) - .saturating_add(Weight::from_parts(0, 8729)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `136` + // Estimated: `3601` + // Minimum execution time: 28_780_000 picoseconds. + Weight::from_parts(30_060_000, 0) + .saturating_add(Weight::from_parts(0, 3601)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_909_000 picoseconds. + Weight::from_parts(3_200_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:6 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `10029` - // Minimum execution time: 16_511_000 picoseconds. - Weight::from_parts(16_511_000, 0) - .saturating_add(Weight::from_parts(0, 10029)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `22` + // Estimated: `15862` + // Minimum execution time: 23_010_000 picoseconds. + Weight::from_parts(24_211_000, 0) + .saturating_add(Weight::from_parts(0, 15862)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `10033` - // Minimum execution time: 16_697_000 picoseconds. - Weight::from_parts(16_697_000, 0) - .saturating_add(Weight::from_parts(0, 10033)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `26` + // Estimated: `15866` + // Minimum execution time: 22_980_000 picoseconds. + Weight::from_parts(23_680_000, 0) + .saturating_add(Weight::from_parts(0, 15866)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:7 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `12515` - // Minimum execution time: 18_638_000 picoseconds. - Weight::from_parts(18_638_000, 0) - .saturating_add(Weight::from_parts(0, 12515)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `37` + // Estimated: `18352` + // Minimum execution time: 26_080_000 picoseconds. + Weight::from_parts(26_620_000, 0) + .saturating_add(Weight::from_parts(0, 18352)) + .saturating_add(T::DbWeight::get().reads(7)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `10257` - // Minimum execution time: 28_545_000 picoseconds. - Weight::from_parts(28_545_000, 0) - .saturating_add(Weight::from_parts(0, 10257)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) + // Measured: `75` + // Estimated: `6015` + // Minimum execution time: 26_521_000 picoseconds. + Weight::from_parts(27_290_000, 0) + .saturating_add(Weight::from_parts(0, 6015)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `7597` - // Minimum execution time: 8_132_000 picoseconds. - Weight::from_parts(8_132_000, 0) - .saturating_add(Weight::from_parts(0, 7597)) - .saturating_add(T::DbWeight::get().reads(3)) + // Measured: `40` + // Estimated: `13405` + // Minimum execution time: 18_820_000 picoseconds. + Weight::from_parts(19_201_000, 0) + .saturating_add(Weight::from_parts(0, 13405)) + .saturating_add(T::DbWeight::get().reads(5)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `10040` - // Minimum execution time: 17_297_000 picoseconds. - Weight::from_parts(17_297_000, 0) - .saturating_add(Weight::from_parts(0, 10040)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `33` + // Estimated: `15873` + // Minimum execution time: 22_920_000 picoseconds. + Weight::from_parts(23_370_000, 0) + .saturating_add(Weight::from_parts(0, 15873)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `146` - // Estimated: `15231` - // Minimum execution time: 34_890_000 picoseconds. - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - fn force_suspension() -> Weight { - // Copied from above TODO - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) + // Measured: `75` + // Estimated: `15915` + // Minimum execution time: 40_350_000 picoseconds. + Weight::from_parts(42_132_000, 0) + .saturating_add(Weight::from_parts(0, 15915)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -302,10 +337,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 2_160_000 picoseconds. - Weight::from_parts(2_313_000, 1485) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Minimum execution time: 3_370_000 picoseconds. + Weight::from_parts(3_539_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `PolkadotXcm::Queries` (r:1 w:1) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -313,139 +349,46 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7576` // Estimated: `11041` - // Minimum execution time: 21_847_000 picoseconds. - Weight::from_parts(22_199_000, 11041) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) - } - - fn claim_assets() -> Weight { Weight::zero() } - - fn add_authorized_alias() -> Weight { Weight::zero() } - - fn remove_authorized_alias() -> Weight { Weight::zero() } -} - -#[cfg(test)] -mod tests { - #[test] - fn test_send() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 4830 - ); - } - #[test] - fn test_force_subscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8025 - ); - } - #[test] - fn test_force_unsubscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8729 - ); - } - #[test] - fn test_migrate_supported_version() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10029 - ); - } - #[test] - fn test_migrate_version_notifiers() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10033 - ); - } - #[test] - fn test_already_notified_target() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 12515 - ); - } - #[test] - fn test_notify_current_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10257 - ); + // Minimum execution time: 33_361_000 picoseconds. + Weight::from_parts(34_469_000, 0) + .saturating_add(Weight::from_parts(0, 11041)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_notify_target_migration_fail() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 7597 - ); + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `23` + // Estimated: `3488` + // Minimum execution time: 41_561_000 picoseconds. + Weight::from_parts(44_390_000, 0) + .saturating_add(Weight::from_parts(0, 3488)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_version_notify_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10040 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn add_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `361` + // Estimated: `3826` + // Minimum execution time: 15_975_000 picoseconds. + Weight::from_parts(16_398_000, 3826) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_and_notify_old_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 15231 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn remove_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `400` + // Estimated: `3865` + // Minimum execution time: 17_326_000 picoseconds. + Weight::from_parts(17_622_000, 3865) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } -} +} \ No newline at end of file diff --git a/runtime/peaq/src/weights/pallet_xcm.rs b/runtime/peaq/src/weights/pallet_xcm.rs index fd182624f..25cff8038 100644 --- a/runtime/peaq/src/weights/pallet_xcm.rs +++ b/runtime/peaq/src/weights/pallet_xcm.rs @@ -1,298 +1,333 @@ -// TODO: UPDATE BEFORE RELEASE +// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md +// for a list of specific contributors. +// SPDX-License-Identifier: Apache-2.0 -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH - -// The KILT Blockchain 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. - -// The KILT Blockchain 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 . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org +// 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. //! Autogenerated weights for `pallet_xcm` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-05, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2025-05-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `2a28e941ef22`, CPU: `QEMU Virtual CPU version 2.5+` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024 // Executed Command: -// ./target/release/kilt-parachain +// frame-omni-bencher +// v1 // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --execution=wasm +// --extrinsic=* +// --runtime=target/production/wbuild/asset-hub-polkadot-runtime/asset_hub_polkadot_runtime.wasm +// --pallet=pallet_xcm +// --header=/_work/fellowship-001/runtimes/runtimes/.github/scripts/cmd/file_header.txt +// --output=./system-parachains/asset-hubs/asset-hub-polkadot/src/weights // --wasm-execution=compiled +// --steps=50 +// --repeat=20 // --heap-pages=4096 -// --steps=2 -// --repeat=1 -// --chain=dev -// --pallet=pallet-xcm -// --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_xcm.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] +#![allow(missing_docs)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_xcm`. pub struct WeightInfo(PhantomData); impl pallet_xcm::WeightInfo for WeightInfo { - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `4830` - // Minimum execution time: 53_691_000 picoseconds. - Weight::from_parts(53_691_000, 0) - .saturating_add(Weight::from_parts(0, 4830)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 21_810_000 picoseconds. + Weight::from_parts(23_151_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `74` + // Estimated: `3593` + // Minimum execution time: 112_151_000 picoseconds. + Weight::from_parts(115_880_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0) + /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `296` + // Estimated: `6196` + // Minimum execution time: 147_051_000 picoseconds. + Weight::from_parts(151_311_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `514` + // Estimated: `6208` + // Minimum execution time: 175_962_000 picoseconds. + Weight::from_parts(181_821_000, 0) + .saturating_add(Weight::from_parts(0, 6208)) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(6)) } - /// Storage: Benchmark Override (r:0 w:0) - /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Estimated: `1485` + // Minimum execution time: 9_160_000 picoseconds. + Weight::from_parts(9_730_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 23_351_000 picoseconds. - Weight::from_parts(23_351_000, 0) + // Minimum execution time: 7_680_000 picoseconds. + Weight::from_parts(8_030_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) fn force_default_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_492_000 picoseconds. - Weight::from_parts(5_492_000, 0) + // Minimum execution time: 2_850_000 picoseconds. + Weight::from_parts(3_041_000, 0) .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm QueryCounter (r:1 w:1) - /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `75` - // Estimated: `8025` - // Minimum execution time: 32_747_000 picoseconds. - Weight::from_parts(32_747_000, 0) - .saturating_add(Weight::from_parts(0, 8025)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(5)) + // Measured: `42` + // Estimated: `3507` + // Minimum execution time: 28_020_000 picoseconds. + Weight::from_parts(29_790_000, 0) + .saturating_add(Weight::from_parts(0, 3507)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) } - /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm Queries (r:0 w:1) - /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `257` - // Estimated: `8729` - // Minimum execution time: 27_723_000 picoseconds. - Weight::from_parts(27_723_000, 0) - .saturating_add(Weight::from_parts(0, 8729)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(4)) + // Measured: `136` + // Estimated: `3601` + // Minimum execution time: 28_780_000 picoseconds. + Weight::from_parts(30_060_000, 0) + .saturating_add(Weight::from_parts(0, 3601)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_909_000 picoseconds. + Weight::from_parts(3_200_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:6 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `10029` - // Minimum execution time: 16_511_000 picoseconds. - Weight::from_parts(16_511_000, 0) - .saturating_add(Weight::from_parts(0, 10029)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `22` + // Estimated: `15862` + // Minimum execution time: 23_010_000 picoseconds. + Weight::from_parts(24_211_000, 0) + .saturating_add(Weight::from_parts(0, 15862)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `133` - // Estimated: `10033` - // Minimum execution time: 16_697_000 picoseconds. - Weight::from_parts(16_697_000, 0) - .saturating_add(Weight::from_parts(0, 10033)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `26` + // Estimated: `15866` + // Minimum execution time: 22_980_000 picoseconds. + Weight::from_parts(23_680_000, 0) + .saturating_add(Weight::from_parts(0, 15866)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:7 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `12515` - // Minimum execution time: 18_638_000 picoseconds. - Weight::from_parts(18_638_000, 0) - .saturating_add(Weight::from_parts(0, 12515)) - .saturating_add(T::DbWeight::get().reads(5)) + // Measured: `37` + // Estimated: `18352` + // Minimum execution time: 26_080_000 picoseconds. + Weight::from_parts(26_620_000, 0) + .saturating_add(Weight::from_parts(0, 18352)) + .saturating_add(T::DbWeight::get().reads(7)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `142` - // Estimated: `10257` - // Minimum execution time: 28_545_000 picoseconds. - Weight::from_parts(28_545_000, 0) - .saturating_add(Weight::from_parts(0, 10257)) - .saturating_add(T::DbWeight::get().reads(7)) - .saturating_add(T::DbWeight::get().writes(3)) + // Measured: `75` + // Estimated: `6015` + // Minimum execution time: 26_521_000 picoseconds. + Weight::from_parts(27_290_000, 0) + .saturating_add(Weight::from_parts(0, 6015)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `7597` - // Minimum execution time: 8_132_000 picoseconds. - Weight::from_parts(8_132_000, 0) - .saturating_add(Weight::from_parts(0, 7597)) - .saturating_add(T::DbWeight::get().reads(3)) + // Measured: `40` + // Estimated: `13405` + // Minimum execution time: 18_820_000 picoseconds. + Weight::from_parts(19_201_000, 0) + .saturating_add(Weight::from_parts(0, 13405)) + .saturating_add(T::DbWeight::get().reads(5)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `140` - // Estimated: `10040` - // Minimum execution time: 17_297_000 picoseconds. - Weight::from_parts(17_297_000, 0) - .saturating_add(Weight::from_parts(0, 10040)) - .saturating_add(T::DbWeight::get().reads(4)) + // Measured: `33` + // Estimated: `15873` + // Minimum execution time: 22_920_000 picoseconds. + Weight::from_parts(23_370_000, 0) + .saturating_add(Weight::from_parts(0, 15873)) + .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem HostConfiguration (r:1 w:0) - /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `146` - // Estimated: `15231` - // Minimum execution time: 34_890_000 picoseconds. - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - fn force_suspension() -> Weight { - // Copied from above TODO - Weight::from_parts(34_890_000, 0) - .saturating_add(Weight::from_parts(0, 15231)) - .saturating_add(T::DbWeight::get().reads(9)) - .saturating_add(T::DbWeight::get().writes(4)) - } - - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn transfer_assets() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) + // Measured: `75` + // Estimated: `15915` + // Minimum execution time: 40_350_000 picoseconds. + Weight::from_parts(42_132_000, 0) + .saturating_add(Weight::from_parts(0, 15915)) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -302,10 +337,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 2_160_000 picoseconds. - Weight::from_parts(2_313_000, 1485) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Minimum execution time: 3_370_000 picoseconds. + Weight::from_parts(3_539_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `PolkadotXcm::Queries` (r:1 w:1) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -313,139 +349,46 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7576` // Estimated: `11041` - // Minimum execution time: 21_847_000 picoseconds. - Weight::from_parts(22_199_000, 11041) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) - } - - fn claim_assets() -> Weight { Weight::zero() } - - fn add_authorized_alias() -> Weight { Weight::zero() } - - fn remove_authorized_alias() -> Weight { Weight::zero() } -} - -#[cfg(test)] -mod tests { - #[test] - fn test_send() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 4830 - ); - } - #[test] - fn test_force_subscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8025 - ); - } - #[test] - fn test_force_unsubscribe_version_notify() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 8729 - ); - } - #[test] - fn test_migrate_supported_version() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10029 - ); - } - #[test] - fn test_migrate_version_notifiers() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10033 - ); - } - #[test] - fn test_already_notified_target() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 12515 - ); - } - #[test] - fn test_notify_current_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10257 - ); + // Minimum execution time: 33_361_000 picoseconds. + Weight::from_parts(34_469_000, 0) + .saturating_add(Weight::from_parts(0, 11041)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_notify_target_migration_fail() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 7597 - ); + /// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0) + /// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `23` + // Estimated: `3488` + // Minimum execution time: 41_561_000 picoseconds. + Weight::from_parts(44_390_000, 0) + .saturating_add(Weight::from_parts(0, 3488)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_version_notify_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 10040 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn add_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `361` + // Estimated: `3826` + // Minimum execution time: 15_975_000 picoseconds. + Weight::from_parts(16_398_000, 3826) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - #[test] - fn test_migrate_and_notify_old_targets() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 15231 - ); + /// Storage: `XcmPallet::AuthorizedAliases` (r:1 w:1) + /// Proof: `XcmPallet::AuthorizedAliases` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn remove_authorized_alias() -> Weight { + // Proof Size summary in bytes: + // Measured: `400` + // Estimated: `3865` + // Minimum execution time: 17_326_000 picoseconds. + Weight::from_parts(17_622_000, 3865) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } -} +} \ No newline at end of file From cf13757e46fc6f4ed8c28af8fd710b8fefb25375 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Wed, 28 Jan 2026 20:10:50 +0500 Subject: [PATCH 95/98] updated address unification benchmarks --- pallets/address-unification/src/weights.rs | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pallets/address-unification/src/weights.rs b/pallets/address-unification/src/weights.rs index 12d424687..d98585eec 100644 --- a/pallets/address-unification/src/weights.rs +++ b/pallets/address-unification/src/weights.rs @@ -1,24 +1,23 @@ - //! Autogenerated weights for `address_unification` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-09-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2026-01-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ip-99-1-200-206`, CPU: `AMD EPYC 7R32` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev-local")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("peaq-local")`, DB CACHE: 1024 // Executed Command: // ./target/release/peaq-node // benchmark // pallet -// --chain=dev-local +// --chain=peaq-local // --execution=native // --wasm-execution=compiled -// --pallet=address_unification +// --pallet=address-unification // --extrinsic=* // --steps=50 // --repeat=20 -// --output=weight.rs +// --output=./weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -41,10 +40,10 @@ impl crate::WeightInfo for WeightInfo { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn claim_account() -> Weight { // Proof Size summary in bytes: - // Measured: `135` + // Measured: `177` // Estimated: `3593` - // Minimum execution time: 88_592_000 picoseconds. - Weight::from_parts(89_683_000, 0) + // Minimum execution time: 92_052_000 picoseconds. + Weight::from_parts(92_783_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -59,8 +58,8 @@ impl crate::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `81` // Estimated: `3593` - // Minimum execution time: 25_931_000 picoseconds. - Weight::from_parts(26_651_000, 0) + // Minimum execution time: 28_011_000 picoseconds. + Weight::from_parts(28_991_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) From de2bf830f72c51c778d541b24ce17e21e3f53b0f Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 29 Jan 2026 12:39:47 +0500 Subject: [PATCH 96/98] updated parachain-staking weights --- pallets/parachain-staking/src/weights.rs | 492 +++++++++++------------ 1 file changed, 240 insertions(+), 252 deletions(-) diff --git a/pallets/parachain-staking/src/weights.rs b/pallets/parachain-staking/src/weights.rs index 89557e0b0..714188951 100644 --- a/pallets/parachain-staking/src/weights.rs +++ b/pallets/parachain-staking/src/weights.rs @@ -1,24 +1,23 @@ - //! Autogenerated weights for `parachain_staking` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-09-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 47.0.0 +//! DATE: 2026-01-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ip-99-1-200-206`, CPU: `AMD EPYC 7R32` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev-local")`, DB CACHE: 1024 +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("peaq-local")`, DB CACHE: 1024 // Executed Command: // ./target/release/peaq-node // benchmark // pallet -// --chain=dev-local +// --chain=peaq-local // --execution=native // --wasm-execution=compiled // --pallet=parachain-staking // --extrinsic=* // --steps=50 // --repeat=20 -// --output=weight.rs +// --output=./pallets/parachain-staking/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -30,64 +29,57 @@ use core::marker::PhantomData; /// Weight functions for `parachain_staking`. pub struct WeightInfo(PhantomData); -impl crate::WeightInfo for WeightInfo { - /// Storage: `ParachainStaking::Round` (r:1 w:0) - /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) +impl parachain_staking::WeightInfo for WeightInfo { + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn on_initialize_no_action() -> Weight { // Proof Size summary in bytes: - // Measured: `328` - // Estimated: `1497` - // Minimum execution time: 5_850_000 picoseconds. - Weight::from_parts(5_990_000, 0) - .saturating_add(Weight::from_parts(0, 1497)) - .saturating_add(T::DbWeight::get().reads(1)) - } - /// Storage: `ParachainStaking::Round` (r:1 w:1) - /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) - fn on_initialize_round_update() -> Weight { - // Proof Size summary in bytes: - // Measured: `328` - // Estimated: `1497` - // Minimum execution time: 10_720_000 picoseconds. - Weight::from_parts(10_960_000, 0) - .saturating_add(Weight::from_parts(0, 1497)) + // Measured: `292` + // Estimated: `1489` + // Minimum execution time: 6_020_000 picoseconds. + Weight::from_parts(6_200_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `ParachainStaking::DelayedPayoutInfo` (r:1 w:0) + /// Proof: `ParachainStaking::DelayedPayoutInfo` (`max_values`: Some(1), `max_size`: Some(36), added: 531, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::ForceNewRound` (r:0 w:1) /// Proof: `ParachainStaking::ForceNewRound` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) fn force_new_round() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 4_220_000 picoseconds. - Weight::from_parts(4_410_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `292` + // Estimated: `1521` + // Minimum execution time: 10_720_000 picoseconds. + Weight::from_parts(10_930_000, 0) + .saturating_add(Weight::from_parts(0, 1521)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:1) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:0) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) - /// Storage: `ParachainStaking::CandidatePool` (r:12 w:0) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:60 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[4, 16]`. - /// The range of component `m` is `[0, 25]`. - fn set_max_selected_candidates(n: u32, _m: u32, ) -> Weight { + /// The range of component `n` is `[4, 64]`. + /// The range of component `m` is `[0, 100]`. + fn set_max_selected_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + m * (576 ±0) + n * (1367 ±0)` - // Estimated: `4779 + n * (2879 ±11)` - // Minimum execution time: 24_380_000 picoseconds. - Weight::from_parts(24_930_000, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 21_963 - .saturating_add(Weight::from_parts(4_431_800, 0).saturating_mul(n.into())) + // Measured: `0 + m * (2880 ±0) + n * (4967 ±0)` + // Estimated: `8380 + n * (7001 ±6)` + // Minimum execution time: 29_170_000 picoseconds. + Weight::from_parts(29_531_000, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 53_856 + .saturating_add(Weight::from_parts(7_520_868, 0).saturating_mul(n.into())) + // Standard Error: 34_714 + .saturating_add(Weight::from_parts(759_159, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 2879).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 7001).saturating_mul(n.into())) } /// Storage: `ParachainStaking::Round` (r:1 w:1) /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) @@ -95,56 +87,54 @@ impl crate::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `328` // Estimated: `1497` - // Minimum execution time: 14_991_000 picoseconds. - Weight::from_parts(15_390_000, 0) + // Minimum execution time: 18_271_000 picoseconds. + Weight::from_parts(18_561_000, 0) .saturating_add(Weight::from_parts(0, 1497)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `ParachainStaking::CandidatePool` (r:5 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) - /// Storage: `ParachainStaking::Unstaking` (r:26 w:26) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:101 w:101) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) - /// Storage: `ParachainStaking::DelegatorState` (r:25 w:25) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:100 w:100) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Session::DisabledValidators` (r:1 w:1) /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[5, 16]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[5, 64]`. + /// The range of component `m` is `[0, 100]`. fn force_remove_candidate(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + m * (955 ±0) + n * (787 ±0)` - // Estimated: `19935 + m * (2716 ±0) + n * (192 ±8)` - // Minimum execution time: 81_932_000 picoseconds. - Weight::from_parts(7_423_732, 0) - .saturating_add(Weight::from_parts(0, 19935)) - // Standard Error: 42_950 - .saturating_add(Weight::from_parts(5_114_861, 0).saturating_mul(n.into())) - // Standard Error: 19_539 - .saturating_add(Weight::from_parts(19_232_502, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(13)) + // Measured: `0 + m * (1236 ±0) + n * (1148 ±0)` + // Estimated: `37940 + m * (2916 ±0) + n * (336 ±12)` + // Minimum execution time: 106_553_000 picoseconds. + Weight::from_parts(107_453_000, 0) + .saturating_add(Weight::from_parts(0, 37940)) + // Standard Error: 142_570 + .saturating_add(Weight::from_parts(3_202_222, 0).saturating_mul(n.into())) + // Standard Error: 92_084 + .saturating_add(Weight::from_parts(24_713_838, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 2716).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 192).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2916).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 336).saturating_mul(n.into())) } /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) @@ -156,118 +146,114 @@ impl crate::WeightInfo for WeightInfo { /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[1, 63]`. + /// The range of component `m` is `[0, 100]`. fn join_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `884 + m * (63 ±0) + n * (165 ±0)` - // Estimated: `4779 + m * (61 ±0)` - // Minimum execution time: 90_733_000 picoseconds. - Weight::from_parts(87_380_528, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 15_692 - .saturating_add(Weight::from_parts(702_274, 0).saturating_mul(n.into())) - // Standard Error: 8_959 - .saturating_add(Weight::from_parts(471_858, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(11)) - .saturating_add(T::DbWeight::get().writes(7)) - .saturating_add(Weight::from_parts(0, 61).saturating_mul(m.into())) + // Measured: `2614 + m * (18 ±0) + n * (82 ±0)` + // Estimated: `8380 + m * (15 ±0)` + // Minimum execution time: 108_953_000 picoseconds. + Weight::from_parts(74_654_451, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 20_089 + .saturating_add(Weight::from_parts(1_101_094, 0).saturating_mul(n.into())) + // Standard Error: 12_517 + .saturating_add(Weight::from_parts(655_085, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(Weight::from_parts(0, 15).saturating_mul(m.into())) } /// Storage: `ParachainStaking::CandidatePool` (r:5 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Round` (r:1 w:0) /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[5, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[5, 63]`. + /// The range of component `m` is `[0, 100]`. fn init_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `815 + m * (240 ±0) + n * (82 ±0)` - // Estimated: `19935` - // Minimum execution time: 65_141_000 picoseconds. - Weight::from_parts(57_829_380, 0) - .saturating_add(Weight::from_parts(0, 19935)) - // Standard Error: 10_520 - .saturating_add(Weight::from_parts(822_977, 0).saturating_mul(n.into())) - // Standard Error: 4_358 - .saturating_add(Weight::from_parts(400_475, 0).saturating_mul(m.into())) + // Measured: `1140 + m * (240 ±0) + n * (57 ±0)` + // Estimated: `37940` + // Minimum execution time: 79_332_000 picoseconds. + Weight::from_parts(53_084_224, 0) + .saturating_add(Weight::from_parts(0, 37940)) + // Standard Error: 16_966 + .saturating_add(Weight::from_parts(770_057, 0).saturating_mul(n.into())) + // Standard Error: 9_892 + .saturating_add(Weight::from_parts(559_423, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[5, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[5, 63]`. + /// The range of component `m` is `[0, 100]`. fn cancel_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `516 + m * (96 ±0) + n * (70 ±0)` - // Estimated: `8568` - // Minimum execution time: 43_711_000 picoseconds. - Weight::from_parts(39_980_393, 0) - .saturating_add(Weight::from_parts(0, 8568)) - // Standard Error: 6_214 - .saturating_add(Weight::from_parts(437_842, 0).saturating_mul(n.into())) - // Standard Error: 2_574 - .saturating_add(Weight::from_parts(274_897, 0).saturating_mul(m.into())) + // Measured: `718 + m * (96 ±0) + n * (54 ±0)` + // Estimated: `15770` + // Minimum execution time: 58_102_000 picoseconds. + Weight::from_parts(38_458_977, 0) + .saturating_add(Weight::from_parts(0, 15770)) + // Standard Error: 15_035 + .saturating_add(Weight::from_parts(635_416, 0).saturating_mul(n.into())) + // Standard Error: 8_766 + .saturating_add(Weight::from_parts(425_668, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Round` (r:1 w:0) /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`) - /// Storage: `ParachainStaking::Unstaking` (r:26 w:26) + /// Storage: `ParachainStaking::Unstaking` (r:101 w:101) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) - /// Storage: `ParachainStaking::DelegatorState` (r:25 w:25) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:100 w:100) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Session::DisabledValidators` (r:1 w:1) - /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// The range of component `n` is `[5, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[5, 63]`. + /// The range of component `m` is `[0, 100]`. fn execute_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + m * (742 ±0) + n * (750 ±0)` - // Estimated: `4779 + m * (2716 ±0) + n * (176 ±7)` - // Minimum execution time: 55_411_000 picoseconds. - Weight::from_parts(55_681_000, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 45_040 - .saturating_add(Weight::from_parts(1_284_325, 0).saturating_mul(n.into())) - // Standard Error: 28_281 - .saturating_add(Weight::from_parts(17_740_285, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(7)) + // Measured: `0 + m * (1036 ±0) + n * (1115 ±0)` + // Estimated: `8380 + m * (2916 ±7) + n * (321 ±11)` + // Minimum execution time: 59_431_000 picoseconds. + Weight::from_parts(60_452_000, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 145_383 + .saturating_add(Weight::from_parts(3_249_081, 0).saturating_mul(n.into())) + // Standard Error: 92_453 + .saturating_add(Weight::from_parts(24_295_237, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(m.into()))) - .saturating_add(T::DbWeight::get().writes(5)) + .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 2716).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 176).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2916).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 321).saturating_mul(n.into())) } /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) @@ -279,62 +265,62 @@ impl crate::WeightInfo for WeightInfo { /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[1, 63]`. + /// The range of component `m` is `[0, 100]`. /// The range of component `u` is `[0, 9]`. fn candidate_stake_more(n: u32, m: u32, u: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `460 + m * (105 ±0) + n * (158 ±0) + u * (20 ±0)` - // Estimated: `4779` - // Minimum execution time: 84_762_000 picoseconds. - Weight::from_parts(69_486_042, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 7_316 - .saturating_add(Weight::from_parts(1_035_460, 0).saturating_mul(n.into())) - // Standard Error: 4_177 - .saturating_add(Weight::from_parts(588_466, 0).saturating_mul(m.into())) - // Standard Error: 11_083 - .saturating_add(Weight::from_parts(480_341, 0).saturating_mul(u.into())) + // Measured: `2318 + m * (62 ±0) + n * (69 ±0) + u * (20 ±0)` + // Estimated: `8380` + // Minimum execution time: 105_403_000 picoseconds. + Weight::from_parts(59_444_637, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 18_238 + .saturating_add(Weight::from_parts(1_017_460, 0).saturating_mul(n.into())) + // Standard Error: 11_364 + .saturating_add(Weight::from_parts(629_579, 0).saturating_mul(m.into())) + // Standard Error: 118_994 + .saturating_add(Weight::from_parts(1_807_454, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(6)) } /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 15]`. - /// The range of component `m` is `[0, 25]`. + /// The range of component `n` is `[1, 63]`. + /// The range of component `m` is `[0, 100]`. fn candidate_stake_less(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `625 + m * (63 ±0) + n * (107 ±0)` - // Estimated: `4779` - // Minimum execution time: 45_901_000 picoseconds. - Weight::from_parts(39_022_190, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 6_281 - .saturating_add(Weight::from_parts(647_606, 0).saturating_mul(n.into())) - // Standard Error: 3_586 - .saturating_add(Weight::from_parts(367_656, 0).saturating_mul(m.into())) + // Measured: `1377 + m * (53 ±0) + n * (59 ±0)` + // Estimated: `8380` + // Minimum execution time: 58_362_000 picoseconds. + Weight::from_parts(33_240_022, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 17_224 + .saturating_add(Weight::from_parts(776_742, 0).saturating_mul(n.into())) + // Standard Error: 10_731 + .saturating_add(Weight::from_parts(482_003, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::LastDelegation` (r:1 w:1) @@ -346,31 +332,31 @@ impl crate::WeightInfo for WeightInfo { /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. - /// The range of component `m` is `[1, 24]`. + /// The range of component `n` is `[1, 64]`. + /// The range of component `m` is `[1, 99]`. fn join_delegators(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1235 + m * (131 ±0) + n * (192 ±0)` - // Estimated: `8568` - // Minimum execution time: 110_553_000 picoseconds. - Weight::from_parts(94_219_260, 0) - .saturating_add(Weight::from_parts(0, 8568)) - // Standard Error: 13_714 - .saturating_add(Weight::from_parts(1_136_100, 0).saturating_mul(n.into())) - // Standard Error: 9_056 - .saturating_add(Weight::from_parts(860_716, 0).saturating_mul(m.into())) + // Measured: `3734 + m * (65 ±0) + n * (93 ±0)` + // Estimated: `15770` + // Minimum execution time: 136_573_000 picoseconds. + Weight::from_parts(81_614_746, 0) + .saturating_add(Weight::from_parts(0, 15770)) + // Standard Error: 24_518 + .saturating_add(Weight::from_parts(1_433_979, 0).saturating_mul(n.into())) + // Standard Error: 15_885 + .saturating_add(Weight::from_parts(885_930, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(8)) } /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) @@ -380,111 +366,111 @@ impl crate::WeightInfo for WeightInfo { /// Storage: `Balances::Freezes` (r:1 w:0) /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. - /// The range of component `m` is `[1, 24]`. + /// The range of component `n` is `[1, 64]`. + /// The range of component `m` is `[1, 99]`. /// The range of component `u` is `[1, 9]`. fn delegator_stake_more(n: u32, m: u32, u: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1028 + m * (110 ±0) + n * (168 ±0) + u * (20 ±0)` - // Estimated: `4779` - // Minimum execution time: 96_263_000 picoseconds. - Weight::from_parts(86_920_766, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 6_754 - .saturating_add(Weight::from_parts(670_231, 0).saturating_mul(n.into())) - // Standard Error: 4_462 - .saturating_add(Weight::from_parts(474_799, 0).saturating_mul(m.into())) - // Standard Error: 12_215 - .saturating_add(Weight::from_parts(261_482, 0).saturating_mul(u.into())) + // Measured: `2863 + m * (68 ±0) + n * (81 ±0) + u * (20 ±0)` + // Estimated: `8380` + // Minimum execution time: 120_293_000 picoseconds. + Weight::from_parts(70_483_341, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 18_695 + .saturating_add(Weight::from_parts(1_057_555, 0).saturating_mul(n.into())) + // Standard Error: 12_116 + .saturating_add(Weight::from_parts(709_503, 0).saturating_mul(m.into())) + // Standard Error: 137_441 + .saturating_add(Weight::from_parts(2_052_947, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(7)) } /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. - /// The range of component `m` is `[1, 24]`. + /// The range of component `n` is `[1, 64]`. + /// The range of component `m` is `[1, 99]`. fn delegator_stake_less(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `943 + m * (81 ±0) + n * (122 ±0)` - // Estimated: `4779` - // Minimum execution time: 62_152_000 picoseconds. - Weight::from_parts(54_307_292, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 5_523 - .saturating_add(Weight::from_parts(624_372, 0).saturating_mul(n.into())) - // Standard Error: 3_647 - .saturating_add(Weight::from_parts(434_073, 0).saturating_mul(m.into())) + // Measured: `1979 + m * (56 ±0) + n * (68 ±0)` + // Estimated: `8380` + // Minimum execution time: 76_532_000 picoseconds. + Weight::from_parts(45_668_894, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 19_038 + .saturating_add(Weight::from_parts(893_071, 0).saturating_mul(n.into())) + // Standard Error: 12_334 + .saturating_add(Weight::from_parts(576_628, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) } /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. - /// The range of component `m` is `[1, 24]`. + /// The range of component `n` is `[1, 64]`. + /// The range of component `m` is `[1, 99]`. fn revoke_delegation(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `943 + m * (81 ±0) + n * (122 ±0)` - // Estimated: `4779` - // Minimum execution time: 66_132_000 picoseconds. - Weight::from_parts(59_254_892, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 5_692 - .saturating_add(Weight::from_parts(638_247, 0).saturating_mul(n.into())) - // Standard Error: 3_759 - .saturating_add(Weight::from_parts(380_102, 0).saturating_mul(m.into())) + // Measured: `1979 + m * (56 ±0) + n * (68 ±0)` + // Estimated: `8380` + // Minimum execution time: 80_092_000 picoseconds. + Weight::from_parts(49_812_993, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 17_954 + .saturating_add(Weight::from_parts(876_405, 0).saturating_mul(n.into())) + // Standard Error: 11_632 + .saturating_add(Weight::from_parts(550_670, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) } /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) - /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(105), added: 2580, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(441), added: 2916, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(241), added: 2716, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) - /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(769), added: 1264, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3074), added: 3569, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. - /// The range of component `m` is `[1, 24]`. + /// The range of component `n` is `[1, 64]`. + /// The range of component `m` is `[1, 99]`. fn leave_delegators(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `943 + m * (81 ±0) + n * (122 ±0)` - // Estimated: `4779` - // Minimum execution time: 65_962_000 picoseconds. - Weight::from_parts(58_592_903, 0) - .saturating_add(Weight::from_parts(0, 4779)) - // Standard Error: 4_803 - .saturating_add(Weight::from_parts(651_104, 0).saturating_mul(n.into())) - // Standard Error: 3_172 - .saturating_add(Weight::from_parts(385_479, 0).saturating_mul(m.into())) + // Measured: `1979 + m * (56 ±0) + n * (68 ±0)` + // Estimated: `8380` + // Minimum execution time: 79_022_000 picoseconds. + Weight::from_parts(50_147_098, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 17_684 + .saturating_add(Weight::from_parts(867_604, 0).saturating_mul(n.into())) + // Standard Error: 11_457 + .saturating_add(Weight::from_parts(539_799, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -501,40 +487,42 @@ impl crate::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `668 + u * (20 ±0)` // Estimated: `4764` - // Minimum execution time: 54_121_000 picoseconds. - Weight::from_parts(56_474_376, 0) + // Minimum execution time: 66_442_000 picoseconds. + Weight::from_parts(67_560_046, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 19_030 - .saturating_add(Weight::from_parts(395_414, 0).saturating_mul(u.into())) + // Standard Error: 5_249 + .saturating_add(Weight::from_parts(221_917, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } /// Storage: `ParachainStaking::CandidatePool` (r:2 w:0) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:0 w:1) /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn set_max_candidate_stake() -> Weight { // Proof Size summary in bytes: // Measured: `396` - // Estimated: `8568` - // Minimum execution time: 23_500_000 picoseconds. - Weight::from_parts(23_771_000, 0) - .saturating_add(Weight::from_parts(0, 8568)) + // Estimated: `15770` + // Minimum execution time: 24_521_000 picoseconds. + Weight::from_parts(25_051_000, 0) + .saturating_add(Weight::from_parts(0, 15770)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) - /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1314), added: 3789, mode: `MaxEncodedLen`) - /// The range of component `n` is `[1, 16]`. + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(4915), added: 7390, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 64]`. /// The range of component `m` is `[0, 1000000]`. - fn set_commission(_n: u32, _m: u32, ) -> Weight { + fn set_commission(n: u32, _m: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `393` - // Estimated: `4779` - // Minimum execution time: 19_960_000 picoseconds. - Weight::from_parts(20_647_875, 0) - .saturating_add(Weight::from_parts(0, 4779)) + // Estimated: `8380` + // Minimum execution time: 22_601_000 picoseconds. + Weight::from_parts(23_221_224, 0) + .saturating_add(Weight::from_parts(0, 8380)) + // Standard Error: 273 + .saturating_add(Weight::from_parts(2_151, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } -} +} \ No newline at end of file From 20e7b2f2ef5a91e08ac86eed49c57cbbef683aa5 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Thu, 29 Jan 2026 12:54:15 +0500 Subject: [PATCH 97/98] fixed build issue in parachain-staking weights --- pallets/parachain-staking/src/weightinfo.rs | 1 - pallets/parachain-staking/src/weights.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pallets/parachain-staking/src/weightinfo.rs b/pallets/parachain-staking/src/weightinfo.rs index 4c8420d15..b4107b7ec 100644 --- a/pallets/parachain-staking/src/weightinfo.rs +++ b/pallets/parachain-staking/src/weightinfo.rs @@ -5,7 +5,6 @@ use frame_support::weights::Weight; /// Weight functions needed for parachain_staking. pub trait WeightInfo { fn on_initialize_no_action() -> Weight; - fn on_initialize_round_update() -> Weight; fn force_new_round() -> Weight; fn set_max_selected_candidates(n: u32, m: u32) -> Weight; fn set_blocks_per_round() -> Weight; diff --git a/pallets/parachain-staking/src/weights.rs b/pallets/parachain-staking/src/weights.rs index 714188951..f203e349d 100644 --- a/pallets/parachain-staking/src/weights.rs +++ b/pallets/parachain-staking/src/weights.rs @@ -29,7 +29,7 @@ use core::marker::PhantomData; /// Weight functions for `parachain_staking`. pub struct WeightInfo(PhantomData); -impl parachain_staking::WeightInfo for WeightInfo { +impl crate::WeightInfo for WeightInfo { /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn on_initialize_no_action() -> Weight { From 75e88588f779730924916ab397aefabfa8b7b501 Mon Sep 17 00:00:00 2001 From: talhadaar Date: Fri, 30 Jan 2026 13:37:59 +0500 Subject: [PATCH 98/98] synced evm nonce update before gas recording fix --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1fa942cef..37f318568 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3358,7 +3358,7 @@ dependencies = [ [[package]] name = "evm" version = "0.42.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#b21947f276013d4d4c1a86e2503142287ea8a983" dependencies = [ "auto_impl", "environmental", @@ -3378,7 +3378,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.42.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#b21947f276013d4d4c1a86e2503142287ea8a983" dependencies = [ "parity-scale-codec", "primitive-types", @@ -3389,7 +3389,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.42.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#b21947f276013d4d4c1a86e2503142287ea8a983" dependencies = [ "environmental", "evm-core", @@ -3400,7 +3400,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.42.0" -source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#6ca5a72bc8942f4860137155dd9033526fd362a5" +source = "git+https://github.com/peaqnetwork/evm?branch=peaq-polkadot-stable2503-4#b21947f276013d4d4c1a86e2503142287ea8a983" dependencies = [ "auto_impl", "environmental",