diff --git a/Cargo.lock b/Cargo.lock index b3e42ec181..2d8d9c329a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,9 +116,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -131,36 +131,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -495,9 +495,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", "cfg-if", @@ -506,7 +506,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 0.38.44", + "rustix 1.0.7", "slab", "tracing", "windows-sys 0.59.0", @@ -536,9 +536,9 @@ 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", @@ -549,15 +549,15 @@ dependencies = [ "cfg-if", "event-listener 5.4.0", "futures-lite", - "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", "async-lock", @@ -565,7 +565,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.44", + "rustix 1.0.7", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -703,9 +703,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beef" @@ -719,7 +719,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "hash-db", "log", @@ -975,9 +975,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" [[package]] name = "byte-slice-cast" @@ -1031,9 +1031,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ "serde", ] @@ -1069,9 +1069,9 @@ checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" [[package]] name = "cc" -version = "1.2.23" +version = "1.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" +checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" dependencies = [ "jobserver", "libc", @@ -1226,9 +1226,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", @@ -1236,9 +1236,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", @@ -1289,9 +1289,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "combine" @@ -1430,9 +1430,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", @@ -1593,6 +1593,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" @@ -1688,7 +1703,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.15.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1698,7 +1713,7 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sp-api", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-inherents", "sp-runtime", "sp-state-machine", @@ -1710,7 +1725,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1726,7 +1741,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1740,17 +1755,34 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "sp-externalities", "sp-runtime-interface", "sp-trie", ] +[[package]] +name = "cumulus-primitives-storage-weight-reclaim" +version = "9.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + [[package]] name = "cumulus-relay-chain-interface" version = "0.21.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1769,7 +1801,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1945,7 +1977,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] [[package]] @@ -1971,7 +2003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] @@ -2498,7 +2530,7 @@ dependencies = [ [[package]] name = "evm" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6d86fe2d3bcc14887c2575f62958a67ac2d523db" +source = "git+https://github.com/rust-ethereum/evm?rev=e81732d6bb47e3d3d68d233e43919c4522598361#e81732d6bb47e3d3d68d233e43919c4522598361" dependencies = [ "auto_impl", "environmental", @@ -2518,7 +2550,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6d86fe2d3bcc14887c2575f62958a67ac2d523db" +source = "git+https://github.com/rust-ethereum/evm?rev=e81732d6bb47e3d3d68d233e43919c4522598361#e81732d6bb47e3d3d68d233e43919c4522598361" dependencies = [ "parity-scale-codec", "primitive-types 0.13.1", @@ -2529,7 +2561,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6d86fe2d3bcc14887c2575f62958a67ac2d523db" +source = "git+https://github.com/rust-ethereum/evm?rev=e81732d6bb47e3d3d68d233e43919c4522598361#e81732d6bb47e3d3d68d233e43919c4522598361" dependencies = [ "environmental", "evm-core", @@ -2540,7 +2572,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.42.0" -source = "git+https://github.com/rust-ethereum/evm?branch=v0.x#6d86fe2d3bcc14887c2575f62958a67ac2d523db" +source = "git+https://github.com/rust-ethereum/evm?rev=e81732d6bb47e3d3d68d233e43919c4522598361#e81732d6bb47e3d3d68d233e43919c4522598361" dependencies = [ "auto_impl", "environmental", @@ -2680,7 +2712,7 @@ dependencies = [ "sp-block-builder", "sp-consensus", "sp-runtime", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -2700,7 +2732,7 @@ dependencies = [ "maplit", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -2733,7 +2765,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -2773,7 +2805,7 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "prometheus", - "rand 0.8.5", + "rand 0.9.1", "rlp", "sc-block-builder", "sc-client-api", @@ -2782,7 +2814,6 @@ dependencies = [ "sc-network-sync", "sc-rpc", "sc-service", - "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "schnellru", @@ -2798,10 +2829,12 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-storage", + "sp-timestamp", + "sp-trie", "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", ] @@ -2816,7 +2849,7 @@ dependencies = [ "rustc-hex", "serde", "serde_json", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", ] [[package]] @@ -2928,7 +2961,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "scale-info", ] @@ -3016,7 +3049,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", ] @@ -3145,8 +3178,8 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +version = "39.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support", "frame-support-procedural", @@ -3169,8 +3202,8 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "46.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +version = "46.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "array-bytes", @@ -3208,7 +3241,7 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-database", "sp-externalities", "sp-genesis-builder", @@ -3232,7 +3265,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "aquamarine", "frame-support", @@ -3285,7 +3318,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "const-hex", @@ -3301,7 +3334,7 @@ dependencies = [ [[package]] name = "frame-support" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "aquamarine", "array-bytes", @@ -3344,7 +3377,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "31.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "cfg-expr", @@ -3357,14 +3390,14 @@ dependencies = [ "proc-macro-warning 1.84.1", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "syn 2.0.101", ] [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.3.0", @@ -3376,7 +3409,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro2", "quote", @@ -3386,7 +3419,7 @@ dependencies = [ [[package]] name = "frame-system" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "cfg-if", "docify", @@ -3406,7 +3439,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-benchmarking", "frame-support", @@ -3420,7 +3453,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "parity-scale-codec", @@ -3430,7 +3463,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support", "parity-scale-codec", @@ -3444,6 +3477,8 @@ version = "0.0.0" dependencies = [ "async-trait", "clap", + "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-storage-weight-reclaim", "fc-api", "fc-aura", "fc-cli", @@ -3510,6 +3545,7 @@ dependencies = [ name = "frontier-template-runtime" version = "0.0.0" dependencies = [ + "cumulus-primitives-storage-weight-reclaim", "fp-account", "fp-evm", "fp-rpc", @@ -3638,7 +3674,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -3726,6 +3762,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" @@ -3844,7 +3894,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", @@ -4003,12 +4053,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" @@ -4038,9 +4082,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.24.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ "async-trait", "cfg-if", @@ -4052,8 +4096,9 @@ dependencies = [ "idna 1.0.3", "ipnet", "once_cell", - "rand 0.8.5", - "thiserror 1.0.69", + "rand 0.9.1", + "ring 0.17.14", + "thiserror 2.0.12", "tinyvec", "tokio", "tracing", @@ -4062,21 +4107,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" dependencies = [ "cfg-if", "futures-util", "hickory-proto", "ipconfig", - "lru-cache", + "moka", "once_cell", - "parking_lot 0.12.3", - "rand 0.8.5", + "parking_lot 0.12.4", + "rand 0.9.1", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -4211,7 +4256,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -4257,11 +4302,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http 1.3.1", "hyper 1.6.0", "hyper-util", @@ -4276,19 +4320,20 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" 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", @@ -4306,7 +4351,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.1", + "windows-core 0.61.2", ] [[package]] @@ -4367,9 +4412,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -4383,9 +4428,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -4482,7 +4527,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.53.0", ] [[package]] @@ -4667,7 +4712,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", @@ -4917,7 +4962,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", "rand 0.8.5", "rustc-hash 2.1.1", "serde", @@ -5093,7 +5138,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]] @@ -5104,7 +5149,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "rocksdb", "smallvec", @@ -5133,9 +5178,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", @@ -5225,7 +5270,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", @@ -5247,7 +5292,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "smallvec", "trust-dns-resolver", ] @@ -5337,7 +5382,7 @@ dependencies = [ "log", "rand 0.8.5", "smallvec", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "trust-dns-proto 0.22.0", "void", @@ -5417,12 +5462,12 @@ dependencies = [ "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "quinn", "rand 0.8.5", "ring 0.16.20", "rustls 0.21.12", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 1.0.69", "tokio", ] @@ -5494,7 +5539,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "log", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", ] @@ -5559,7 +5604,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "rw-stream-sink", "soketto 0.8.1", @@ -5748,9 +5793,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", @@ -5766,7 +5811,7 @@ dependencies = [ "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", @@ -5776,7 +5821,7 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.9", + "socket2 0.5.10", "thiserror 2.0.12", "tokio", "tokio-stream", @@ -5795,9 +5840,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", @@ -5809,6 +5854,19 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lru" version = "0.12.5" @@ -6045,13 +6103,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]] @@ -6070,7 +6128,7 @@ dependencies = [ "hashlink 0.8.4", "lioness", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", @@ -6132,6 +6190,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", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "uuid", +] + [[package]] name = "multiaddr" version = "0.17.1" @@ -6530,11 +6607,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", ] @@ -6612,6 +6689,16 @@ 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" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "opaque-debug" @@ -6627,9 +6714,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ "bitflags 2.9.1", "cfg-if", @@ -6659,9 +6746,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.108" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -6717,7 +6804,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-aura" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support", "frame-system", @@ -6733,7 +6820,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support", "frame-system", @@ -6746,7 +6833,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-benchmarking", "frame-support", @@ -6769,7 +6856,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "frame-benchmarking", @@ -6845,6 +6932,7 @@ dependencies = [ name = "pallet-evm" version = "6.0.0-dev" dependencies = [ + "cumulus-primitives-storage-weight-reclaim", "environmental", "evm", "fp-account", @@ -7009,7 +7097,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-benchmarking", "frame-support", @@ -7046,7 +7134,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-support", "frame-system", @@ -7067,7 +7155,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "frame-benchmarking", @@ -7082,7 +7170,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "frame-benchmarking", @@ -7101,7 +7189,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-benchmarking", "frame-support", @@ -7117,7 +7205,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "jsonrpsee 0.24.9", "pallet-transaction-payment-rpc-runtime-api", @@ -7133,7 +7221,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7145,7 +7233,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "39.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-benchmarking", "frame-support", @@ -7184,7 +7272,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", @@ -7193,9 +7281,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.7.4" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -7210,9 +7298,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.7.4" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -7245,12 +7333,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]] @@ -7269,9 +7357,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", @@ -7461,7 +7549,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-core-primitives" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -7472,7 +7560,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bs58", "futures", @@ -7491,7 +7579,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -7516,7 +7604,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", "bounded-vec", @@ -7542,7 +7630,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "bitvec", @@ -7571,13 +7659,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "21.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", "futures-timer", "orchestra", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -7593,7 +7681,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bounded-collections", "derive_more 0.99.20", @@ -7609,7 +7697,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "17.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bitvec", "hex-literal", @@ -7637,7 +7725,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7730,15 +7818,15 @@ checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" [[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", ] @@ -7768,9 +7856,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" @@ -7837,7 +7925,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "syn 2.0.101", "trybuild", ] @@ -7904,9 +7992,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", @@ -8040,7 +8128,7 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "thiserror 1.0.69", ] @@ -8052,7 +8140,7 @@ checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus-client-derive-encode", ] @@ -8247,7 +8335,7 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ "bytes", "libc", - "socket2 0.5.9", + "socket2 0.5.10", "tracing", "windows-sys 0.48.0", ] @@ -8920,9 +9008,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ruzstd" @@ -8973,7 +9061,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "sp-core", @@ -8984,7 +9072,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -9014,7 +9102,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "futures-timer", @@ -9036,7 +9124,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.43.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "sp-api", @@ -9051,7 +9139,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "docify", @@ -9067,7 +9155,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -9078,7 +9166,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -9089,7 +9177,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.50.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "chrono", @@ -9131,13 +9219,13 @@ dependencies = [ [[package]] name = "sc-client-api" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -9158,7 +9246,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.45.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "hash-db", "kvdb", @@ -9168,7 +9256,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-state-db", "schnellru", @@ -9184,13 +9272,13 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", "log", "mockall 0.11.4", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network-types", "sc-utils", @@ -9208,7 +9296,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -9237,7 +9325,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "fork-tree", @@ -9247,7 +9335,7 @@ 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", @@ -9262,7 +9350,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-inherents", "sp-keystore", "sp-runtime", @@ -9273,7 +9361,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9286,7 +9374,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ahash", "array-bytes", @@ -9298,7 +9386,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", @@ -9320,7 +9408,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -9330,7 +9418,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "assert_matches", "async-trait", @@ -9365,7 +9453,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -9388,10 +9476,10 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", @@ -9411,7 +9499,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "polkavm", "sc-allocator", @@ -9424,7 +9512,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "polkavm", @@ -9435,13 +9523,13 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rustix 0.36.17", "sc-allocator", "sc-executor-common", @@ -9453,7 +9541,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "console", "futures", @@ -9470,10 +9558,10 @@ dependencies = [ [[package]] name = "sc-keystore" version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "serde_json", "sp-application-crypto", "sp-core", @@ -9484,7 +9572,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "arrayvec 0.7.6", @@ -9496,7 +9584,7 @@ dependencies = [ "mixnet", "multiaddr 0.18.2", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network", "sc-network-types", @@ -9512,8 +9600,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.48.3" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +version = "0.48.4" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -9533,7 +9621,7 @@ dependencies = [ "mockall 0.11.4", "once_cell", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "partial_sort", "pin-project", "prost 0.12.6", @@ -9564,7 +9652,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -9582,7 +9670,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ahash", "futures", @@ -9601,7 +9689,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -9622,7 +9710,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -9658,7 +9746,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "futures", @@ -9677,7 +9765,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.15.2" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bs58", "ed25519-dalek", @@ -9694,7 +9782,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "bytes", @@ -9703,13 +9791,13 @@ dependencies = [ "futures-timer", "http-body-util", "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper-rustls 0.27.7", "hyper-util", "log", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rustls 0.23.27", "sc-client-api", @@ -9731,7 +9819,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.18.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9740,13 +9828,13 @@ dependencies = [ [[package]] name = "sc-rpc" version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "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", @@ -9772,7 +9860,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "jsonrpsee 0.24.9", "parity-scale-codec", @@ -9792,7 +9880,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -9816,7 +9904,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "futures", @@ -9826,7 +9914,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", @@ -9848,7 +9936,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "directories", @@ -9858,7 +9946,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", @@ -9912,18 +10000,18 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.37.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sp-core", ] [[package]] name = "sc-sysinfo" version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "derive_more 0.99.20", "futures", @@ -9936,7 +10024,7 @@ dependencies = [ "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-io", "sp-std", ] @@ -9944,13 +10032,13 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "chrono", "futures", "libp2p", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "sc-network", @@ -9964,7 +10052,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "chrono", "console", @@ -9972,7 +10060,7 @@ 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", @@ -9992,7 +10080,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", @@ -10003,7 +10091,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10013,7 +10101,7 @@ 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", @@ -10021,7 +10109,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -10034,7 +10122,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10050,13 +10138,13 @@ dependencies = [ [[package]] name = "sc-utils" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus", "sp-arithmetic", ] @@ -10237,6 +10325,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" @@ -10340,7 +10434,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", @@ -10726,7 +10820,7 @@ dependencies = [ "log", "lru", "no-std-net", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -10774,9 +10868,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", @@ -10816,7 +10910,7 @@ dependencies = [ [[package]] name = "sp-api" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "hash-db", @@ -10838,7 +10932,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "blake2 0.10.6", @@ -10852,7 +10946,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -10864,7 +10958,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "integer-sqrt", @@ -10878,7 +10972,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -10890,7 +10984,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "sp-api", "sp-inherents", @@ -10900,11 +10994,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "schnellru", "sp-api", "sp-consensus", @@ -10919,7 +11013,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "futures", @@ -10934,7 +11028,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", @@ -10950,7 +11044,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", @@ -10968,7 +11062,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "finality-grandpa", "log", @@ -10985,7 +11079,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -10996,7 +11090,7 @@ dependencies = [ [[package]] name = "sp-core" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -11016,7 +11110,7 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", "primitive-types 0.13.1", "rand 0.8.5", @@ -11025,7 +11119,7 @@ dependencies = [ "secp256k1 0.28.2", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -11056,7 +11150,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "blake2b_simd", "byteorder", @@ -11069,26 +11163,26 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "syn 2.0.101", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "proc-macro2", "quote", @@ -11098,7 +11192,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "environmental", "parity-scale-codec", @@ -11108,7 +11202,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -11120,7 +11214,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11133,7 +11227,7 @@ dependencies = [ [[package]] name = "sp-io" version = "39.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bytes", "docify", @@ -11145,7 +11239,7 @@ dependencies = [ "rustversion", "secp256k1 0.28.2", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -11159,7 +11253,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "40.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "sp-core", "sp-runtime", @@ -11169,10 +11263,10 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sp-core", "sp-externalities", ] @@ -11180,7 +11274,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -11189,7 +11283,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "frame-metadata 18.0.0", "parity-scale-codec", @@ -11199,7 +11293,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.13.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -11210,7 +11304,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "sp-api", "sp-core", @@ -11220,7 +11314,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "backtrace", "regex", @@ -11229,7 +11323,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "33.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -11239,7 +11333,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "40.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "binary-merkle-tree", "docify", @@ -11268,7 +11362,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11287,7 +11381,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "18.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "expander", @@ -11300,7 +11394,7 @@ dependencies = [ [[package]] name = "sp-session" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "scale-info", @@ -11314,7 +11408,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "37.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -11327,12 +11421,12 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.44.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "smallvec", "sp-core", @@ -11347,7 +11441,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -11360,7 +11454,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-externalities", "sp-runtime", "sp-runtime-interface", @@ -11371,12 +11465,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -11388,7 +11482,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", @@ -11400,7 +11494,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "tracing", @@ -11411,7 +11505,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "sp-api", "sp-runtime", @@ -11420,7 +11514,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "async-trait", "parity-scale-codec", @@ -11434,14 +11528,14 @@ dependencies = [ [[package]] name = "sp-trie" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "ahash", "hash-db", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", "schnellru", @@ -11456,7 +11550,7 @@ dependencies = [ [[package]] name = "sp-version" version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -11473,7 +11567,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "parity-scale-codec", "proc-macro-warning 1.84.1", @@ -11485,7 +11579,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "21.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11497,7 +11591,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -11544,9 +11638,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c3a85280daca669cfd3bcb68a337882a8bc57ec882f72c5d13a430613a738e" +checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" dependencies = [ "sqlx-core", "sqlx-macros", @@ -11555,9 +11649,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f743f2a3cea30a58cd479013f75550e879009e3a02f616f18ca699335aa248c3" +checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ "base64 0.22.1", "bytes", @@ -11589,9 +11683,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4200e0fde19834956d4252347c12a083bdcb237d7a1a1446bffd8768417dce" +checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" dependencies = [ "proc-macro2", "quote", @@ -11602,9 +11696,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882ceaa29cade31beca7129b6beeb05737f44f82dbe2a9806ecea5a7093d00b7" +checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", @@ -11619,16 +11713,15 @@ dependencies = [ "sqlx-core", "sqlx-sqlite", "syn 2.0.101", - "tempfile", "tokio", "url", ] [[package]] name = "sqlx-sqlite" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c26083e9a520e8eb87a06b12347679b142dc2ea29e6e409f805644a7a979a5bc" +checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" dependencies = [ "atoi", "flume", @@ -11671,8 +11764,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-xcm" -version = "15.0.3" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +version = "15.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "bounded-collections", @@ -11698,15 +11791,15 @@ 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.4", + "parking_lot_core 0.9.11", "static_init_macro", "winapi", ] @@ -11780,7 +11873,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -11805,12 +11898,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" [[package]] name = "substrate-frame-rpc-system" version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -11830,7 +11923,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "http-body-util", "hyper 1.6.0", @@ -11844,7 +11937,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "async-trait", @@ -11871,7 +11964,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "frame-executive", @@ -11894,7 +11987,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6)", "sp-externalities", "sp-genesis-builder", "sp-inherents", @@ -11915,7 +12008,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "futures", "sc-block-builder", @@ -11933,7 +12026,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "25.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "array-bytes", "build-helper", @@ -12191,6 +12284,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" @@ -12400,18 +12499,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", ] @@ -12607,9 +12706,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" dependencies = [ "proc-macro2", "quote", @@ -12618,9 +12717,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -12639,7 +12738,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "coarsetime", "polkadot-primitives", @@ -12650,7 +12749,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "expander", "proc-macro-crate 3.3.0", @@ -12679,7 +12778,7 @@ dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "sharded-slab", "smallvec", @@ -12773,7 +12872,7 @@ dependencies = [ "ipconfig", "lru-cache", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "resolv-conf", "smallvec", @@ -13002,6 +13101,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" @@ -13572,6 +13682,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" @@ -13584,17 +13716,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.61.1" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", "windows-link", - "windows-result 0.3.3", + "windows-result 0.3.4", "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" @@ -13623,6 +13766,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" @@ -13634,18 +13787,18 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -13748,6 +13901,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" @@ -14020,7 +14182,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-5#d77b878daef34cf840eb34657d48f644ed9ca197" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" dependencies = [ "Inflector", "proc-macro2", @@ -14052,7 +14214,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "static_assertions", @@ -14067,7 +14229,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.9.1", "static_assertions", diff --git a/Cargo.toml b/Cargo.toml index fcb2f0769a..af5322012d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,15 +56,15 @@ derive_more = "1.0" environmental = { version = "1.1.4", default-features = false } ethereum = { git = "https://github.com/rust-ethereum/ethereum", rev = "3be0d8fd4c2ad1ba216b69ef65b9382612efc8ba", default-features = false } ethereum-types = { version = "0.15", default-features = false } -evm = { git = "https://github.com/rust-ethereum/evm", branch = "v0.x", default-features = false } +evm = { git = "https://github.com/rust-ethereum/evm", rev = "e81732d6bb47e3d3d68d233e43919c4522598361", default-features = false } futures = "0.3.31" hash-db = { version = "0.16.0", default-features = false } hex = { version = "0.4.3", default-features = false, features = ["alloc"] } hex-literal = "0.4.1" impl-serde = { version = "0.5.0", default-features = false } impl-trait-for-tuples = "0.2.3" -jsonrpsee = { version = "0.24.7" } -jsonrpsee-core = { version = "0.24.7" } +jsonrpsee = { version = "0.24.9" } +jsonrpsee-core = { version = "0.24.9" } kvdb-rocksdb = "0.19.0" libsecp256k1 = { version = "0.7.1", default-features = false } log = { version = "0.4.21", default-features = false } @@ -79,85 +79,90 @@ serde = { version = "1.0", default-features = false, features = ["derive", "allo serde_json = "1.0" similar-asserts = "1.5.0" sqlx = { version = "0.8.2", default-features = false, features = ["macros"] } -thiserror = "1.0" +thiserror = "2.0" tokio = "1.43.0" # Substrate Client -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } # Substrate Primitive -sp-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-crypto-hashing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-database = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-crypto-hashing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-database = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } # Substrate FRAME -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } # Substrate Utility -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -substrate-test-runtime-client = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +substrate-test-runtime-client = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6" } + +# Cumulus primitives +cumulus-primitives-proof-size-hostfunction = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } # XCM -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-5", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-stable2412-6", default-features = false } # Arkworks ark-bls12-377 = { version = "0.4.0", default-features = false, features = ["curve"] } diff --git a/client/db/Cargo.toml b/client/db/Cargo.toml index 9c371684cc..79fd2ad30a 100644 --- a/client/db/Cargo.toml +++ b/client/db/Cargo.toml @@ -40,7 +40,7 @@ fp-storage = { workspace = true, features = ["default"] } [dev-dependencies] futures = { workspace = true } maplit = "1.0.2" -tempfile = "3.14.0" +tempfile = "3.17.1" # Substrate sc-block-builder = { workspace = true } sp-consensus = { workspace = true } diff --git a/client/mapping-sync/Cargo.toml b/client/mapping-sync/Cargo.toml index 67c0a4c7a9..2775e0790a 100644 --- a/client/mapping-sync/Cargo.toml +++ b/client/mapping-sync/Cargo.toml @@ -35,7 +35,7 @@ ethereum = { workspace = true } ethereum-types = { workspace = true } scale-codec = { workspace = true } sqlx = { workspace = true, features = ["runtime-tokio-native-tls", "sqlite"] } -tempfile = "3.14.0" +tempfile = "3.17.1" tokio = { workspace = true, features = ["sync"] } # Substrate sc-block-builder = { workspace = true } diff --git a/client/rpc-core/src/eth.rs b/client/rpc-core/src/eth.rs index 8a18c33086..7803ff9ab4 100644 --- a/client/rpc-core/src/eth.rs +++ b/client/rpc-core/src/eth.rs @@ -202,6 +202,10 @@ pub trait EthApi { number_or_hash: Option, ) -> RpcResult; + /// Returns all pending transactions. + #[method(name = "eth_pendingTransactions")] + async fn pending_transactions(&self) -> RpcResult>; + // ######################################################################## // Fee // ######################################################################## @@ -214,7 +218,7 @@ pub trait EthApi { #[method(name = "eth_feeHistory")] async fn fee_history( &self, - block_count: U256, + block_count: BlockCount, newest_block: BlockNumberOrHash, reward_percentiles: Option>, ) -> RpcResult; diff --git a/client/rpc-core/src/types/block_count.rs b/client/rpc-core/src/types/block_count.rs new file mode 100644 index 0000000000..db5f0ef417 --- /dev/null +++ b/client/rpc-core/src/types/block_count.rs @@ -0,0 +1,133 @@ +// This file is part of Frontier. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use std::{fmt, str::FromStr}; + +use ethereum_types::U256; +use serde::{ + de::{Error, Visitor}, + Deserialize, Deserializer, Serialize, Serializer, +}; + +/// Represents An RPC Api block count param, which can take the form of a number, an hex string, or a 32-bytes array +#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] +pub enum BlockCount { + /// U256 + U256(U256), + /// Number + Num(u64), +} + +impl<'a> Deserialize<'a> for BlockCount { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'a>, + { + deserializer.deserialize_any(BlockCountVisitor) + } +} + +impl Serialize for BlockCount { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match *self { + BlockCount::U256(ref x) => x.serialize(serializer), + BlockCount::Num(ref x) => serializer.serialize_str(&format!("0x{:x}", x)), + } + } +} + +struct BlockCountVisitor; + +impl From for U256 { + fn from(block_count: BlockCount) -> U256 { + match block_count { + BlockCount::Num(n) => U256::from(n), + BlockCount::U256(n) => n, + } + } +} + +impl From for u64 { + fn from(block_count: BlockCount) -> u64 { + match block_count { + BlockCount::Num(n) => n, + BlockCount::U256(n) => n.as_u64(), + } + } +} + +impl<'a> Visitor<'a> for BlockCountVisitor { + type Value = BlockCount; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + write!( + formatter, + "an intenger, a (both 0x-prefixed or not) hex string or byte array containing between (0; 32] bytes" + ) + } + + fn visit_str(self, value: &str) -> Result + where + E: Error, + { + let number = value.parse::(); + match number { + Ok(n) => Ok(BlockCount::Num(n)), + Err(_) => U256::from_str(value).map(BlockCount::U256).map_err(|_| { + Error::custom("Invalid block count: non-decimal or missing 0x prefix".to_string()) + }), + } + } + + fn visit_string(self, value: String) -> Result + where + E: Error, + { + self.visit_str(value.as_ref()) + } + + fn visit_u64(self, value: u64) -> Result + where + E: Error, + { + Ok(BlockCount::Num(value)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn match_block_number(block_count: BlockCount) -> Option { + match block_count { + BlockCount::Num(n) => Some(U256::from(n)), + BlockCount::U256(n) => Some(n), + } + } + + #[test] + fn block_number_deserialize() { + let bn_dec: BlockCount = serde_json::from_str(r#""42""#).unwrap(); + let bn_hex: BlockCount = serde_json::from_str(r#""0x45""#).unwrap(); + assert_eq!(match_block_number(bn_dec).unwrap(), U256::from(42)); + assert_eq!(match_block_number(bn_hex).unwrap(), U256::from("0x45")); + } +} diff --git a/client/rpc-core/src/types/mod.rs b/client/rpc-core/src/types/mod.rs index bdbce709b7..53635b00e7 100644 --- a/client/rpc-core/src/types/mod.rs +++ b/client/rpc-core/src/types/mod.rs @@ -20,6 +20,7 @@ mod account_info; mod block; +mod block_count; mod block_number; mod bytes; mod call_request; @@ -45,6 +46,7 @@ pub use self::txpool::{Summary, TransactionMap, TxPoolResult}; pub use self::{ account_info::{AccountInfo, EthAccount, ExtAccountInfo, RecoveredAccount, StorageProof}, block::{Block, BlockTransactions, Header, Rich, RichBlock, RichHeader}, + block_count::BlockCount, block_number::BlockNumberOrHash, bytes::Bytes, call_request::CallStateOverride, diff --git a/client/rpc/Cargo.toml b/client/rpc/Cargo.toml index 2e5f68ea3e..665e259325 100644 --- a/client/rpc/Cargo.toml +++ b/client/rpc/Cargo.toml @@ -20,7 +20,7 @@ jsonrpsee = { workspace = true, features = ["server", "macros"] } libsecp256k1 = { workspace = true } log = { workspace = true } prometheus = { version = "0.13.4", default-features = false } -rand = "0.8" +rand = "0.9" rlp = { workspace = true } scale-codec = { workspace = true } schnellru = "0.2.4" @@ -35,7 +35,6 @@ sc-network = { workspace = true } sc-network-sync = { workspace = true } sc-rpc = { workspace = true } sc-service = { workspace = true } -sc-transaction-pool = { workspace = true } sc-transaction-pool-api = { workspace = true } sc-utils = { workspace = true } sp-api = { workspace = true, features = ["default"] } @@ -49,6 +48,8 @@ sp-io = { workspace = true, features = ["default"] } sp-runtime = { workspace = true, features = ["default"] } sp-state-machine = { workspace = true, features = ["default"] } sp-storage = { workspace = true, features = ["default"] } +sp-timestamp = { workspace = true, features = ["default"], optional = true } +sp-trie = { workspace = true, features = ["default"] } # Frontier fc-api = { workspace = true } fc-mapping-sync = { workspace = true } diff --git a/client/rpc/src/eth/block.rs b/client/rpc/src/eth/block.rs index f168cf68b1..f2b5a24840 100644 --- a/client/rpc/src/eth/block.rs +++ b/client/rpc/src/eth/block.rs @@ -22,8 +22,7 @@ use ethereum_types::{H256, U256}; use jsonrpsee::core::RpcResult; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; -use sc_transaction_pool_api::InPoolTransaction; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_core::hashing::keccak_256; @@ -37,14 +36,14 @@ use crate::{ frontier_backend_client, internal_err, }; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi, + P: TransactionPool + 'static, { pub async fn block_by_hash(&self, hash: H256, full: bool) -> RpcResult> { let BlockInfo { @@ -145,7 +144,6 @@ where // ready validated pool xts.extend( graph - .validated_pool() .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect::::Extrinsic>>(), @@ -154,10 +152,9 @@ where // future validated pool xts.extend( graph - .validated_pool() .futures() .iter() - .map(|(_hash, extrinsic)| extrinsic.as_ref().clone()) + .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect::::Extrinsic>>(), ); @@ -197,9 +194,7 @@ where ) -> RpcResult> { if let BlockNumberOrHash::Pending = number_or_hash { // get the pending transactions count - return Ok(Some(U256::from( - self.graph.validated_pool().ready().count(), - ))); + return Ok(Some(U256::from(self.graph.ready().count()))); } let block_info = self.block_info_by_number(number_or_hash).await?; diff --git a/client/rpc/src/eth/client.rs b/client/rpc/src/eth/client.rs index 97a64d2e68..cbdc975dcb 100644 --- a/client/rpc/src/eth/client.rs +++ b/client/rpc/src/eth/client.rs @@ -20,7 +20,6 @@ use ethereum_types::{H160, U256, U64}; use jsonrpsee::core::RpcResult; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_consensus::SyncOracle; @@ -31,14 +30,13 @@ use fp_rpc::EthereumRuntimeRPCApi; use crate::{eth::Eth, internal_err}; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend, - A: ChainApi, { pub fn protocol_version(&self) -> RpcResult { Ok(1) diff --git a/client/rpc/src/eth/execute.rs b/client/rpc/src/eth/execute.rs index b1abf33da6..4d534bae90 100644 --- a/client/rpc/src/eth/execute.rs +++ b/client/rpc/src/eth/execute.rs @@ -24,7 +24,7 @@ use jsonrpsee::{core::RpcResult, types::error::CALL_EXECUTION_FAILED_CODE}; use scale_codec::{Decode, Encode}; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; +use sc_transaction_pool_api::TransactionPool; use sp_api::{ApiExt, CallApiAt, CallApiAtParams, CallContext, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder as BlockBuilderApi; use sp_blockchain::HeaderBackend; @@ -65,16 +65,16 @@ impl EstimateGasAdapter for () { } } -impl Eth +impl Eth where B: BlockT, C: CallApiAt + ProvideRuntimeApi, C::Api: BlockBuilderApi + EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi, CIDP: CreateInherentDataProviders + Send + 'static, EC: EthConfig, + P: TransactionPool + 'static, { pub async fn call( &self, @@ -105,7 +105,7 @@ where ) }; - let (substrate_hash, api) = match frontier_backend_client::native_block_id::( + let (substrate_hash, mut api) = match frontier_backend_client::native_block_id::( self.client.as_ref(), self.backend.as_ref(), number_or_hash, @@ -127,6 +127,12 @@ where } }; + // Enable proof size recording + api.record_proof(); + let recorder: sp_trie::recorder::Recorder> = Default::default(); + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder.clone()); + api.register_extension(ext); + let api_version = if let Ok(Some(api_version)) = api.api_version::>(substrate_hash) { @@ -238,14 +244,21 @@ where api_version, state_overrides, )?; + + // Enable proof size recording + let recorder: sp_trie::recorder::Recorder> = Default::default(); + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder.clone()); + let mut exts = Extensions::new(); + exts.register(ext); + let params = CallApiAtParams { at: substrate_hash, function: "EthereumRuntimeRPCApi_call", arguments: encoded_params, overlayed_changes: &RefCell::new(overlayed_changes), call_context: CallContext::Offchain, - recorder: &None, - extensions: &RefCell::new(Extensions::new()), + recorder: &Some(recorder), + extensions: &RefCell::new(exts), }; let value = if api_version == 4 { @@ -636,27 +649,56 @@ where (info.exit_reason, info.value, info.used_gas) } else { // Post-london + access list support - let access_list = access_list.unwrap_or_default(); - let info = api.call( - substrate_hash, - from.unwrap_or_default(), - to, - data, - value.unwrap_or_default(), - gas_limit, - max_fee_per_gas, - max_priority_fee_per_gas, - None, - estimate_mode, - Some( + let encoded_params = Encode::encode(&( + &from.unwrap_or_default(), + &to, + &data, + &value.unwrap_or_default(), + &gas_limit, + &max_fee_per_gas, + &max_priority_fee_per_gas, + &None::>, + &estimate_mode, + &Some( access_list + .unwrap_or_default() .into_iter() .map(|item| (item.address, item.storage_keys)) - .collect(), + .collect::)>>(), ), - ) - .map_err(|err| internal_err(format!("runtime error: {err}")))? - .map_err(|err| internal_err(format!("execution fatal: {err:?}")))?; + )); + + // Proof size recording + let recorder: sp_trie::recorder::Recorder> = Default::default(); + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder.clone()); + let mut exts = Extensions::new(); + exts.register(ext); + + let params = CallApiAtParams { + at: substrate_hash, + function: "EthereumRuntimeRPCApi_call", + arguments: encoded_params, + overlayed_changes: &RefCell::new(Default::default()), + call_context: CallContext::Offchain, + recorder: &Some(recorder), + extensions: &RefCell::new(exts), + }; + + let info = self + .client + .call_api_at(params) + .and_then(|r| { + Result::map_err( + >, DispatchError> as Decode>::decode(&mut &r[..]), + |error| sp_api::ApiError::FailedToDecodeReturnValue { + function: "EthereumRuntimeRPCApi_call", + error, + raw: r + }, + ) + }) + .map_err(|err| internal_err(format!("runtime error: {err}")))? + .map_err(|err| internal_err(format!("execution fatal: {err:?}")))?; (info.exit_reason, info.value, info.used_gas.effective) } @@ -724,24 +766,53 @@ where (info.exit_reason, Vec::new(), info.used_gas) } else { // Post-london + access list support - let access_list = access_list.unwrap_or_default(); - let info = api.create( - substrate_hash, - from.unwrap_or_default(), - data, - value.unwrap_or_default(), - gas_limit, - max_fee_per_gas, - max_priority_fee_per_gas, - None, - estimate_mode, - Some( + let encoded_params = Encode::encode(&( + &from.unwrap_or_default(), + &data, + &value.unwrap_or_default(), + &gas_limit, + &max_fee_per_gas, + &max_priority_fee_per_gas, + &None::>, + &estimate_mode, + &Some( access_list + .unwrap_or_default() .into_iter() .map(|item| (item.address, item.storage_keys)) - .collect(), + .collect::)>>(), ), - ) + )); + + // Enable proof size recording + let recorder: sp_trie::recorder::Recorder> = Default::default(); + let ext = sp_trie::proof_size_extension::ProofSizeExt::new(recorder.clone()); + let mut exts = Extensions::new(); + exts.register(ext); + + let params = CallApiAtParams { + at: substrate_hash, + function: "EthereumRuntimeRPCApi_create", + arguments: encoded_params, + overlayed_changes: &RefCell::new(Default::default()), + call_context: CallContext::Offchain, + recorder: &Some(recorder), + extensions: &RefCell::new(exts), + }; + + let info = self + .client + .call_api_at(params) + .and_then(|r| { + Result::map_err( + , DispatchError> as Decode>::decode(&mut &r[..]), + |error| sp_api::ApiError::FailedToDecodeReturnValue { + function: "EthereumRuntimeRPCApi_create", + error, + raw: r + }, + ) + }) .map_err(|err| internal_err(format!("runtime error: {err}")))? .map_err(|err| internal_err(format!("execution fatal: {err:?}")))?; diff --git a/client/rpc/src/eth/fee.rs b/client/rpc/src/eth/fee.rs index df8a8c20a9..728cc2229f 100644 --- a/client/rpc/src/eth/fee.rs +++ b/client/rpc/src/eth/fee.rs @@ -20,7 +20,6 @@ use ethereum_types::U256; use jsonrpsee::core::RpcResult; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_runtime::{ @@ -33,14 +32,13 @@ use fp_rpc::EthereumRuntimeRPCApi; use crate::{eth::Eth, frontier_backend_client, internal_err}; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi, { pub fn gas_price(&self) -> RpcResult { let block_hash = self.client.info().best_hash; @@ -53,17 +51,13 @@ where pub async fn fee_history( &self, - block_count: U256, + block_count: u64, newest_block: BlockNumberOrHash, reward_percentiles: Option>, ) -> RpcResult { // The max supported range size is 1024 by spec. - let range_limit = U256::from(1024); - let block_count = if block_count > range_limit { - range_limit.as_u64() - } else { - block_count.as_u64() - }; + let range_limit: u64 = 1024; + let block_count: u64 = u64::min(block_count, range_limit); if let Some(id) = frontier_backend_client::native_block_id::( self.client.as_ref(), diff --git a/client/rpc/src/eth/filter.rs b/client/rpc/src/eth/filter.rs index 36a484bec5..7dda8da5f7 100644 --- a/client/rpc/src/eth/filter.rs +++ b/client/rpc/src/eth/filter.rs @@ -28,8 +28,7 @@ use ethereum_types::{H256, U256}; use jsonrpsee::core::{async_trait, RpcResult}; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::{ChainApi, Pool}; -use sc_transaction_pool_api::InPoolTransaction; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_core::hashing::keccak_256; @@ -43,10 +42,10 @@ use fp_rpc::{EthereumRuntimeRPCApi, TransactionStatus}; use crate::{cache::EthBlockDataCacheTask, frontier_backend_client, internal_err}; -pub struct EthFilter { +pub struct EthFilter { client: Arc, backend: Arc>, - graph: Arc>, + graph: Arc

, filter_pool: FilterPool, max_stored_filters: usize, max_past_logs: u32, @@ -54,11 +53,11 @@ pub struct EthFilter { _marker: PhantomData, } -impl EthFilter { +impl EthFilter { pub fn new( client: Arc, backend: Arc>, - graph: Arc>, + graph: Arc

, filter_pool: FilterPool, max_stored_filters: usize, max_past_logs: u32, @@ -77,13 +76,13 @@ impl EthFilter { } } -impl EthFilter +impl EthFilter where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, { fn create_filter(&self, filter_type: FilterType) -> RpcResult { let info = self.client.info(); @@ -109,7 +108,6 @@ where let pending_transaction_hashes = if let FilterType::PendingTransaction = filter_type { let txs_ready = self .graph - .validated_pool() .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect(); @@ -146,14 +144,14 @@ where } #[async_trait] -impl EthFilterApiServer for EthFilter +impl EthFilterApiServer for EthFilter where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, { fn new_filter(&self, filter: Filter) -> RpcResult { self.create_filter(FilterType::Log(filter)) @@ -223,7 +221,6 @@ where let previous_hashes = pool_item.pending_transaction_hashes; let txs_ready = self .graph - .validated_pool() .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect(); diff --git a/client/rpc/src/eth/mining.rs b/client/rpc/src/eth/mining.rs index 7824bb0b23..d5d8a112b5 100644 --- a/client/rpc/src/eth/mining.rs +++ b/client/rpc/src/eth/mining.rs @@ -19,17 +19,15 @@ use ethereum_types::{H256, H64, U256}; use jsonrpsee::core::RpcResult; // Substrate -use sc_transaction_pool::ChainApi; use sp_runtime::traits::Block as BlockT; // Frontier use fc_rpc_core::types::*; use crate::eth::Eth; -impl Eth +impl Eth where B: BlockT, - A: ChainApi, { pub fn is_mining(&self) -> RpcResult { Ok(self.is_authority) diff --git a/client/rpc/src/eth/mod.rs b/client/rpc/src/eth/mod.rs index d7d3e14fba..6271b06533 100644 --- a/client/rpc/src/eth/mod.rs +++ b/client/rpc/src/eth/mod.rs @@ -36,7 +36,6 @@ use jsonrpsee::core::{async_trait, RpcResult}; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; use sc_network_sync::SyncingService; -use sc_transaction_pool::{ChainApi, Pool}; use sc_transaction_pool_api::TransactionPool; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder as BlockBuilderApi; @@ -71,9 +70,9 @@ impl EthConfig for () { } /// Eth API implementation. -pub struct Eth { +pub struct Eth { pool: Arc

, - graph: Arc>, + graph: Arc

, client: Arc, convert_transaction: Option, sync: Arc>, @@ -94,19 +93,18 @@ pub struct Eth { _marker: PhantomData<(BE, EC)>, } -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi, { pub fn new( client: Arc, pool: Arc

, - graph: Arc>, + graph: Arc

, convert_transaction: Option, sync: Arc>, signers: Vec>, @@ -247,13 +245,12 @@ where } } -impl Eth +impl Eth where B: BlockT, - A: ChainApi, EC: EthConfig, { - pub fn replace_config>(self) -> Eth { + pub fn replace_config>(self) -> Eth { let Self { client, pool, @@ -297,16 +294,15 @@ where } #[async_trait] -impl EthApiServer for Eth +impl EthApiServer for Eth where B: BlockT, C: CallApiAt + ProvideRuntimeApi, C::Api: BlockBuilderApi + ConvertTransactionRuntimeApi + EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - P: TransactionPool + 'static, + P: TransactionPool + 'static, CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, - A: ChainApi + 'static, CIDP: CreateInherentDataProviders + Send + 'static, EC: EthConfig, { @@ -455,6 +451,10 @@ where self.transaction_count(address, number_or_hash).await } + async fn pending_transactions(&self) -> RpcResult> { + self.pending_transactions().await + } + async fn code_at( &self, address: H160, @@ -494,11 +494,11 @@ where async fn fee_history( &self, - block_count: U256, + block_count: BlockCount, newest_block: BlockNumberOrHash, reward_percentiles: Option>, ) -> RpcResult { - self.fee_history(block_count, newest_block, reward_percentiles) + self.fee_history(block_count.into(), newest_block, reward_percentiles) .await } diff --git a/client/rpc/src/eth/pending.rs b/client/rpc/src/eth/pending.rs index a73709692a..9384b094d7 100644 --- a/client/rpc/src/eth/pending.rs +++ b/client/rpc/src/eth/pending.rs @@ -18,8 +18,7 @@ // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; -use sc_transaction_pool_api::InPoolTransaction; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::{ApiExt, ApiRef, Core, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder as BlockBuilderApi; use sp_blockchain::{ApplyExtrinsicFailed, HeaderBackend}; @@ -50,7 +49,7 @@ pub(crate) enum Error { ApplyExtrinsicFailed(#[from] ApplyExtrinsicFailed), } -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, @@ -58,8 +57,8 @@ where C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend, - A: ChainApi, CIDP: CreateInherentDataProviders + Send + 'static, + P: TransactionPool + 'static, { /// Creates a pending runtime API. pub(crate) async fn pending_runtime_api(&self) -> Result<(B::Hash, ApiRef), Error> { @@ -123,7 +122,6 @@ where // Get all extrinsics from the ready queue. let extrinsics: Vec<::Extrinsic> = self .graph - .validated_pool() .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect::::Extrinsic>>(); diff --git a/client/rpc/src/eth/state.rs b/client/rpc/src/eth/state.rs index ebc8f2f322..cef533e267 100644 --- a/client/rpc/src/eth/state.rs +++ b/client/rpc/src/eth/state.rs @@ -21,7 +21,6 @@ use jsonrpsee::core::RpcResult; use scale_codec::Encode; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder as BlockBuilderApi; @@ -34,15 +33,14 @@ use fp_rpc::EthereumRuntimeRPCApi; use crate::{eth::Eth, frontier_backend_client, internal_err}; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: BlockBuilderApi + EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - P: TransactionPool + 'static, - A: ChainApi, + P: TransactionPool + 'static, CIDP: CreateInherentDataProviders + Send + 'static, { pub async fn balance( diff --git a/client/rpc/src/eth/submit.rs b/client/rpc/src/eth/submit.rs index 1a4f9556ac..8592a9ec87 100644 --- a/client/rpc/src/eth/submit.rs +++ b/client/rpc/src/eth/submit.rs @@ -21,11 +21,11 @@ use futures::future::TryFutureExt; use jsonrpsee::core::RpcResult; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; -use sc_transaction_pool_api::TransactionPool; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::{ApiExt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder as BlockBuilderApi; use sp_blockchain::HeaderBackend; +use sp_core::H160; use sp_inherents::CreateInherentDataProviders; use sp_runtime::{traits::Block as BlockT, transaction_validity::TransactionSource}; // Frontier @@ -34,19 +34,18 @@ use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRP use crate::{ eth::{format, Eth}, - internal_err, + internal_err, public_key, }; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: BlockBuilderApi + ConvertTransactionRuntimeApi + EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - P: TransactionPool + 'static, + P: TransactionPool + 'static, CT: ConvertTransaction<::Extrinsic> + 'static, - A: ChainApi, CIDP: CreateInherentDataProviders + Send + 'static, { pub async fn send_transaction(&self, request: TransactionRequest) -> RpcResult { @@ -178,6 +177,63 @@ where .await } + pub async fn pending_transactions(&self) -> RpcResult> { + let ready = self + .graph + .ready() + .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) + .collect::>(); + + let future = self + .graph + .futures() + .iter() + .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) + .collect::>(); + + let all_extrinsics = ready + .iter() + .chain(future.iter()) + .cloned() + .collect::>(); + + let best_block = self.client.info().best_hash; + let api = self.client.runtime_api(); + + let api_version = api + .api_version::>(best_block) + .map_err(|err| internal_err(format!("Failed to get API version: {}", err)))? + .ok_or_else(|| internal_err("Failed to get API version"))?; + + let ethereum_txs = if api_version > 1 { + api.extrinsic_filter(best_block, all_extrinsics) + .map_err(|err| internal_err(format!("Runtime call failed: {}", err)))? + } else { + #[allow(deprecated)] + let legacy = api + .extrinsic_filter_before_version_2(best_block, all_extrinsics) + .map_err(|err| internal_err(format!("Runtime call failed: {}", err)))?; + legacy.into_iter().map(|tx| tx.into()).collect() + }; + + let transactions = ethereum_txs + .into_iter() + .filter_map(|tx| { + let pubkey = match public_key(&tx) { + Ok(pk) => H160::from(H256::from(sp_core::hashing::keccak_256(&pk))), + Err(_err) => { + // Skip transactions with invalid public keys + return None; + } + }; + + Some(Transaction::build_from(pubkey, &tx)) + }) + .collect(); + + Ok(transactions) + } + fn convert_transaction( &self, block_hash: B::Hash, diff --git a/client/rpc/src/eth/transaction.rs b/client/rpc/src/eth/transaction.rs index 04b1c45e0b..e276e50a57 100644 --- a/client/rpc/src/eth/transaction.rs +++ b/client/rpc/src/eth/transaction.rs @@ -23,8 +23,7 @@ use ethereum_types::{H256, U256, U64}; use jsonrpsee::core::RpcResult; // Substrate use sc_client_api::backend::{Backend, StorageProvider}; -use sc_transaction_pool::ChainApi; -use sc_transaction_pool_api::InPoolTransaction; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::{ApiExt, ProvideRuntimeApi}; use sp_blockchain::HeaderBackend; use sp_core::hashing::keccak_256; @@ -38,14 +37,14 @@ use crate::{ frontier_backend_client, internal_err, }; -impl Eth +impl Eth where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider + 'static, BE: Backend + 'static, - A: ChainApi, + P: TransactionPool + 'static, { pub async fn transaction_by_hash(&self, hash: H256) -> RpcResult> { let client = Arc::clone(&self.client); @@ -79,7 +78,6 @@ where // Collect transactions in the ready validated pool. xts.extend( graph - .validated_pool() .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect::::Extrinsic>>(), @@ -88,10 +86,9 @@ where // Collect transactions in the future validated pool. xts.extend( graph - .validated_pool() .futures() .iter() - .map(|(_hash, extrinsic)| extrinsic.as_ref().clone()) + .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect::::Extrinsic>>(), ); diff --git a/client/rpc/src/eth_pubsub.rs b/client/rpc/src/eth_pubsub.rs index d9bcfe08a3..ff5c7c9ba7 100644 --- a/client/rpc/src/eth_pubsub.rs +++ b/client/rpc/src/eth_pubsub.rs @@ -87,7 +87,7 @@ impl Clone for EthPubSub { impl EthPubSub where - P: TransactionPool + 'static, + P: TransactionPool + 'static, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + StorageProvider, @@ -151,7 +151,7 @@ where future::ready(res.map(|(block, receipts)| PubSubResult::logs(block, receipts, params))) } - fn pending_transaction(&self, hash: &TxHash

) -> future::Ready> { + fn pending_transactions(&self, hash: &TxHash

) -> future::Ready> { let res = if let Some(xt) = self.pool.ready_transaction(hash) { let best_block = self.client.info().best_hash; @@ -221,7 +221,7 @@ where impl EthPubSubApiServer for EthPubSub where B: BlockT, - P: TransactionPool + 'static, + P: TransactionPool + 'static, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: BlockchainEvents + 'static, @@ -263,7 +263,7 @@ where let pool = pubsub.pool.clone(); let stream = pool .import_notification_stream() - .filter_map(move |hash| pubsub.pending_transaction(&hash)); + .filter_map(move |hash| pubsub.pending_transactions(&hash)); PendingSubscription::from(pending) .pipe_from_stream(stream, BoundedVecDeque::new(16)) .await; diff --git a/client/rpc/src/txpool.rs b/client/rpc/src/txpool.rs index e0bbb9354d..bb5db8ffb8 100644 --- a/client/rpc/src/txpool.rs +++ b/client/rpc/src/txpool.rs @@ -23,8 +23,7 @@ use ethereum_types::{H160, H256, U256}; use jsonrpsee::core::RpcResult; use serde::Serialize; // substrate -use sc_transaction_pool::{ChainApi, Pool}; -use sc_transaction_pool_api::InPoolTransaction; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_core::hashing::keccak_256; @@ -43,29 +42,29 @@ struct TxPoolTransactions { future: Vec, } -pub struct TxPool { +pub struct TxPool { client: Arc, - graph: Arc>, + pool: Arc

, _marker: PhantomData, } -impl Clone for TxPool { +impl Clone for TxPool { fn clone(&self) -> Self { Self { client: self.client.clone(), - graph: self.graph.clone(), + pool: self.pool.clone(), _marker: PhantomData, } } } -impl TxPool +impl TxPool where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, { fn map_build(&self) -> RpcResult>> where @@ -106,19 +105,17 @@ where fn collect_txpool_transactions(&self) -> RpcResult { // Collect extrinsics in the ready validated pool. let ready_extrinsics = self - .graph - .validated_pool() + .pool .ready() .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect(); // Collect extrinsics in the future validated pool. let future_extrinsics = self - .graph - .validated_pool() + .pool .futures() .iter() - .map(|(_, extrinsic)| extrinsic.as_ref().clone()) + .map(|in_pool_tx| in_pool_tx.data().as_ref().clone()) .collect(); // Use the runtime to match the (here) opaque extrinsics against ethereum transactions. @@ -135,23 +132,23 @@ where } } -impl TxPool { - pub fn new(client: Arc, graph: Arc>) -> Self { +impl TxPool { + pub fn new(client: Arc, pool: Arc

) -> Self { Self { client, - graph, + pool, _marker: PhantomData, } } } -impl TxPoolApiServer for TxPool +impl TxPoolApiServer for TxPool where B: BlockT, C: ProvideRuntimeApi, C::Api: EthereumRuntimeRPCApi, C: HeaderBackend + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, { fn content(&self) -> RpcResult>> { self.map_build::() @@ -162,7 +159,7 @@ where } fn status(&self) -> RpcResult> { - let status = self.graph.validated_pool().status(); + let status = self.pool.status(); Ok(TxPoolResult { pending: U256::from(status.ready), queued: U256::from(status.future), diff --git a/frame/evm/Cargo.toml b/frame/evm/Cargo.toml index de113ade89..50a04a72de 100644 --- a/frame/evm/Cargo.toml +++ b/frame/evm/Cargo.toml @@ -20,6 +20,10 @@ impl-trait-for-tuples = "0.2.3" log = { workspace = true } scale-codec = { workspace = true } scale-info = { workspace = true } + +# Cumulus +cumulus-primitives-storage-weight-reclaim = { workspace = true, default-features = false } + # Substrate frame-benchmarking = { workspace = true, optional = true } frame-support = { workspace = true } @@ -48,6 +52,8 @@ std = [ "log/std", "scale-codec/std", "scale-info/std", + # Cumulus + "cumulus-primitives-storage-weight-reclaim/std", # Substrate "frame-benchmarking?/std", "frame-support/std", diff --git a/frame/evm/precompile/simple/src/lib.rs b/frame/evm/precompile/simple/src/lib.rs index 5015ed9741..bb2567fcc6 100644 --- a/frame/evm/precompile/simple/src/lib.rs +++ b/frame/evm/precompile/simple/src/lib.rs @@ -56,8 +56,8 @@ impl LinearCostPrecompile for ECRecover { sig[32..64].copy_from_slice(&input[96..128]); // s sig[64] = input[63]; // v - // v can only be 27 or 28 on the full 32 bytes value. - // https://github.com/ethereum/go-ethereum/blob/a907d7e81aaeea15d80b2d3209ad8e08e3bf49e0/core/vm/contracts.go#L177 + // Check if any high bits are set in v value (bytes 32-62 must be 0) + // and v (byte 63) can only be 27 or 28 if input[32..63] != [0u8; 31] || ![27, 28].contains(&input[63]) { return Ok((ExitSucceed::Returned, [0u8; 0].to_vec())); } diff --git a/frame/evm/precompile/storage-cleaner/src/lib.rs b/frame/evm/precompile/storage-cleaner/src/lib.rs deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frame/evm/src/runner/stack.rs b/frame/evm/src/runner/stack.rs index cc713017eb..91d09679ad 100644 --- a/frame/evm/src/runner/stack.rs +++ b/frame/evm/src/runner/stack.rs @@ -29,6 +29,8 @@ use evm::{ gasometer::{GasCost, StorageTarget}, ExitError, ExitReason, ExternalOperation, Opcode, Transfer, }; +// Cumulus +use cumulus_primitives_storage_weight_reclaim::get_proof_size; // Substrate use frame_support::{ traits::{ @@ -79,6 +81,7 @@ where is_transactional: bool, weight_limit: Option, proof_size_base_cost: Option, + measured_proof_size_before: u64, f: F, ) -> Result, RunnerError>> where @@ -109,6 +112,7 @@ where weight, weight_limit, proof_size_base_cost, + measured_proof_size_before, ); #[cfg(feature = "forbid-evm-reentrancy")] @@ -147,6 +151,7 @@ where weight, weight_limit, proof_size_base_cost, + measured_proof_size_before, ) }); @@ -168,6 +173,7 @@ where weight: Weight, weight_limit: Option, proof_size_base_cost: Option, + measured_proof_size_before: u64, ) -> Result, RunnerError>> where F: FnOnce( @@ -292,22 +298,65 @@ where None => 0, }; - let pov_gas = match executor.state().weight_info() { - Some(weight_info) => weight_info - .proof_size_usage - .unwrap_or_default() - .saturating_mul(T::GasLimitPovSizeRatio::get()), - None => 0, + let estimated_proof_size = executor + .state() + .weight_info() + .unwrap_or_default() + .proof_size_usage + .unwrap_or_default(); + + // Obtain the actual proof size usage using the ProofSizeExt host-function or fallback + // and use the estimated proof size + let actual_proof_size = if let Some(measured_proof_size_after) = get_proof_size() { + // actual_proof_size = proof_size_base_cost + proof_size measured with ProofSizeExt + let actual_proof_size = + proof_size_base_cost.unwrap_or_default().saturating_add( + measured_proof_size_after.saturating_sub(measured_proof_size_before), + ); + + log::trace!( + target: "evm", + "Proof size computation: (estimated: {}, actual: {})", + estimated_proof_size, + actual_proof_size + ); + + // If the proof_size calculated from the host-function gives an higher cost than + // the estimated proof_size, we should use the estimated proof_size to compute + // the PoV gas. + // + // TODO: The estimated proof_size should always be an overestimate + if actual_proof_size > estimated_proof_size { + log::debug!( + target: "evm", + "Proof size underestimation detected! (estimated: {}, actual: {}, diff: {})", + estimated_proof_size, + actual_proof_size, + actual_proof_size.saturating_sub(estimated_proof_size), + ); + estimated_proof_size + } else { + actual_proof_size + } + } else { + estimated_proof_size }; // Post execution. + let pov_gas = actual_proof_size.saturating_mul(T::GasLimitPovSizeRatio::get()); let used_gas = executor.used_gas(); - let effective_gas = U256::from(core::cmp::max( - core::cmp::max(used_gas, pov_gas), + let effective_gas = core::cmp::max(core::cmp::max(used_gas, pov_gas), storage_gas); + + log::debug!( + target: "evm", + "Calculating effective gas: max(used: {}, pov: {}, storage: {}) = {}", + used_gas, + pov_gas, storage_gas, - )); + effective_gas + ); - (reason, retv, used_gas, effective_gas) + (reason, retv, used_gas, U256::from(effective_gas)) }); let actual_fee = effective_gas.saturating_mul(total_fee_per_gas); @@ -476,6 +525,7 @@ where proof_size_base_cost: Option, config: &evm::Config, ) -> Result> { + let measured_proof_size_before = get_proof_size().unwrap_or_default(); if validate { Self::validate( source, @@ -505,6 +555,7 @@ where is_transactional, weight_limit, proof_size_base_cost, + measured_proof_size_before, |executor| executor.transact_call(source, target, value, input, gas_limit, access_list), ) } @@ -526,6 +577,7 @@ where proof_size_base_cost: Option, config: &evm::Config, ) -> Result> { + let measured_proof_size_before = get_proof_size().unwrap_or_default(); if validate { if !disable_whitelist_check && !whitelist.contains(&source) { return Err(RunnerError { @@ -562,6 +614,7 @@ where is_transactional, weight_limit, proof_size_base_cost, + measured_proof_size_before, |executor| { let address = executor.create_address(evm::CreateScheme::Legacy { caller: source }); T::OnCreate::on_create(source, address); @@ -590,6 +643,7 @@ where proof_size_base_cost: Option, config: &evm::Config, ) -> Result> { + let measured_proof_size_before = get_proof_size().unwrap_or_default(); if validate { if !disable_whitelist_check && !whitelist.contains(&source) { return Err(RunnerError { @@ -627,6 +681,7 @@ where is_transactional, weight_limit, proof_size_base_cost, + measured_proof_size_before, |executor| { let address = executor.create_address(evm::CreateScheme::Create2 { caller: source, @@ -1317,6 +1372,7 @@ mod tests { use super::*; use crate::mock::{MockPrecompileSet, Test}; use evm::ExitSucceed; + use sp_io::TestExternalities; macro_rules! assert_matches { ( $left:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)? ) => { @@ -1337,66 +1393,74 @@ mod tests { #[test] fn test_evm_reentrancy() { - let config = evm::Config::istanbul(); - - // Should fail with the appropriate error if there is reentrancy - let res = Runner::::execute( - H160::default(), - U256::default(), - 100_000, - None, - None, - &config, - &MockPrecompileSet, - false, - None, - None, - |_| { - let res = Runner::::execute( - H160::default(), - U256::default(), - 100_000, - None, - None, - &config, - &MockPrecompileSet, - false, - None, - None, - |_| (ExitReason::Succeed(ExitSucceed::Stopped), ()), - ); - assert_matches!( - res, - Err(RunnerError { - error: Error::::Reentrancy, - .. - }) - ); - (ExitReason::Error(ExitError::CallTooDeep), ()) - }, - ); - assert_matches!( - res, - Ok(ExecutionInfoV2 { - exit_reason: ExitReason::Error(ExitError::CallTooDeep), - .. - }) - ); + TestExternalities::new_empty().execute_with(|| { + let config = evm::Config::istanbul(); + + let measured_proof_size_before = get_proof_size().unwrap_or_default(); + // Should fail with the appropriate error if there is reentrancy + let res = Runner::::execute( + H160::default(), + U256::default(), + 100_000, + None, + None, + &config, + &MockPrecompileSet, + false, + None, + None, + measured_proof_size_before, + |_| { + let measured_proof_size_before2 = get_proof_size().unwrap_or_default(); + let res = Runner::::execute( + H160::default(), + U256::default(), + 100_000, + None, + None, + &config, + &MockPrecompileSet, + false, + None, + None, + measured_proof_size_before2, + |_| (ExitReason::Succeed(ExitSucceed::Stopped), ()), + ); + assert_matches!( + res, + Err(RunnerError { + error: Error::::Reentrancy, + .. + }) + ); + (ExitReason::Error(ExitError::CallTooDeep), ()) + }, + ); + assert_matches!( + res, + Ok(ExecutionInfoV2 { + exit_reason: ExitReason::Error(ExitError::CallTooDeep), + .. + }) + ); - // Should succeed if there is no reentrancy - let res = Runner::::execute( - H160::default(), - U256::default(), - 100_000, - None, - None, - &config, - &MockPrecompileSet, - false, - None, - None, - |_| (ExitReason::Succeed(ExitSucceed::Stopped), ()), - ); - assert!(res.is_ok()); + let measured_proof_size_before = get_proof_size().unwrap_or_default(); + // Should succeed if there is no reentrancy + let res = Runner::::execute( + H160::default(), + U256::default(), + 100_000, + None, + None, + &config, + &MockPrecompileSet, + false, + None, + None, + measured_proof_size_before, + |_| (ExitReason::Succeed(ExitSucceed::Stopped), ()), + ); + assert!(res.is_ok()); + }); } } diff --git a/frame/evm/src/tests.rs b/frame/evm/src/tests.rs index 1997cd7560..b9d52ec1ce 100644 --- a/frame/evm/src/tests.rs +++ b/frame/evm/src/tests.rs @@ -425,7 +425,8 @@ mod proof_size_test { let mut weight_limit = FixedGasWeightMapping::::gas_to_weight(gas_limit, true); // Artifically set a lower proof size limit so we OOG this instead gas. - *weight_limit.proof_size_mut() = weight_limit.proof_size() / 2; + let proof_size_limit = weight_limit.proof_size() / 2; + *weight_limit.proof_size_mut() = proof_size_limit; // Create proof size test contract let result = create_proof_size_test_contract(gas_limit, None).expect("create succeeds"); @@ -452,25 +453,13 @@ mod proof_size_test { ) .expect("call succeeds"); - // Find how many random balance reads can we do with the available proof size. - let reading_main_contract_len = - AccountCodes::::get(call_contract_address).len() as u64; - let overhead = reading_main_contract_len - + ACCOUNT_CODES_METADATA_PROOF_SIZE - + IS_EMPTY_CHECK_PROOF_SIZE; - let available_proof_size = weight_limit.proof_size() - overhead; - let number_balance_reads = - available_proof_size.saturating_div(ACCOUNT_BASIC_PROOF_SIZE); - // The actual proof size consumed by those balance reads. - let expected_proof_size = overhead + (number_balance_reads * ACCOUNT_BASIC_PROOF_SIZE); - let actual_proof_size = result .weight_info .expect("weight info") .proof_size_usage .expect("proof size usage"); - assert_eq!(expected_proof_size, actual_proof_size); + assert_eq!(proof_size_limit, actual_proof_size); }); } diff --git a/precompiles/src/solidity/codec/xcm.rs b/precompiles/src/solidity/codec/xcm.rs index 7ee638e60e..ed108bcbf8 100644 --- a/precompiles/src/solidity/codec/xcm.rs +++ b/precompiles/src/solidity/codec/xcm.rs @@ -23,7 +23,10 @@ use alloc::{string::String, vec::Vec}; use frame_support::{ensure, traits::ConstU32}; use sp_core::H256; use sp_weights::Weight; -use xcm::lts::{Junction, Junctions, Location, NetworkId}; +use xcm::{ + latest::{Junction, Junctions, Location, NetworkId}, + v5::{ROCOCO_GENESIS_HASH, WESTEND_GENESIS_HASH}, +}; use crate::solidity::{ codec::{bytes::*, Codec, Reader, Writer}, @@ -76,21 +79,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); @@ -152,9 +140,9 @@ 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)), + 5 => Ok(Some(NetworkId::ByGenesis(WESTEND_GENESIS_HASH))), + 6 => Ok(Some(NetworkId::ByGenesis(ROCOCO_GENESIS_HASH))), + 7 => Err(RevertReason::custom("Wococo Network is no longer supported").into()), 8 => { let mut chain_id: [u8; 8] = Default::default(); chain_id.copy_from_slice(encoded_network_id.read_raw_bytes(8)?); diff --git a/primitives/evm/src/lib.rs b/primitives/evm/src/lib.rs index 9249fc85b8..5d1228ff42 100644 --- a/primitives/evm/src/lib.rs +++ b/primitives/evm/src/lib.rs @@ -81,7 +81,7 @@ pub enum AccessedStorage { AccountStorages((H160, H256)), } -#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode, TypeInfo)] +#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode, Default, TypeInfo)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct WeightInfo { pub ref_time_limit: Option, @@ -130,11 +130,15 @@ impl WeightInfo { if let (Some(ref_time_usage), Some(ref_time_limit)) = (self.ref_time_usage, self.ref_time_limit) { - let ref_time_usage = self.try_consume(cost, ref_time_limit, ref_time_usage)?; - if ref_time_usage > ref_time_limit { - return Err(ExitError::OutOfGas); + match self.try_consume(cost, ref_time_limit, ref_time_usage) { + Ok(ref_time_usage) => { + self.ref_time_usage = Some(ref_time_usage); + } + Err(e) => { + self.ref_time_usage = Some(ref_time_limit); + return Err(e); + } } - self.ref_time_usage = Some(ref_time_usage); } Ok(()) } @@ -143,12 +147,15 @@ impl WeightInfo { if let (Some(proof_size_usage), Some(proof_size_limit)) = (self.proof_size_usage, self.proof_size_limit) { - let proof_size_usage = self.try_consume(cost, proof_size_limit, proof_size_usage)?; - if proof_size_usage > proof_size_limit { - storage_oog::set_storage_oog(); - return Err(ExitError::OutOfGas); + match self.try_consume(cost, proof_size_limit, proof_size_usage) { + Ok(proof_size_usage) => { + self.proof_size_usage = Some(proof_size_usage); + } + Err(e) => { + self.proof_size_usage = Some(proof_size_limit); + return Err(e); + } } - self.proof_size_usage = Some(proof_size_usage); } Ok(()) } diff --git a/template/node/Cargo.toml b/template/node/Cargo.toml index c8a09d81c9..4bebe6d25d 100644 --- a/template/node/Cargo.toml +++ b/template/node/Cargo.toml @@ -81,6 +81,10 @@ fp-evm = { workspace = true, features = ["default"] } fp-rpc = { workspace = true, features = ["default"] } frontier-template-runtime = { workspace = true, features = ["std"] } +# Cumulus primitives +cumulus-primitives-proof-size-hostfunction = { workspace = true } +cumulus-primitives-storage-weight-reclaim = { workspace = true } + [build-dependencies] substrate-build-script-utils = { workspace = true } diff --git a/template/node/src/benchmarking.rs b/template/node/src/benchmarking.rs index 2dafe1247b..c31fa424ec 100644 --- a/template/node/src/benchmarking.rs +++ b/template/node/src/benchmarking.rs @@ -133,6 +133,7 @@ pub fn create_benchmark_extrinsic( frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(0), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::::new(), ); let raw_payload = runtime::SignedPayload::from_raw( @@ -147,6 +148,7 @@ pub fn create_benchmark_extrinsic( (), (), (), + (), ), ); let signature = raw_payload.using_encoded(|e| sender.sign(e)); diff --git a/template/node/src/rpc/eth.rs b/template/node/src/rpc/eth.rs index 3f07813919..8f6799140d 100644 --- a/template/node/src/rpc/eth.rs +++ b/template/node/src/rpc/eth.rs @@ -10,7 +10,6 @@ use sc_client_api::{ use sc_network::service::traits::NetworkService; use sc_network_sync::SyncingService; use sc_rpc::SubscriptionTaskExecutor; -use sc_transaction_pool::{ChainApi, Pool}; use sc_transaction_pool_api::TransactionPool; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder as BlockBuilderApi; @@ -26,13 +25,13 @@ use fc_storage::StorageOverride; use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; /// Extra dependencies for Ethereum compatibility. -pub struct EthDeps { +pub struct EthDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. pub pool: Arc

, /// Graph pool instance. - pub graph: Arc>, + pub graph: Arc

, /// Ethereum transaction converter. pub converter: Option, /// The Node authority flag @@ -67,9 +66,9 @@ pub struct EthDeps { } /// Instantiate Ethereum-compatible RPC extensions. -pub fn create_eth( +pub fn create_eth( mut io: RpcModule<()>, - deps: EthDeps, + deps: EthDeps, subscription_task_executor: SubscriptionTaskExecutor, pubsub_notification_sinks: Arc< fc_mapping_sync::EthereumBlockNotificationSinks< @@ -87,8 +86,7 @@ where C: HeaderBackend + HeaderMetadata, C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, BE: Backend + 'static, - P: TransactionPool + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, CIDP: CreateInherentDataProviders + Send + 'static, EC: EthConfig, @@ -127,7 +125,7 @@ where } io.merge( - Eth::::new( + Eth::::new( client.clone(), pool.clone(), graph.clone(), diff --git a/template/node/src/rpc/mod.rs b/template/node/src/rpc/mod.rs index 7202d997a8..011b6c05ce 100644 --- a/template/node/src/rpc/mod.rs +++ b/template/node/src/rpc/mod.rs @@ -13,7 +13,6 @@ use sc_client_api::{ use sc_consensus_manual_seal::rpc::EngineCommand; use sc_rpc::SubscriptionTaskExecutor; use sc_service::TransactionPool; -use sc_transaction_pool::ChainApi; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -26,7 +25,7 @@ mod eth; pub use self::eth::{create_eth, EthDeps}; /// Full client dependencies. -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. @@ -34,7 +33,7 @@ pub struct FullDeps { /// Manual seal command sink pub command_sink: Option>>, /// Ethereum-compatibility specific dependencies. - pub eth: EthDeps, + pub eth: EthDeps, } pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); @@ -51,8 +50,8 @@ where } /// Instantiate all Full RPC extensions. -pub fn create_full( - deps: FullDeps, +pub fn create_full( + deps: FullDeps, subscription_task_executor: SubscriptionTaskExecutor, pubsub_notification_sinks: Arc< fc_mapping_sync::EthereumBlockNotificationSinks< @@ -72,8 +71,7 @@ where C: HeaderBackend + HeaderMetadata + 'static, C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider, BE: Backend + 'static, - P: TransactionPool + 'static, - A: ChainApi + 'static, + P: TransactionPool + 'static, CIDP: CreateInherentDataProviders + Send + 'static, CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, { @@ -101,7 +99,7 @@ where } // Ethereum compatibility RPCs - let io = create_eth::<_, _, _, _, _, _, _, DefaultEthConfig>( + let io = create_eth::<_, _, _, _, _, _, DefaultEthConfig>( io, eth, subscription_task_executor, diff --git a/template/node/src/service.rs b/template/node/src/service.rs index ef293a1293..008de4da19 100644 --- a/template/node/src/service.rs +++ b/template/node/src/service.rs @@ -12,7 +12,7 @@ use sc_executor::HostFunctions as HostFunctionsT; use sc_network_sync::strategy::warp::{WarpSyncConfig, WarpSyncProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; -use sc_transaction_pool::{BasicPool, FullChainApi}; +use sc_transaction_pool::TransactionPoolHandle; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_api::ConstructRuntimeApi; use sp_consensus_aura::sr25519::{AuthorityId as AuraId, AuthorityPair as AuraPair}; @@ -39,10 +39,14 @@ use crate::{ pub type HostFunctions = ( sp_io::SubstrateHostFunctions, frame_benchmarking::benchmarking::HostFunctions, + cumulus_primitives_proof_size_hostfunction::storage_proof_size::HostFunctions, ); /// Otherwise we use empty host functions for ext host functions. #[cfg(not(feature = "runtime-benchmarks"))] -pub type HostFunctions = sp_io::SubstrateHostFunctions; +pub type HostFunctions = ( + sp_io::SubstrateHostFunctions, + cumulus_primitives_proof_size_hostfunction::storage_proof_size::HostFunctions, +); pub type Backend = FullBackend; pub type Client = FullClient; @@ -51,7 +55,6 @@ type FullSelectChain = sc_consensus::LongestChain, B>; type GrandpaBlockImport = sc_consensus_grandpa::GrandpaBlockImport, B, C, FullSelectChain>; type GrandpaLinkHalf = sc_consensus_grandpa::LinkHalf>; -type FullPool = BasicPool, B>, B>; /// The minimum period of blocks on which justifications will be /// imported and generated. @@ -67,7 +70,7 @@ pub fn new_partial( FullBackend, FullSelectChain, BasicQueue, - FullPool, + sc_transaction_pool::TransactionPoolHandle>, ( Option, BoxBlockImport, @@ -106,11 +109,13 @@ where let executor = sc_service::new_wasm_executor(&config.executor); - let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( - config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - )?; + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts_record_import::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + true, + )?; let client = Arc::new(client); let telemetry = telemetry.map(|(worker, telemetry)| { @@ -168,14 +173,16 @@ where grandpa_block_import, )?; - // FIXME: The `config.transaction_pool.options` field is private, so for now use its default value - let transaction_pool = Arc::from(BasicPool::new_full( - Default::default(), - config.role.is_authority().into(), - config.prometheus_registry(), - task_manager.spawn_essential_handle(), - client.clone(), - )); + let transaction_pool = Arc::from( + 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(), + ); Ok(PartialComponents { client, @@ -449,7 +456,7 @@ where let eth_deps = crate::rpc::EthDeps { client: client.clone(), pool: pool.clone(), - graph: pool.pool().clone(), + graph: pool.clone(), converter: Some(TransactionConverter::::default()), is_authority, enable_dev_signer, @@ -640,7 +647,7 @@ fn run_manual_seal_authorship( eth_config: &EthConfiguration, sealing: Sealing, client: Arc>, - transaction_pool: Arc>, + transaction_pool: Arc>>, select_chain: FullSelectChain, block_import: BoxBlockImport, task_manager: &TaskManager, diff --git a/template/runtime/Cargo.toml b/template/runtime/Cargo.toml index fa10710d06..cb50a576d0 100644 --- a/template/runtime/Cargo.toml +++ b/template/runtime/Cargo.toml @@ -58,6 +58,9 @@ pallet-evm-precompile-modexp = { workspace = true } pallet-evm-precompile-sha3fips = { workspace = true } pallet-evm-precompile-simple = { workspace = true } +# Cumulus primitives +cumulus-primitives-storage-weight-reclaim = { workspace = true } + [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true } @@ -110,6 +113,8 @@ std = [ "pallet-evm-precompile-modexp/std", "pallet-evm-precompile-sha3fips/std", "pallet-evm-precompile-simple/std", + # Cumulus primitives + "cumulus-primitives-storage-weight-reclaim/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/template/runtime/src/lib.rs b/template/runtime/src/lib.rs index 63bd290474..7de4ba7eeb 100644 --- a/template/runtime/src/lib.rs +++ b/template/runtime/src/lib.rs @@ -119,6 +119,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. diff --git a/ts-tests/package-lock.json b/ts-tests/package-lock.json index 804c79e10e..08f303f078 100644 --- a/ts-tests/package-lock.json +++ b/ts-tests/package-lock.json @@ -5773,6 +5773,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "hasInstallScript": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -6102,6 +6103,7 @@ "version": "5.0.7", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "hasInstallScript": true, "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" diff --git a/ts-tests/tests/test-pending-pool.ts b/ts-tests/tests/test-pending-pool.ts index 9f89b9680f..4f66252590 100644 --- a/ts-tests/tests/test-pending-pool.ts +++ b/ts-tests/tests/test-pending-pool.ts @@ -1,13 +1,20 @@ import { expect } from "chai"; import { GENESIS_ACCOUNT, GENESIS_ACCOUNT_PRIVATE_KEY } from "./config"; -import { createAndFinalizeBlock, customRequest, describeWithFrontier } from "./util"; +import { createAndFinalizeBlock, customRequest, describeWithFrontierAllPools } from "./util"; -describeWithFrontier("Frontier RPC (Pending Pool)", (context) => { +describeWithFrontierAllPools("Frontier RPC (Pending Pool)", (context) => { // Solidity: contract test { function multiply(uint a) public pure returns(uint d) {return a * 7;}} const TEST_CONTRACT_BYTECODE = "0x6080604052348015600f57600080fd5b5060ae8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c6888fa114602d575b600080fd5b605660048036036020811015604157600080fd5b8101908080359060200190929190505050606c565b6040518082815260200191505060405180910390f35b600060078202905091905056fea265627a7a72315820f06085b229f27f9ad48b2ff3dd9714350c1698a37853a30136fa6c5a7762af7364736f6c63430005110032"; + // This is needed due to behaviour of fatp in manual seal conensus + // Before the first block is created, the pool will wrongly report as empty + // https://github.com/paritytech/polkadot-sdk/issues/8402 + before("create and finalize block 1", async function () { + await createAndFinalizeBlock(context.web3); + }); + it("should return a pending transaction", async function () { this.timeout(15000); const tx = await context.web3.eth.accounts.signTransaction( @@ -45,9 +52,16 @@ describeWithFrontier("Frontier RPC (Pending Pool)", (context) => { }); }); -describeWithFrontier("Frontier RPC (Pending Transaction Count)", (context) => { +describeWithFrontierAllPools("Frontier RPC (Pending Transaction Count)", (context) => { const TEST_ACCOUNT = "0x1111111111111111111111111111111111111111"; + // This is needed due to behaviour of fatp in manual seal conensus + // Before the first block is created, the pool will wrongly report as empty + // https://github.com/paritytech/polkadot-sdk/issues/8402 + before("create and finalize block 1", async function () { + await createAndFinalizeBlock(context.web3); + }); + it("should return pending transaction count", async function () { this.timeout(15000); @@ -78,7 +92,7 @@ describeWithFrontier("Frontier RPC (Pending Transaction Count)", (context) => { expect(pendingTransactionCount).to.eq("0x0"); } - // block 1 should have 1 transaction + // block 2 should have 1 transaction await sendTransaction(); { const pendingTransactionCount = ( @@ -95,12 +109,12 @@ describeWithFrontier("Frontier RPC (Pending Transaction Count)", (context) => { ).result; expect(pendingTransactionCount).to.eq("0x0"); const processedTransactionCount = ( - await customRequest(context.web3, "eth_getBlockTransactionCountByNumber", [1]) + await customRequest(context.web3, "eth_getBlockTransactionCountByNumber", [2]) ).result; expect(processedTransactionCount).to.eq("0x1"); } - // block 2 should have 5 transactions + // block 3 should have 5 transactions for (var _ of Array(5)) { await sendTransaction(); } @@ -120,7 +134,7 @@ describeWithFrontier("Frontier RPC (Pending Transaction Count)", (context) => { ).result; expect(pendingTransactionCount).to.eq("0x0"); const processedTransactionCount = ( - await customRequest(context.web3, "eth_getBlockTransactionCountByNumber", [2]) + await customRequest(context.web3, "eth_getBlockTransactionCountByNumber", [3]) ).result; expect(processedTransactionCount).to.eq("0x5"); } diff --git a/ts-tests/tests/test-pending-transactions-rpc.ts b/ts-tests/tests/test-pending-transactions-rpc.ts new file mode 100644 index 0000000000..4758b09267 --- /dev/null +++ b/ts-tests/tests/test-pending-transactions-rpc.ts @@ -0,0 +1,121 @@ +import { expect } from "chai"; +import { step } from "mocha-steps"; + +import { GENESIS_ACCOUNT, GENESIS_ACCOUNT_PRIVATE_KEY } from "./config"; +import { createAndFinalizeBlock, customRequest, describeWithFrontierAllPools } from "./util"; + +describeWithFrontierAllPools("Frontier RPC (Pending Transactions)", (context) => { + const TEST_ACCOUNT = "0x1111111111111111111111111111111111111111"; + + // Helper function to create and send a transaction + async function sendTransaction(nonce?: number, options = {}) { + const defaultTxParams: { + from: string; + to: string; + data: string; + value: string; + gasPrice: string; + gas: string; + nonce?: number; + } = { + from: GENESIS_ACCOUNT, + to: TEST_ACCOUNT, + data: "0x00", + value: "0x200", // Must be higher than ExistentialDeposit + gasPrice: "0x3B9ACA00", + gas: "0x100000", + }; + + // Use next available nonce if not provided + const txParams = { ...defaultTxParams, ...options }; + if (nonce !== undefined) { + txParams.nonce = nonce; + } + + const tx = await context.web3.eth.accounts.signTransaction(txParams, GENESIS_ACCOUNT_PRIVATE_KEY); + + const result = await customRequest(context.web3, "eth_sendRawTransaction", [tx.rawTransaction]); + return { + hash: result.result, + ...txParams, + }; + } + + // Helper to get pending transactions + async function getPendingTransactions() { + const response = await customRequest(context.web3, "eth_pendingTransactions", []); + return response.result || []; + } + + step("should return empty array when no transactions are pending", async function () { + const pendingTransactions = await getPendingTransactions(); + expect(pendingTransactions).to.be.an("array").that.is.empty; + }); + + step("should return pending transactions when transactions are in mempool", async function () { + // First, create a block to clear previous pending transactions + await createAndFinalizeBlock(context.web3); + + const readyTransactionCount = 3; + const futureTransactionCount = 2; + const transactions = []; + + // Get initial nonce + const initialNonce = await context.web3.eth.getTransactionCount(GENESIS_ACCOUNT); + + // Submit regular transactions with sequential nonces + for (let i = 0; i < readyTransactionCount; i++) { + const currentNonce = initialNonce + i; + const tx = await sendTransaction(currentNonce); + transactions.push(tx); + } + + // Submit future transactions with gaps in nonces + for (let i = 0; i < futureTransactionCount; i++) { + // Create a gap by skipping some nonces + const gapSize = i * 2 + 1; + const futureNonce = initialNonce + readyTransactionCount + gapSize; + const tx = await sendTransaction(futureNonce); + transactions.push(tx); + } + + // Check pending transactions through RPC + const pendingTransactions = await getPendingTransactions(); + + // Verify the response + expect(pendingTransactions).to.be.an("array"); + expect(pendingTransactions.length).to.equal(transactions.length); + + // Verify transaction hashes match what we submitted + const pendingHashes = pendingTransactions.map((tx) => tx.hash); + const submittedHashes = transactions.map((tx) => tx.hash); + expect(pendingHashes).to.have.members(submittedHashes); + }); + + step("should remove transactions from pending transactions when block is created", async function () { + // First, create a block to clear previous pending transactions + await createAndFinalizeBlock(context.web3); + + // Get current nonce + const nonce = await context.web3.eth.getTransactionCount(GENESIS_ACCOUNT); + + // Submit a transaction + await sendTransaction(nonce, { + gasPrice: context.web3.utils.toWei("1", "gwei"), + }); + + // Check that it's in the pending transactions + const pendingBefore = await getPendingTransactions(); + expect(pendingBefore.length).to.be.at.least(1); + const countBefore = pendingBefore.length; + + // Create a block to mine the pending transactions + await createAndFinalizeBlock(context.web3); + + // Check pending transactions again + const pendingAfter = await getPendingTransactions(); + + // Verify there are fewer pending transactions after mining + expect(pendingAfter.length).to.be.lessThan(countBefore); + }); +}); diff --git a/ts-tests/tests/txpool.ts b/ts-tests/tests/txpool.ts index 102368ec0a..f95f1bcb3f 100644 --- a/ts-tests/tests/txpool.ts +++ b/ts-tests/tests/txpool.ts @@ -2,9 +2,9 @@ import { expect } from "chai"; import { step } from "mocha-steps"; import { GENESIS_ACCOUNT, GENESIS_ACCOUNT_PRIVATE_KEY } from "./config"; -import { describeWithFrontier, customRequest } from "./util"; +import { createAndFinalizeBlock, customRequest, describeWithFrontierAllPools } from "./util"; -describeWithFrontier("Frontier RPC (TxPoolApi)", (context) => { +describeWithFrontierAllPools("Frontier RPC (TxPoolApi)", (context) => { const TEST_CONTRACT_BYTECODE = "0x608060405234801561001057600080fd5b50610041337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61004660201b60201c565b610291565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156100e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6101028160025461020960201b610c7c1790919060201c565b60028190555061015d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461020960201b610c7c1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015610287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b610e3a806102a06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146101fd578063a457c2d714610255578063a9059cbb146102bb578063dd62ed3e1461032157610088565b8063095ea7b31461008d57806318160ddd146100f357806323b872dd146101115780633950935114610197575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610399565b604051808215151515815260200191505060405180910390f35b6100fb6103b7565b6040518082815260200191505060405180910390f35b61017d6004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c1565b604051808215151515815260200191505060405180910390f35b6101e3600480360360408110156101ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061049a565b604051808215151515815260200191505060405180910390f35b61023f6004803603602081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054d565b6040518082815260200191505060405180910390f35b6102a16004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610595565b604051808215151515815260200191505060405180910390f35b610307600480360360408110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610662565b604051808215151515815260200191505060405180910390f35b6103836004803603604081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b6040518082815260200191505060405180910390f35b60006103ad6103a6610707565b848461070f565b6001905092915050565b6000600254905090565b60006103ce848484610906565b61048f846103da610707565b61048a85604051806060016040528060288152602001610d7060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610440610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b600190509392505050565b60006105436104a7610707565b8461053e85600160006104b8610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b61070f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106586105a2610707565b8461065385604051806060016040528060258152602001610de160259139600160006105cc610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b6001905092915050565b600061067661066f610707565b8484610906565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610795576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610dbd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561081b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d286022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d986025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d056023913960400191505060405180910390fd5b610a7d81604051806060016040528060268152602001610d4a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b10816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c2e578082015181840152602081019050610c13565b50505050905090810190601f168015610c5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820c7a5ffabf642bda14700b2de42f8c57b36621af020441df825de45fd2b3e1c5c64736f6c63430005100032"; @@ -27,6 +27,13 @@ describeWithFrontier("Frontier RPC (TxPoolApi)", (context) => { return tx; } + // This is needed due to behaviour of fatp in manual seal conensus + // Before the first block is created, the pool will wrongly report as empty + // https://github.com/paritytech/polkadot-sdk/issues/8402 + before("create and finalize a block 1", async function () { + await createAndFinalizeBlock(context.web3); + }); + step("txpool_status should return correct result", async function () { let txpoolStatus = await customRequest(context.web3, "txpool_status", []); expect(txpoolStatus.result.pending).to.be.equal("0x0"); diff --git a/ts-tests/tests/util.ts b/ts-tests/tests/util.ts index 6ac385d7b9..bf0ca9730e 100644 --- a/ts-tests/tests/util.ts +++ b/ts-tests/tests/util.ts @@ -60,7 +60,10 @@ export async function createAndFinalizeBlockNowait(web3: Web3) { } } -export async function startFrontierNode(provider?: string): Promise<{ +export async function startFrontierNode( + provider?: string, + additionalArgs: string[] = [] +): Promise<{ web3: Web3; binary: ChildProcess; ethersjs: ethers.JsonRpcProvider; @@ -87,6 +90,7 @@ export async function startFrontierNode(provider?: string): Promise<{ `--frontier-backend-type=${FRONTIER_BACKEND_TYPE}`, `--tmp`, `--unsafe-force-node-key-generation`, + ...additionalArgs, ]; const binary = spawn(cmd, args); @@ -153,7 +157,8 @@ export async function startFrontierNode(provider?: string): Promise<{ export function describeWithFrontier( title: string, cb: (context: { web3: Web3; api: ApiPromise }) => void, - provider?: string + provider?: string, + additionalArgs: string[] = [] ) { describe(title, () => { let context: { @@ -165,7 +170,7 @@ export function describeWithFrontier( // Making sure the Frontier node has started before("Starting Frontier Test Node", async function () { this.timeout(SPAWNING_TIME); - const init = await startFrontierNode(provider); + const init = await startFrontierNode(provider, additionalArgs); context.web3 = init.web3; context.ethersjs = init.ethersjs; context.api = init.api; @@ -182,6 +187,19 @@ export function describeWithFrontier( }); } +export function describeWithFrontierFaTp(title: string, cb: (context: { web3: Web3 }) => void) { + describeWithFrontier(title, cb, undefined, [`--pool-type=fork-aware`]); +} + +export function describeWithFrontierSsTp(title: string, cb: (context: { web3: Web3 }) => void) { + describeWithFrontier(title, cb, undefined, [`--pool-type=single-state`]); +} + +export function describeWithFrontierAllPools(title: string, cb: (context: { web3: Web3 }) => void) { + describeWithFrontierSsTp(`[SsTp] ${title}`, cb); + describeWithFrontierFaTp(`[FaTp] ${title}`, cb); +} + export function describeWithFrontierWs(title: string, cb: (context: { web3: Web3 }) => void) { describeWithFrontier(title, cb, "ws"); }