From ad204989ea30ef8dd7d511900fcbb38bfe17c5f1 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Wed, 9 Apr 2025 17:40:25 +0700 Subject: [PATCH 1/2] Temp --- .cargo/config.toml | 3 + Cargo.lock | 2501 ++++++++++++++++++++++++++++---- Cargo.toml | 6 + crates/op-rbuilder/Cargo.toml | 6 + crates/op-rbuilder/src/args.rs | 13 +- crates/op-rbuilder/src/main.rs | 38 + 6 files changed, 2286 insertions(+), 281 deletions(-) create mode 100644 .cargo/config.toml diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 000000000..1fc078182 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,3 @@ +[build] +rustflags = ["--cfg", "tokio_unstable"] +rustdocflags = ["--cfg", "tokio_unstable"] diff --git a/Cargo.lock b/Cargo.lock index 1caefb460..74cd8b755 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,6 +108,23 @@ dependencies = [ "strum 0.27.1", ] +[[package]] +name = "alloy-consensus" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a101d4d016f47f13890a74290fdd17b05dd175191d9337bc600791fb96e4dea8" +dependencies = [ + "alloy-eips 0.7.3", + "alloy-primitives 0.8.23", + "alloy-rlp", + "alloy-serde 0.7.3", + "alloy-trie", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", + "serde", +] + [[package]] name = "alloy-consensus" version = "0.11.1" @@ -149,6 +166,20 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-consensus-any" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa60357dda9a3d0f738f18844bd6d0f4a5924cc5cf00bfad2ff1369897966123" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-primitives 0.8.23", + "alloy-rlp", + "alloy-serde 0.7.3", + "serde", +] + [[package]] name = "alloy-consensus-any" version = "0.11.1" @@ -177,6 +208,26 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-contract" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2869e4fb31331d3b8c58c7db567d1e4e4e94ef64640beda3b6dd9b7045690941" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network 0.7.3", + "alloy-network-primitives 0.7.3", + "alloy-primitives 0.8.23", + "alloy-provider 0.7.3", + "alloy-rpc-types-eth 0.7.3", + "alloy-sol-types", + "alloy-transport 0.7.3", + "futures", + "futures-util", + "thiserror 2.0.11", +] + [[package]] name = "alloy-dyn-abi" version = "0.8.21" @@ -223,6 +274,19 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-eip7702" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c986539255fb839d1533c128e190e557e52ff652c9ef62939e233a81dd93f7e" +dependencies = [ + "alloy-primitives 0.8.23", + "alloy-rlp", + "derive_more 1.0.0", + "k256 0.13.4", + "serde", +] + [[package]] name = "alloy-eip7702" version = "0.5.1" @@ -239,6 +303,24 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-eips" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6755b093afef5925f25079dd5a7c8d096398b804ba60cb5275397b06b31689" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702 0.4.2", + "alloy-primitives 0.8.23", + "alloy-rlp", + "alloy-serde 0.7.3", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + [[package]] name = "alloy-eips" version = "0.11.1" @@ -247,7 +329,7 @@ checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" dependencies = [ "alloy-eip2124", "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.5.1", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde 0.11.1", @@ -267,7 +349,7 @@ checksum = "6e86967eb559920e4b9102e4cb825fe30f2e9467988353ce4809f0d3f2c90cd4" dependencies = [ "alloy-eip2124", "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.5.1", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde 0.12.6", @@ -340,6 +422,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-json-rpc" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa077efe0b834bcd89ff4ba547f48fb081e4fdc3673dd7da1b295a2cf2bb7b7" +dependencies = [ + "alloy-primitives 0.8.23", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror 2.0.11", + "tracing", +] + [[package]] name = "alloy-json-rpc" version = "0.11.1" @@ -368,6 +464,31 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-network" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209a1882a08e21aca4aac6e2a674dc6fcf614058ef8cb02947d63782b1899552" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-consensus-any 0.7.3", + "alloy-eips 0.7.3", + "alloy-json-rpc 0.7.3", + "alloy-network-primitives 0.7.3", + "alloy-primitives 0.8.23", + "alloy-rpc-types-any 0.7.3", + "alloy-rpc-types-eth 0.7.3", + "alloy-serde 0.7.3", + "alloy-signer 0.7.3", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.11", +] + [[package]] name = "alloy-network" version = "0.12.6" @@ -380,10 +501,10 @@ dependencies = [ "alloy-json-rpc 0.12.6", "alloy-network-primitives 0.12.6", "alloy-primitives 0.8.23", - "alloy-rpc-types-any", + "alloy-rpc-types-any 0.12.5", "alloy-rpc-types-eth 0.12.6", "alloy-serde 0.12.6", - "alloy-signer", + "alloy-signer 0.12.6", "alloy-sol-types", "async-trait", "auto_impl", @@ -394,6 +515,19 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-network-primitives" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20219d1ad261da7a6331c16367214ee7ded41d001fabbbd656fbf71898b2773" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-primitives 0.8.23", + "alloy-serde 0.7.3", + "serde", +] + [[package]] name = "alloy-network-primitives" version = "0.11.1" @@ -428,10 +562,10 @@ checksum = "846c2248472c3a7efa8d9d6c51af5b545a88335af0ed7a851d01debfc3b03395" dependencies = [ "alloy-genesis", "alloy-hardforks", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", - "alloy-signer", - "alloy-signer-local", + "alloy-signer 0.12.6", + "alloy-signer-local 0.12.6", "k256 0.13.4", "rand 0.8.5", "serde_json", @@ -521,6 +655,45 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "alloy-provider" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eefa6f4c798ad01f9b4202d02cea75f5ec11fa180502f4701e2b47965a8c0bb" +dependencies = [ + "alloy-chains", + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-json-rpc 0.7.3", + "alloy-network 0.7.3", + "alloy-network-primitives 0.7.3", + "alloy-primitives 0.8.23", + "alloy-rpc-client 0.7.3", + "alloy-rpc-types-debug 0.7.3", + "alloy-rpc-types-eth 0.7.3", + "alloy-rpc-types-trace 0.7.3", + "alloy-transport 0.7.3", + "alloy-transport-http 0.7.3", + "async-stream", + "async-trait", + "auto_impl", + "dashmap 6.1.0", + "futures", + "futures-utils-wasm", + "lru 0.12.5", + "parking_lot", + "pin-project", + "reqwest 0.12.9", + "schnellru", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tracing", + "url", + "wasmtimer", +] + [[package]] name = "alloy-provider" version = "0.12.6" @@ -531,15 +704,15 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", "alloy-json-rpc 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-network-primitives 0.12.6", "alloy-primitives 0.8.23", "alloy-pubsub", - "alloy-rpc-client", + "alloy-rpc-client 0.12.6", "alloy-rpc-types-eth 0.12.6", "alloy-sol-types", - "alloy-transport", - "alloy-transport-http", + "alloy-transport 0.12.6", + "alloy-transport-http 0.12.6", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", @@ -569,7 +742,7 @@ checksum = "721aca709a9231815ad5903a2d284042cc77e7d9d382696451b30c9ee0950001" dependencies = [ "alloy-json-rpc 0.12.6", "alloy-primitives 0.8.23", - "alloy-transport", + "alloy-transport 0.12.6", "bimap", "futures", "serde", @@ -602,6 +775,29 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "alloy-rpc-client" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed30bf1041e84cabc5900f52978ca345dd9969f2194a945e6fdec25b0620705c" +dependencies = [ + "alloy-json-rpc 0.7.3", + "alloy-primitives 0.8.23", + "alloy-transport 0.7.3", + "alloy-transport-http 0.7.3", + "futures", + "pin-project", + "reqwest 0.12.9", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower 0.5.1", + "tracing", + "url", + "wasmtimer", +] + [[package]] name = "alloy-rpc-client" version = "0.12.6" @@ -611,8 +807,8 @@ dependencies = [ "alloy-json-rpc 0.12.6", "alloy-primitives 0.8.23", "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", + "alloy-transport 0.12.6", + "alloy-transport-http 0.12.6", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", @@ -667,6 +863,17 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-rpc-types-any" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200661999b6e235d9840be5d60a6e8ae2f0af9eb2a256dd378786744660e36ec" +dependencies = [ + "alloy-consensus-any 0.7.3", + "alloy-rpc-types-eth 0.7.3", + "alloy-serde 0.7.3", +] + [[package]] name = "alloy-rpc-types-any" version = "0.12.5" @@ -696,6 +903,16 @@ dependencies = [ "tree_hash_derive", ] +[[package]] +name = "alloy-rpc-types-debug" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0294b553785eb3fa7fff2e8aec45e82817258e7e6c9365c034a90cb6baeebc9" +dependencies = [ + "alloy-primitives 0.8.23", + "serde", +] + [[package]] name = "alloy-rpc-types-debug" version = "0.12.6" @@ -727,6 +944,26 @@ dependencies = [ "strum 0.27.1", ] +[[package]] +name = "alloy-rpc-types-eth" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0600b8b5e2dc0cab12cbf91b5a885c35871789fb7b3a57b434bd4fced5b7a8b" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-consensus-any 0.7.3", + "alloy-eips 0.7.3", + "alloy-network-primitives 0.7.3", + "alloy-primitives 0.8.23", + "alloy-rlp", + "alloy-serde 0.7.3", + "alloy-sol-types", + "derive_more 1.0.0", + "itertools 0.13.0", + "serde", + "serde_json", +] + [[package]] name = "alloy-rpc-types-eth" version = "0.11.1" @@ -741,7 +978,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 0.11.1", "alloy-sol-types", - "itertools 0.13.0", + "itertools 0.14.0", "serde", "serde_json", "thiserror 2.0.11", @@ -783,6 +1020,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-rpc-types-trace" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e073ab0e67429c60be281e181731132fd07d82e091c10c29ace6935101034bb" +dependencies = [ + "alloy-primitives 0.8.23", + "alloy-rpc-types-eth 0.7.3", + "alloy-serde 0.7.3", + "serde", + "serde_json", + "thiserror 2.0.11", +] + [[package]] name = "alloy-rpc-types-trace" version = "0.12.6" @@ -809,6 +1060,17 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-serde" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afa753a97002a33b2ccb707d9f15f31c81b8c1b786c95b73cc62bb1d1fd0c3f" +dependencies = [ + "alloy-primitives 0.8.23", + "serde", + "serde_json", +] + [[package]] name = "alloy-serde" version = "0.11.1" @@ -832,6 +1094,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-signer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2cbff01a673936c2efd7e00d4c0e9a4dbbd6d600e2ce298078d33efbb19cd7" +dependencies = [ + "alloy-primitives 0.8.23", + "async-trait", + "auto_impl", + "elliptic-curve 0.13.8", + "k256 0.13.4", + "thiserror 2.0.11", +] + [[package]] name = "alloy-signer" version = "0.12.6" @@ -847,6 +1123,42 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-signer-aws" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71ce77227fdb9059fd7a3b38a8679c0dae95d81886ee8c13ef8ad99d74866bbd" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-network 0.7.3", + "alloy-primitives 0.8.23", + "alloy-signer 0.7.3", + "async-trait", + "aws-sdk-kms", + "k256 0.13.4", + "spki 0.7.3", + "thiserror 2.0.11", + "tracing", +] + +[[package]] +name = "alloy-signer-local" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6d988cb6cd7d2f428a74476515b1a6e901e08c796767f9f93311ab74005c8b" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-network 0.7.3", + "alloy-primitives 0.8.23", + "alloy-signer 0.7.3", + "async-trait", + "coins-bip32", + "coins-bip39", + "k256 0.13.4", + "rand 0.8.5", + "thiserror 2.0.11", +] + [[package]] name = "alloy-signer-local" version = "0.12.6" @@ -854,9 +1166,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc6e72002cc1801d8b41e9892165e3a6551b7bd382bd9d0414b21e90c0c62551" dependencies = [ "alloy-consensus 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", - "alloy-signer", + "alloy-signer 0.12.6", "async-trait", "k256 0.13.4", "rand 0.8.5", @@ -883,6 +1195,7 @@ version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b9bd22d0bba90e40f40c625c33d39afb7d62b22192476a2ce1dcf8409dce880" dependencies = [ + "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", @@ -901,12 +1214,14 @@ version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05ae4646e8123ec2fd10f9c22e361ffe4365c42811431829c2eabae528546bcc" dependencies = [ + "alloy-json-abi", "const-hex", "dunce", "heck 0.5.0", "macro-string", "proc-macro2", "quote", + "serde_json", "syn 2.0.100", "syn-solidity", ] @@ -936,16 +1251,14 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.12.6" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec325c2af8562ef355c02aeb527c755a07e9d8cf6a1e65dda8d0bf23e29b2c" +checksum = "d69d36982b9e46075ae6b792b0f84208c6c2c15ad49f6c500304616ef67b70e0" dependencies = [ - "alloy-json-rpc 0.12.6", + "alloy-json-rpc 0.7.3", "base64 0.22.1", - "derive_more 2.0.1", - "futures", + "futures-util", "futures-utils-wasm", - "parking_lot", "serde", "serde_json", "thiserror 2.0.11", @@ -957,17 +1270,54 @@ dependencies = [ ] [[package]] -name = "alloy-transport-http" +name = "alloy-transport" version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a082c9473c6642cce8b02405a979496126a03b096997888e86229afad05db06c" +checksum = "9aec325c2af8562ef355c02aeb527c755a07e9d8cf6a1e65dda8d0bf23e29b2c" dependencies = [ "alloy-json-rpc 0.12.6", - "alloy-transport", - "reqwest 0.12.9", - "serde_json", - "tower 0.5.1", - "tracing", + "base64 0.22.1", + "derive_more 2.0.1", + "futures", + "futures-utils-wasm", + "parking_lot", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tower 0.5.1", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport-http" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e02ffd5d93ffc51d72786e607c97de3b60736ca3e636ead0ec1f7dce68ea3fd" +dependencies = [ + "alloy-json-rpc 0.7.3", + "alloy-transport 0.7.3", + "reqwest 0.12.9", + "serde_json", + "tower 0.5.1", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a082c9473c6642cce8b02405a979496126a03b096997888e86229afad05db06c" +dependencies = [ + "alloy-json-rpc 0.12.6", + "alloy-transport 0.12.6", + "reqwest 0.12.9", + "serde_json", + "tower 0.5.1", + "tracing", "url", ] @@ -979,7 +1329,7 @@ checksum = "e61e2b5cbf16f7588e4420848b61824f6514944773732534f4129ba6a251e059" dependencies = [ "alloy-json-rpc 0.12.6", "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.12.6", "bytes", "futures", "interprocess", @@ -998,7 +1348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" dependencies = [ "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.12.6", "futures", "http 1.1.0", "rustls 0.23.25", @@ -1128,6 +1478,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "argminmax" version = "0.6.2" @@ -1267,6 +1623,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76" +[[package]] +name = "arraydeque" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" + [[package]] name = "arrayref" version = "0.3.9" @@ -1344,8 +1706,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] @@ -1364,13 +1738,71 @@ dependencies = [ "zstd-safe 7.2.1", ] +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.3.0", + "futures-lite 2.6.0", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-io", + "async-lock 3.4.0", + "blocking", + "futures-lite 2.6.0", + "once_cell", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.6.0", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "async-lock" version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "event-listener", + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.4.0", + "event-listener-strategy", + "pin-project-lite", ] [[package]] @@ -1390,14 +1822,40 @@ version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e6fa871e4334a622afd6bb2f611635e8083a6f5e2936c0f90f37c7ef9856298" dependencies = [ - "async-channel", - "futures-lite", + "async-channel 1.9.0", + "futures-lite 1.13.0", "http-types", "log", "memchr", "pin-project-lite", ] +[[package]] +name = "async-std" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24" +dependencies = [ + "async-channel 1.9.0", + "async-global-executor", + "async-io", + "async-lock 3.4.0", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite 2.6.0", + "gloo-timers 0.3.0", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -1420,6 +1878,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + [[package]] name = "async-trait" version = "0.1.87" @@ -1495,139 +1959,528 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-config" +version = "1.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90aff65e86db5fe300752551c1b015ef72b708ac54bded8ef43d0d53cb7cb0b1" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http 0.61.1", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand 2.3.0", + "http 0.2.12", + "time", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "aws-credential-types" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4471bef4c22a06d2c7a1b6492493d3fdf24a805323109d6874f9c94d5906ac14" +dependencies = [ + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", +] + [[package]] name = "aws-lc-rs" -version = "1.12.2" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b7ddaa2c56a367ad27a094ad8ef4faacf8a617c2575acb2ba88949df999ca" +checksum = "19b756939cb2f8dc900aa6dcd505e6e2428e9cae7ff7b028c49e3946efa70878" dependencies = [ "aws-lc-sys", - "paste", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.25.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ac4f13dad353b209b34cbec082338202cbc01c8f00336b55c750c13ac91f8f" +checksum = "b9f7720b74ed28ca77f90769a71fd8c637a0137f6fae4ae947e1050229cff57f" dependencies = [ "bindgen 0.69.5", "cc", "cmake", "dunce", "fs_extra", - "paste", ] [[package]] -name = "axum" -version = "0.7.9" +name = "aws-runtime" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", +checksum = "76dd04d39cc12844c0994f2c9c5a6f5184c22e9188ec1ff723de41910a21dcad" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http 0.60.12", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit", - "memchr", - "mime", + "fastrand 2.3.0", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 1.0.1", - "tower 0.5.1", - "tower-layer", - "tower-service", + "tracing", + "uuid", ] [[package]] -name = "axum-core" -version = "0.4.5" +name = "aws-sdk-kms" +version = "1.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +checksum = "db4ecacd2e7947b670b7f9e5146c860d1b638cef1392351df47ddf6bb4c68839" dependencies = [ - "async-trait", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.61.1", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.1", - "tower-layer", - "tower-service", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", ] [[package]] -name = "backon" -version = "1.2.0" +name = "aws-sdk-s3" +version = "1.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113" +checksum = "3038614b6cf7dd68d9a7b5b39563d04337eb3678d1d4173e356e927b0356158a" dependencies = [ - "fastrand 2.2.0", - "tokio", + "aws-credential-types", + "aws-runtime", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-checksums", + "aws-smithy-eventstream", + "aws-smithy-http 0.61.1", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "fastrand 2.3.0", + "hex", + "hmac 0.12.1", + "http 0.2.12", + "http-body 0.4.6", + "lru 0.12.5", + "once_cell", + "percent-encoding", + "regex-lite", + "sha2 0.10.8", + "tracing", + "url", ] [[package]] -name = "backtrace" -version = "0.3.74" +name = "aws-sdk-sts" +version = "1.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "9276e139d39fff5a0b0c984fc2d30f970f9a202da67234f948fda02e5bea1dbe" dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http 0.61.1", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", ] [[package]] -name = "base-x" -version = "0.2.11" +name = "aws-sigv4" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" +checksum = "69d03c3c05ff80d54ff860fe38c726f6f494c639ae975203a101335f223386db" +dependencies = [ + "aws-credential-types", + "aws-smithy-eventstream", + "aws-smithy-http 0.62.0", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "form_urlencoded", + "hex", + "hmac 0.12.1", + "http 0.2.12", + "http 1.1.0", + "once_cell", + "percent-encoding", + "sha2 0.10.8", + "time", + "tracing", +] [[package]] -name = "base16ct" -version = "0.1.1" +name = "aws-smithy-async" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +checksum = "1e190749ea56f8c42bf15dd76c65e14f8f765233e6df9b0506d9d934ebef867c" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", +] [[package]] -name = "base16ct" -version = "0.2.0" +name = "aws-smithy-checksums" +version = "0.63.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +checksum = "b65d21e1ba6f2cdec92044f904356a19f5ad86961acf015741106cdfafd747c0" +dependencies = [ + "aws-smithy-http 0.62.0", + "aws-smithy-types", + "bytes", + "crc32c", + "crc32fast", + "crc64fast-nvme", + "hex", + "http 0.2.12", + "http-body 0.4.6", + "md-5", + "pin-project-lite", + "sha1", + "sha2 0.10.8", + "tracing", +] [[package]] -name = "base64" -version = "0.13.1" +name = "aws-smithy-eventstream" +version = "0.60.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "7c45d3dddac16c5c59d553ece225a88870cf81b7b813c9cc17b78cf4685eac7a" +dependencies = [ + "aws-smithy-types", + "bytes", + "crc32fast", +] [[package]] -name = "base64" -version = "0.21.7" +name = "aws-smithy-http" +version = "0.60.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6f276f21c7921fe902826618d1423ae5bf74cf8c1b8472aee8434f3dfd31824" +dependencies = [ + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5949124d11e538ca21142d1fba61ab0a2a2c1bc3ed323cdb3e4b878bfb83166" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.1.0", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92144e45819cae7dc62af23eac5a038a58aa544432d2102609654376a900bd07" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-query" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-runtime" +version = "1.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d526a12d9ed61fadefda24abe2e682892ba288c2018bcb38b1b4c111d13f6d92" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http 0.60.12", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "fastrand 2.3.0", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "http-body 1.0.1", + "httparse", + "hyper 0.14.31", + "hyper-rustls 0.24.2", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls 0.21.12", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da37cf5d57011cb1753456518ec76e31691f1f474b73934a284eb2a1c76510f" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "bytes", + "http 0.2.12", + "http 1.1.0", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-types" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836155caafba616c0ff9b07944324785de2ab016141c3550bd1c07882f8cee8f" +dependencies = [ + "base64-simd", + "bytes", + "bytes-utils", + "http 0.2.12", + "http 1.1.0", + "http-body 0.4.6", + "http-body 1.0.1", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", + "serde", + "time", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.60.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "1.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3873f8deed8927ce8d04487630dc9ff73193bab64742a61d050e57a68dec4125" +dependencies = [ + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version 0.4.1", + "tracing", +] + +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.1", + "tower 0.5.1", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113" +dependencies = [ + "fastrand 2.3.0", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "base64ct" version = "1.6.0" @@ -1653,6 +2506,12 @@ dependencies = [ "url", ] +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "beef" version = "0.5.2" @@ -1710,7 +2569,7 @@ dependencies = [ "bitflags 2.9.0", "cexpr", "clang-sys", - "itertools 0.11.0", + "itertools 0.10.5", "lazy_static", "lazycell", "log", @@ -1734,6 +2593,8 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", + "log", + "prettyplease", "proc-macro2", "quote", "regex", @@ -1841,6 +2702,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite 2.6.0", + "piper", +] + [[package]] name = "blst" version = "0.3.13" @@ -2055,6 +2929,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ + "sha2 0.10.8", "tinyvec", ] @@ -2132,6 +3007,16 @@ dependencies = [ "serde", ] +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + [[package]] name = "bzip2" version = "0.4.4" @@ -2406,19 +3291,74 @@ dependencies = [ ] [[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "combine" -version = "4.6.7" +name = "coins-bip32" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "2073678591747aed4000dd468b97b14d7007f7936851d3f2f01846899f5ebf08" +dependencies = [ + "bs58 0.5.1", + "coins-core", + "digest 0.10.7", + "hmac 0.12.1", + "k256 0.13.4", + "serde", + "sha2 0.10.8", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-bip39" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b169b26623ff17e9db37a539fe4f15342080df39f129ef7631df7683d6d9d4" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac 0.12.1", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b962ad8545e43a28e14e87377812ba9ae748dd4fd963f4c10e9fcc6d13475b" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58 0.5.1", + "const-hex", + "digest 0.10.7", + "generic-array", + "ripemd", + "serde", + "sha2 0.10.8", + "sha3", + "thiserror 1.0.69", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ "bytes", + "futures-core", "memchr", + "pin-project-lite", + "tokio", + "tokio-util", ] [[package]] @@ -2465,6 +3405,25 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "config" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" +dependencies = [ + "async-trait", + "convert_case 0.6.0", + "json5", + "nom", + "pathdiff", + "ron", + "rust-ini", + "serde", + "serde_json", + "toml 0.8.19", + "yaml-rust2", +] + [[package]] name = "console" version = "0.15.8" @@ -2474,7 +3433,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width 0.1.14", + "unicode-width 0.1.12", "windows-sys 0.52.0", ] @@ -2497,6 +3456,46 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "const_format" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c990efc7a285731f9a4378d81aff2f0e85a2c8781a05ef0f8baa8dac54d0ff48" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e026b6ce194a874cb9cf32cd5772d1ef9767cc8fcb5765948d74f37a9d8b2bf6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -2515,6 +3514,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.7.1" @@ -2583,6 +3591,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32c" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +dependencies = [ + "rustc_version 0.4.1", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -2592,6 +3609,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crc64fast-nvme" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3" +dependencies = [ + "crc", +] + [[package]] name = "criterion" version = "0.4.0" @@ -3253,6 +4279,15 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + [[package]] name = "doctest-file" version = "1.0.0" @@ -3736,13 +4771,34 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener 5.4.0", + "pin-project-lite", +] + [[package]] name = "exponential-backoff" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "949eb68d436415e37b7a69c49a9900d5337616b0e420377ccc48038b86261e16" dependencies = [ - "fastrand 2.2.0", + "fastrand 2.3.0", ] [[package]] @@ -3784,9 +4840,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -3859,6 +4915,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.35" @@ -4034,6 +5096,19 @@ dependencies = [ "waker-fn", ] +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand 2.3.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -4063,7 +5138,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper 0.4.0", ] @@ -4131,7 +5206,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" dependencies = [ - "unicode-width 0.1.14", + "unicode-width 0.1.12", ] [[package]] @@ -4259,6 +5334,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gloo-utils" version = "0.2.0" @@ -4272,6 +5359,12 @@ dependencies = [ "web-sys", ] +[[package]] +name = "go-parse-duration" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558b88954871f5e5b2af0e62e2e176c8bde7a6c2c4ed41b13d138d96da2e2cbd" + [[package]] name = "governor" version = "0.6.3" @@ -4713,9 +5806,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" dependencies = [ "anyhow", - "async-channel", + "async-channel 1.9.0", "base64 0.13.1", - "futures-lite", + "futures-lite 1.13.0", "infer", "pin-project-lite", "rand 0.7.3", @@ -5411,6 +6504,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + [[package]] name = "jsonrpsee" version = "0.20.4" @@ -5502,7 +6606,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f24ea59b037b6b9b0e2ebe2c30a3e782b56bd7c76dcc5d6d70ba55d442af56e3" dependencies = [ "anyhow", - "async-lock", + "async-lock 2.8.0", "async-trait", "beef", "futures-timer", @@ -5824,6 +6928,15 @@ dependencies = [ "libc", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -6102,6 +7215,9 @@ name = "log" version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +dependencies = [ + "value-bag", +] [[package]] name = "loom" @@ -6311,9 +7427,9 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6f8152da6d7892ff1b7a1c0fa3f435e92b5918ad67035c3bb432111d9a29b" +checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", "http-body-util", @@ -6323,7 +7439,7 @@ dependencies = [ "indexmap 2.7.0", "ipnet", "metrics", - "metrics-util 0.18.0", + "metrics-util 0.19.0", "quanta", "thiserror 1.0.69", "tokio", @@ -6332,9 +7448,9 @@ dependencies = [ [[package]] name = "metrics-process" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ca8ecd85575fbb143b2678cb123bb818779391ec0f745b1c4a9dbabadde407" +checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" dependencies = [ "libc", "libproc", @@ -6370,7 +7486,18 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd4884b1dd24f7d6628274a2f5ae22465c337c5ba065ec9b6edccddf8acc673" dependencies = [ + "aho-corasick", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.15.2", + "indexmap 2.7.0", "metrics", + "ordered-float", + "quanta", + "radix_trie", + "rand 0.8.5", + "rand_xoshiro", + "sketches-ddsketch", ] [[package]] @@ -6636,6 +7763,12 @@ dependencies = [ "synstructure 0.12.6", ] +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + [[package]] name = "multiversion" version = "0.7.4" @@ -6988,10 +8121,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "697a00d2d89e2e44c0ef2d1b3b7181dd529f5665c9c574bcfda5f975821a000f" dependencies = [ "alloy-consensus 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", "alloy-rpc-types-eth 0.12.6", - "alloy-signer", + "alloy-signer 0.12.6", "op-alloy-consensus", "op-alloy-rpc-types", ] @@ -7049,17 +8182,17 @@ version = "0.1.0" dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-op-evm", "alloy-primitives 0.8.23", - "alloy-provider", - "alloy-rpc-client", + "alloy-provider 0.12.6", + "alloy-rpc-client 0.12.6", "alloy-rpc-types-beacon", "alloy-rpc-types-engine", "alloy-rpc-types-eth 0.12.6", "alloy-serde 0.12.6", - "alloy-transport", - "alloy-transport-http", + "alloy-transport 0.12.6", + "alloy-transport-http 0.12.6", "async-trait", "chrono", "clap 4.5.21", @@ -7108,6 +8241,10 @@ dependencies = [ "reth-trie", "revm", "rollup-boost", + "rundler", + "rundler-builder", + "rundler-pool", + "rundler-rpc", "secp256k1", "serde", "serde_json", @@ -7225,6 +8362,20 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "opentelemetry" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "236e667b670a5cdf90c258f5a55794ec5ac5027e960c224bff8367a59e1e6426" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 2.0.11", + "tracing", +] + [[package]] name = "opentelemetry-http" version = "0.26.0" @@ -7234,8 +8385,22 @@ dependencies = [ "async-trait", "bytes", "http 1.1.0", - "opentelemetry", + "opentelemetry 0.26.0", + "reqwest 0.12.9", +] + +[[package]] +name = "opentelemetry-http" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8863faf2910030d139fb48715ad5ff2f35029fc5f244f6d5f689ddcf4d26253" +dependencies = [ + "async-trait", + "bytes", + "http 1.1.0", + "opentelemetry 0.28.0", "reqwest 0.12.9", + "tracing", ] [[package]] @@ -7247,10 +8412,10 @@ dependencies = [ "async-trait", "futures-core", "http 1.1.0", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-proto", - "opentelemetry_sdk", + "opentelemetry 0.26.0", + "opentelemetry-http 0.26.0", + "opentelemetry-proto 0.26.1", + "opentelemetry_sdk 0.26.0", "prost", "reqwest 0.12.9", "serde_json", @@ -7259,6 +8424,27 @@ dependencies = [ "tonic", ] +[[package]] +name = "opentelemetry-otlp" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91" +dependencies = [ + "async-trait", + "futures-core", + "http 1.1.0", + "opentelemetry 0.28.0", + "opentelemetry-http 0.28.0", + "opentelemetry-proto 0.28.0", + "opentelemetry_sdk 0.28.0", + "prost", + "reqwest 0.12.9", + "thiserror 2.0.11", + "tokio", + "tonic", + "tracing", +] + [[package]] name = "opentelemetry-proto" version = "0.26.1" @@ -7266,13 +8452,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9d3968ce3aefdcca5c27e3c4ea4391b37547726a70893aab52d3de95d5f8b34" dependencies = [ "hex", - "opentelemetry", - "opentelemetry_sdk", + "opentelemetry 0.26.0", + "opentelemetry_sdk 0.26.0", "prost", "serde", "tonic", ] +[[package]] +name = "opentelemetry-proto" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d" +dependencies = [ + "opentelemetry 0.28.0", + "opentelemetry_sdk 0.28.0", + "prost", + "tonic", +] + [[package]] name = "opentelemetry_sdk" version = "0.26.0" @@ -7285,7 +8483,7 @@ dependencies = [ "futures-util", "glob", "once_cell", - "opentelemetry", + "opentelemetry 0.26.0", "percent-encoding", "rand 0.8.5", "serde_json", @@ -7295,19 +8493,48 @@ dependencies = [ ] [[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "4.6.0" +name = "opentelemetry_sdk" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +checksum = "84dfad6042089c7fc1f6118b7040dc2eb4ab520abbf410b79dc481032af39570" dependencies = [ - "num-traits", -] + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "opentelemetry 0.28.0", + "percent-encoding", + "rand 0.8.5", + "serde_json", + "thiserror 2.0.11", + "tracing", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] [[package]] name = "os_str_bytes" @@ -7315,6 +8542,12 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +[[package]] +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + [[package]] name = "overload" version = "0.1.1" @@ -7428,6 +8661,31 @@ dependencies = [ "zstd 0.12.4", ] +[[package]] +name = "parse-display" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287d8d3ebdce117b8539f59411e4ed9ec226e0a4153c7f55495c6070d68e6f72" +dependencies = [ + "parse-display-derive", + "regex", + "regex-syntax 0.8.5", +] + +[[package]] +name = "parse-display-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc048687be30d79502dea2f623d052f3a074012c6eac41726b7ab17213616b1" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "regex-syntax 0.8.5", + "structmeta", + "syn 2.0.100", +] + [[package]] name = "password-hash" version = "0.4.2" @@ -7445,6 +8703,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -7457,6 +8721,16 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", +] + [[package]] name = "pem" version = "3.0.4" @@ -7484,15 +8758,59 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 2.0.11", "ucd-trie", ] +[[package]] +name = "pest_derive" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "pest_meta" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.7.0", +] + [[package]] name = "pharos" version = "0.5.3" @@ -7616,6 +8934,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand 2.3.0", + "futures-io", +] + [[package]] name = "pkcs1" version = "0.7.5" @@ -7948,6 +9277,21 @@ dependencies = [ "version_check", ] +[[package]] +name = "polling" +version = "3.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "pollster" version = "0.4.0" @@ -8238,6 +9582,26 @@ dependencies = [ "prost-derive", ] +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.100", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.13.5" @@ -8251,6 +9615,15 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -8509,6 +9882,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + [[package]] name = "ratatui" version = "0.29.0" @@ -8569,17 +9951,17 @@ dependencies = [ "alloy-eips 0.12.6", "alloy-evm", "alloy-json-rpc 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-network-primitives 0.12.6", "alloy-node-bindings", "alloy-primitives 0.8.23", - "alloy-provider", + "alloy-provider 0.12.6", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-beacon", "alloy-rpc-types-engine", "alloy-rpc-types-eth 0.12.6", - "alloy-signer-local", + "alloy-signer-local 0.12.6", "assert_matches", "async-trait", "beacon-api-client", @@ -8670,6 +10052,31 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" +[[package]] +name = "redis" +version = "0.27.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d8f99a4090c89cc489a94833c901ead69bfbf3877b4867d5482e321ee875bc" +dependencies = [ + "arc-swap", + "async-std", + "async-trait", + "bytes", + "combine", + "futures-util", + "itertools 0.13.0", + "itoa", + "num-bigint", + "percent-encoding", + "pin-project-lite", + "ryu", + "sha1_smol", + "socket2", + "tokio", + "tokio-util", + "url", +] + [[package]] name = "redox_syscall" version = "0.5.7" @@ -8722,6 +10129,12 @@ dependencies = [ "regex-syntax 0.8.5", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -8967,8 +10380,8 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", "alloy-primitives 0.8.23", - "alloy-signer", - "alloy-signer-local", + "alloy-signer 0.12.6", + "alloy-signer-local 0.12.6", "derive_more 2.0.1", "metrics", "parking_lot", @@ -9189,7 +10602,7 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", "alloy-primitives 0.8.23", - "alloy-provider", + "alloy-provider 0.12.6", "alloy-rpc-types-engine", "auto_impl", "derive_more 2.0.1", @@ -9740,7 +11153,7 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", "alloy-evm", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-eth 0.12.6", @@ -9913,7 +11326,7 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-primitives 0.8.23", "alloy-rlp", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 0.12.6", "eyre", "futures", "jsonrpsee 0.24.9", @@ -10590,7 +12003,7 @@ dependencies = [ "alloy-eips 0.12.6", "alloy-primitives 0.8.23", "alloy-rlp", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 0.12.6", "alloy-rpc-types-engine", "derive_more 2.0.1", "op-alloy-consensus", @@ -10656,7 +12069,7 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-eips 0.12.6", "alloy-primitives 0.8.23", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 0.12.6", "alloy-rpc-types-engine", "alloy-rpc-types-eth 0.12.6", "async-trait", @@ -11025,21 +12438,21 @@ dependencies = [ "alloy-eips 0.12.6", "alloy-evm", "alloy-genesis", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 0.12.6", "alloy-rpc-types-engine", "alloy-rpc-types-eth 0.12.6", "alloy-rpc-types-mev", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 0.12.6", "alloy-rpc-types-txpool", "alloy-serde 0.12.6", - "alloy-signer", - "alloy-signer-local", + "alloy-signer 0.12.6", + "alloy-signer-local 0.12.6", "async-trait", "derive_more 2.0.1", "futures", @@ -11099,11 +12512,11 @@ dependencies = [ "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 0.12.6", "alloy-rpc-types-engine", "alloy-rpc-types-eth 0.12.6", "alloy-rpc-types-mev", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 0.12.6", "alloy-rpc-types-txpool", "alloy-serde 0.12.6", "jsonrpsee 0.24.9", @@ -11117,8 +12530,8 @@ name = "reth-rpc-builder" version = "1.3.4" source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.4#90c514ca818a36eb8cd36866156c26a4221e9c4a" dependencies = [ - "alloy-network", - "alloy-provider", + "alloy-network 0.12.6", + "alloy-provider 0.12.6", "http 1.1.0", "jsonrpsee 0.24.9", "metrics", @@ -11188,7 +12601,7 @@ dependencies = [ "alloy-dyn-abi", "alloy-eips 0.12.6", "alloy-json-rpc 0.12.6", - "alloy-network", + "alloy-network 0.12.6", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-eth 0.12.6", @@ -11734,7 +13147,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93a4eb571d4b4552d5836b79a9afcdf8dba0a33877f9b334178e14f706fd0f5e" dependencies = [ "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.5.1", "auto_impl", "revm-database-interface", "revm-primitives", @@ -11812,7 +13225,7 @@ checksum = "b1504e2851a11562fb350a9f408e5783351650aef11790aea0b0d0d9ab961c40" dependencies = [ "alloy-primitives 0.8.23", "alloy-rpc-types-eth 0.12.6", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 0.12.6", "alloy-sol-types", "anstyle", "boa_engine", @@ -12004,115 +13417,496 @@ dependencies = [ ] [[package]] -name = "rollup-boost" -version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?rev=6b94e1037f41e0817f2bcb1f1ca5013a5359616a#6b94e1037f41e0817f2bcb1f1ca5013a5359616a" +name = "rollup-boost" +version = "0.1.0" +source = "git+http://github.com/flashbots/rollup-boost?rev=6b94e1037f41e0817f2bcb1f1ca5013a5359616a#6b94e1037f41e0817f2bcb1f1ca5013a5359616a" +dependencies = [ + "alloy-eips 0.12.6", + "alloy-primitives 0.8.23", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth 0.12.6", + "alloy-serde 0.12.6", + "clap 4.5.21", + "dotenv", + "eyre", + "flate2", + "futures", + "futures-util", + "http 1.1.0", + "http-body 0.4.6", + "http-body-util", + "hyper 1.5.0", + "hyper-rustls 0.27.3", + "hyper-util", + "jsonrpsee 0.24.9", + "lazy_static", + "metrics", + "metrics-derive", + "metrics-exporter-prometheus", + "metrics-process", + "metrics-util 0.18.0", + "moka", + "op-alloy-rpc-jsonrpsee", + "op-alloy-rpc-types", + "op-alloy-rpc-types-engine", + "opentelemetry 0.26.0", + "opentelemetry-http 0.26.0", + "opentelemetry-otlp 0.26.0", + "opentelemetry_sdk 0.26.0", + "parking_lot", + "paste", + "reqwest 0.12.9", + "rustls 0.23.25", + "serde", + "serde_json", + "thiserror 1.0.69", + "time", + "tokio", + "tokio-tungstenite 0.26.2", + "tower 0.4.13", + "tracing", + "tracing-opentelemetry 0.27.0", + "tracing-subscriber", + "url", +] + +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64 0.21.7", + "bitflags 2.9.0", + "serde", + "serde_derive", +] + +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rslock" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c19059f8d5b3997d274a461b96c53c581eb44144e10178967ff74ed75fcd0b2" +dependencies = [ + "futures", + "rand 0.8.5", + "redis", + "thiserror 2.0.11", + "tokio", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "arbitrary", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand 0.8.5", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rundler" +version = "0.6.0" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-network 0.7.3", + "alloy-primitives 0.8.23", + "anyhow", + "async-trait", + "aws-config", + "aws-sdk-s3", + "clap 4.5.21", + "config", + "dotenvy", + "futures", + "go-parse-duration", + "http 1.1.0", + "itertools 0.13.0", + "metrics", + "metrics-derive", + "metrics-exporter-prometheus", + "metrics-process", + "metrics-util 0.19.0", + "opentelemetry 0.28.0", + "opentelemetry-otlp 0.28.0", + "opentelemetry_sdk 0.28.0", + "paste", + "reth-tasks", + "rundler-bls", + "rundler-builder", + "rundler-pbh", + "rundler-pool", + "rundler-provider", + "rundler-rpc", + "rundler-signer", + "rundler-sim", + "rundler-task", + "rundler-types", + "rundler-utils", + "serde", + "serde_json", + "sscanf", + "strum 0.26.3", + "tokio", + "tokio-metrics", + "tonic", + "tracing", + "tracing-appender", + "tracing-log", + "tracing-opentelemetry 0.29.0", + "tracing-subscriber", +] + +[[package]] +name = "rundler-bindings-fastlz" +version = "0.6.0" +dependencies = [ + "bindgen 0.70.1", + "cc", +] + +[[package]] +name = "rundler-bls" +version = "0.6.0" +dependencies = [ + "alloy-primitives 0.8.23", + "async-trait", + "rundler-provider", + "rundler-types", +] + +[[package]] +name = "rundler-builder" +version = "0.6.0" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-primitives 0.8.23", + "alloy-signer 0.7.3", + "alloy-signer-local 0.7.3", + "anyhow", + "async-trait", + "enum_dispatch", + "futures", + "futures-util", + "jsonrpsee 0.24.9", + "linked-hash-map", + "metrics", + "metrics-derive", + "prost", + "reqwest 0.12.9", + "rundler-provider", + "rundler-signer", + "rundler-sim", + "rundler-task", + "rundler-types", + "rundler-utils", + "serde", + "serde_json", + "strum 0.26.3", + "thiserror 1.0.69", + "tokio", + "tonic", + "tonic-build", + "tonic-health", + "tonic-reflection", + "tracing", +] + +[[package]] +name = "rundler-contracts" +version = "0.6.0" +dependencies = [ + "alloy-contract", + "alloy-primitives 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", + "const-hex", + "serde_json", +] + +[[package]] +name = "rundler-pbh" +version = "0.6.0" +dependencies = [ + "alloy-primitives 0.8.23", + "alloy-sol-types", + "async-trait", + "rundler-provider", + "rundler-types", + "tracing", +] + +[[package]] +name = "rundler-pool" +version = "0.6.0" +dependencies = [ + "alloy-network-primitives 0.7.3", + "alloy-primitives 0.8.23", + "alloy-sol-types", + "anyhow", + "async-stream", + "async-trait", + "futures", + "futures-util", + "itertools 0.13.0", + "metrics", + "metrics-derive", + "parking_lot", + "prost", + "rundler-contracts", + "rundler-provider", + "rundler-sim", + "rundler-task", + "rundler-types", + "rundler-utils", + "tokio", + "tokio-stream", + "tonic", + "tonic-build", + "tonic-health", + "tonic-reflection", + "tracing", +] + +[[package]] +name = "rundler-provider" +version = "0.6.0" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-contract", + "alloy-eips 0.7.3", + "alloy-json-rpc 0.7.3", + "alloy-primitives 0.8.23", + "alloy-provider 0.7.3", + "alloy-rlp", + "alloy-rpc-client 0.7.3", + "alloy-rpc-types-eth 0.7.3", + "alloy-rpc-types-trace 0.7.3", + "alloy-serde 0.7.3", + "alloy-sol-types", + "alloy-transport 0.7.3", + "alloy-transport-http 0.7.3", + "anyhow", + "async-trait", + "auto_impl", + "futures-util", + "pin-project", + "rand 0.8.5", + "reqwest 0.12.9", + "reth-tasks", + "rundler-bindings-fastlz", + "rundler-contracts", + "rundler-types", + "rundler-utils", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tower 0.4.13", + "tracing", + "url", +] + +[[package]] +name = "rundler-rpc" +version = "0.6.0" +dependencies = [ + "alloy-consensus 0.7.3", + "alloy-contract", + "alloy-json-rpc 0.7.3", + "alloy-primitives 0.8.23", + "alloy-sol-types", + "anyhow", + "async-trait", + "futures-util", + "http 1.1.0", + "itertools 0.13.0", + "jsonrpsee 0.24.9", + "metrics", + "metrics-derive", + "rundler-contracts", + "rundler-provider", + "rundler-sim", + "rundler-task", + "rundler-types", + "rundler-utils", + "serde", + "strum 0.26.3", + "thiserror 1.0.69", + "tonic", + "tower 0.4.13", + "tower-http", + "tracing", +] + +[[package]] +name = "rundler-signer" +version = "0.6.0" dependencies = [ - "alloy-eips 0.12.6", + "alloy-consensus 0.7.3", + "alloy-eips 0.7.3", + "alloy-network 0.7.3", "alloy-primitives 0.8.23", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth 0.12.6", - "alloy-serde 0.12.6", - "clap 4.5.21", - "dotenv", - "eyre", - "flate2", - "futures", - "futures-util", - "http 1.1.0", - "http-body 0.4.6", - "http-body-util", - "hyper 1.5.0", - "hyper-rustls 0.27.3", - "hyper-util", - "jsonrpsee 0.24.9", - "lazy_static", + "alloy-signer 0.7.3", + "alloy-signer-aws", + "alloy-signer-local 0.7.3", + "anyhow", + "async-trait", + "aws-config", + "aws-sdk-kms", "metrics", "metrics-derive", - "metrics-exporter-prometheus", - "metrics-process", - "metrics-util 0.18.0", - "moka", - "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types", - "op-alloy-rpc-types-engine", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-otlp", - "opentelemetry_sdk", "parking_lot", - "paste", - "reqwest 0.12.9", - "rustls 0.23.25", + "rslock", + "rundler-contracts", + "rundler-provider", + "rundler-task", + "rundler-types", + "strum 0.26.3", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "rundler-sim" +version = "0.6.0" +dependencies = [ + "alloy-primitives 0.8.23", + "alloy-sol-types", + "anyhow", + "arrayvec", + "async-trait", + "auto_impl", + "futures-util", + "rand 0.8.5", + "rundler-contracts", + "rundler-provider", + "rundler-types", + "rundler-utils", "serde", - "serde_json", + "serde_with", "thiserror 1.0.69", - "time", "tokio", - "tokio-tungstenite 0.26.2", - "tower 0.4.13", "tracing", - "tracing-opentelemetry", - "tracing-subscriber", - "url", ] [[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" +name = "rundler-task" +version = "0.6.0" +dependencies = [ + "alloy-primitives 0.8.23", + "anyhow", + "async-trait", + "pin-project", + "reth-tasks", + "rundler-provider", + "rundler-types", + "rundler-utils", + "thiserror 1.0.69", + "tokio", + "tonic", + "tower 0.4.13", + "tracing", +] [[package]] -name = "rsa" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +name = "rundler-types" +version = "0.6.0" dependencies = [ - "const-oid", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "signature 2.2.0", - "spki 0.7.3", - "subtle", - "zeroize", + "alloy-eips 0.7.3", + "alloy-primitives 0.8.23", + "alloy-sol-types", + "anyhow", + "async-trait", + "auto_impl", + "chrono", + "futures-util", + "metrics", + "metrics-derive", + "num_enum", + "parse-display", + "rundler-contracts", + "rundler-utils", + "serde", + "strum 0.26.3", + "thiserror 1.0.69", ] [[package]] -name = "ruint" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +name = "rundler-utils" +version = "0.6.0" dependencies = [ - "alloy-rlp", - "arbitrary", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", + "alloy-primitives 0.8.23", + "alloy-rpc-types-eth 0.7.3", + "anyhow", + "derive_more 0.99.18", + "itertools 0.13.0", + "metrics", "rand 0.8.5", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", + "schnellru", + "tokio", + "tracing", ] [[package]] -name = "ruint-macro" -version = "1.2.1" +name = "rust-ini" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" +dependencies = [ + "cfg-if", + "ordered-multimap", +] [[package]] name = "rustc-demangle" @@ -13082,7 +14876,7 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener", + "event-listener 2.5.3", "futures-channel", "futures-core", "futures-intrusive", @@ -13265,6 +15059,33 @@ dependencies = [ "uuid", ] +[[package]] +name = "sscanf" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd1009b536a04035c8ffcf967496c7726c6b4971c9939b20ad085ac9377d4f0" +dependencies = [ + "const_format", + "lazy_static", + "regex", + "sscanf_macro", +] + +[[package]] +name = "sscanf_macro" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cffce0630a574bbcda2476cf733363c7e077001c386b0dea87b77eb397ca1a37" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "regex-syntax 0.6.29", + "strsim", + "syn 2.0.100", + "unicode-width 0.1.12", +] + [[package]] name = "ssz_rs" version = "0.9.0" @@ -13363,6 +15184,29 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "structmeta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" +dependencies = [ + "proc-macro2", + "quote", + "structmeta-derive", + "syn 2.0.100", +] + +[[package]] +name = "structmeta-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "strum" version = "0.26.3" @@ -13617,7 +15461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.2.0", + "fastrand 2.3.0", "once_cell", "rustix", "windows-sys 0.59.0", @@ -13648,7 +15492,7 @@ dependencies = [ "alloy-consensus 0.12.6", "alloy-json-rpc 0.12.6", "alloy-primitives 0.8.23", - "alloy-provider", + "alloy-provider 0.12.6", "clap 4.5.21", "clap_builder", "ctor", @@ -13892,6 +15736,18 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "tokio-metrics" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb2bb07a8451c4c6fa8b3497ad198510d8b8dffa5df5cfb97a64102a58b113c8" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + [[package]] name = "tokio-native-tls" version = "0.3.1" @@ -14053,6 +15909,46 @@ dependencies = [ "tracing", ] +[[package]] +name = "tonic-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "tonic-health" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eaf34ddb812120f5c601162d5429933c9b527d901ab0e7f930d3147e33a09b2" +dependencies = [ + "async-stream", + "prost", + "tokio", + "tokio-stream", + "tonic", +] + +[[package]] +name = "tonic-reflection" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic", +] + [[package]] name = "tower" version = "0.4.13" @@ -14230,8 +16126,26 @@ checksum = "dc58af5d3f6c5811462cabb3289aec0093f7338e367e5a33d28c0433b3c7360b" dependencies = [ "js-sys", "once_cell", - "opentelemetry", - "opentelemetry_sdk", + "opentelemetry 0.26.0", + "opentelemetry_sdk 0.26.0", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry 0.28.0", + "opentelemetry_sdk 0.28.0", "smallvec", "tracing", "tracing-core", @@ -14456,14 +16370,14 @@ checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" dependencies = [ "itertools 0.13.0", "unicode-segmentation", - "unicode-width 0.1.14", + "unicode-width 0.1.12", ] [[package]] name = "unicode-width" -version = "0.1.14" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "unicode-width" @@ -14586,6 +16500,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "value-bag" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" + [[package]] name = "vcpkg" version = "0.2.15" @@ -14650,6 +16570,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "wait-timeout" version = "0.2.0" @@ -15368,6 +17294,12 @@ dependencies = [ "tap", ] +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + [[package]] name = "xxhash-rust" version = "0.8.12" @@ -15383,6 +17315,17 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yaml-rust2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" +dependencies = [ + "arraydeque", + "encoding_rs", + "hashlink 0.8.4", +] + [[package]] name = "yansi" version = "1.0.1" @@ -15531,7 +17474,7 @@ dependencies = [ "crossbeam-utils", "flate2", "hmac 0.12.1", - "pbkdf2", + "pbkdf2 0.11.0", "sha1", "time", "zstd 0.11.2+zstd.1.5.2", diff --git a/Cargo.toml b/Cargo.toml index 1525fd59b..4daa6a16a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,6 +137,12 @@ op-alloy-rpc-jsonrpsee = { version = "0.11.2", default-features = false } op-alloy-network = { version = "0.11.2", default-features = false } op-alloy-consensus = { version = "0.11.2", default-features = false } +# rundler for 4337 +rundler-rpc = { path = "../rundler/crates/rpc" } +rundler-builder = { path = "../rundler/crates/builder" } +rundler-pool = { path = "../rundler/crates/pool" } +rundler = { path = "../rundler/bin/rundler" } + async-trait = { version = "0.1.83" } clap = { version = "4.4.3", features = ["derive", "env"] } clap_builder = { version = "4.5.19" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 8ac6062ba..b94bb0d16 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -63,6 +63,12 @@ op-alloy-network.workspace = true revm.workspace = true op-revm.workspace = true +# rundler +rundler-rpc.workspace = true +rundler-pool.workspace = true +rundler-builder.workspace = true +rundler.workspace = true + tracing.workspace = true futures-util = "0.3.31" eyre.workspace = true diff --git a/crates/op-rbuilder/src/args.rs b/crates/op-rbuilder/src/args.rs index 1e99c7fd2..3b191b861 100644 --- a/crates/op-rbuilder/src/args.rs +++ b/crates/op-rbuilder/src/args.rs @@ -4,11 +4,13 @@ //! clap [Args](clap::Args) for optimism rollup configuration use reth_optimism_node::args::RollupArgs; - +use rundler::cli::builder::BuilderCliArgs; +use rundler::cli::CommonArgs; +use rundler::cli::pool::PoolCliArgs; use crate::tx_signer::Signer; /// Parameters for rollup configuration -#[derive(Debug, Clone, Default, PartialEq, Eq, clap::Args)] +#[derive(Debug, Clone, clap::Args)] #[command(next_help_heading = "Rollup")] pub struct OpRbuilderArgs { /// Rollup configuration @@ -41,4 +43,11 @@ pub struct OpRbuilderArgs { /// Signals whether to log pool transaction events #[arg(long = "builder.log-pool-transactions", default_value = "false")] pub log_pool_transactions: bool, + #[command(flatten)] + pub builder: BuilderCliArgs, + #[command(flatten)] + pub common: CommonArgs, + #[command(flatten)] + pub pool: PoolCliArgs, + } diff --git a/crates/op-rbuilder/src/main.rs b/crates/op-rbuilder/src/main.rs index 58c0e9c8a..a2a6e777f 100644 --- a/crates/op-rbuilder/src/main.rs +++ b/crates/op-rbuilder/src/main.rs @@ -10,6 +10,8 @@ use payload_builder::CustomOpPayloadBuilder; #[cfg(not(feature = "flashblocks"))] use payload_builder_vanilla::CustomOpPayloadBuilder; use reth_transaction_pool::TransactionPool; +use rundler::cli::builder::{BuilderArgs, BuilderCliArgs}; +use rundler::cli::{construct_providers, load_configs}; /// CLI argument parsing. pub mod args; @@ -29,6 +31,7 @@ mod tester; mod tx_signer; use monitor_tx_pool::monitor_tx_pool; + fn main() { Cli::::parse() .run(|builder, builder_args| async move { @@ -71,6 +74,41 @@ fn main() { }), ); + // Spawn pool + let cs = rundler::cli::chain_spec::resolve_chain_spec(&Some(String::from("optimism_sepolia")), &None); + let common = builder_args.common; + { + let cs = cs.clone(); + let common = common.clone(); + let pool = builder_args.pool; + let task_executor = ctx.task_executor.clone(); + let providers = construct_providers(&common, &cs).unwrap(); + ctx.task_executor.spawn_critical( + "4337 spawner", + Box::pin(async move { + let (mempool_configs, entry_point_builders) = load_configs(&common).await.unwrap(); + let res = rundler::cli::pool::spawn_tasks(task_executor, cs, pool, common, providers, mempool_configs, entry_point_builders).await; + println!("{:?}", res); + }), + ); + } + + { + // Spawn builder + let cs = cs.clone(); + let common = common.clone(); + let builder = builder_args.builder; + let task_executor = ctx.task_executor.clone(); + // TODO: fix unwrap + let providers = construct_providers(&common, &cs).unwrap(); + ctx.task_executor.spawn_critical( + "4337 spawner", + Box::pin(async move { + let res = rundler::cli::builder::spawn_tasks(task_executor, cs, builder, common, providers).await; + println!("{:?}", res); + }), + ); + } Ok(()) }) .launch() From 3ef872a088c8447ac17933f6dc52847b94b72c06 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Fri, 11 Apr 2025 13:35:26 +0700 Subject: [PATCH 2/2] even more staff --- Cargo.lock | 18 ++ Cargo.toml | 12 +- crates/op-rbuilder/Cargo.toml | 4 + crates/op-rbuilder/src/args.rs | 12 +- crates/op-rbuilder/src/main.rs | 246 ++++++++++++++++--- crates/op-rbuilder/src/primitives/mod.rs | 1 + crates/op-rbuilder/src/primitives/rundler.rs | 49 ++++ 7 files changed, 295 insertions(+), 47 deletions(-) create mode 100644 crates/op-rbuilder/src/primitives/rundler.rs diff --git a/Cargo.lock b/Cargo.lock index 74cd8b755..4bef149df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8244,7 +8244,11 @@ dependencies = [ "rundler", "rundler-builder", "rundler-pool", + "rundler-provider", "rundler-rpc", + "rundler-signer", + "rundler-sim", + "rundler-utils", "secp256k1", "serde", "serde_json", @@ -13555,6 +13559,7 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rundler" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-consensus 0.7.3", "alloy-eips 0.7.3", @@ -13609,6 +13614,7 @@ dependencies = [ [[package]] name = "rundler-bindings-fastlz" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "bindgen 0.70.1", "cc", @@ -13617,6 +13623,7 @@ dependencies = [ [[package]] name = "rundler-bls" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-primitives 0.8.23", "async-trait", @@ -13627,6 +13634,7 @@ dependencies = [ [[package]] name = "rundler-builder" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-consensus 0.7.3", "alloy-eips 0.7.3", @@ -13665,6 +13673,7 @@ dependencies = [ [[package]] name = "rundler-contracts" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-contract", "alloy-primitives 0.8.23", @@ -13677,6 +13686,7 @@ dependencies = [ [[package]] name = "rundler-pbh" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-primitives 0.8.23", "alloy-sol-types", @@ -13689,6 +13699,7 @@ dependencies = [ [[package]] name = "rundler-pool" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-network-primitives 0.7.3", "alloy-primitives 0.8.23", @@ -13721,6 +13732,7 @@ dependencies = [ [[package]] name = "rundler-provider" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-consensus 0.7.3", "alloy-contract", @@ -13759,6 +13771,7 @@ dependencies = [ [[package]] name = "rundler-rpc" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-consensus 0.7.3", "alloy-contract", @@ -13791,6 +13804,7 @@ dependencies = [ [[package]] name = "rundler-signer" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-consensus 0.7.3", "alloy-eips 0.7.3", @@ -13820,6 +13834,7 @@ dependencies = [ [[package]] name = "rundler-sim" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-primitives 0.8.23", "alloy-sol-types", @@ -13843,6 +13858,7 @@ dependencies = [ [[package]] name = "rundler-task" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-primitives 0.8.23", "anyhow", @@ -13862,6 +13878,7 @@ dependencies = [ [[package]] name = "rundler-types" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-eips 0.7.3", "alloy-primitives 0.8.23", @@ -13885,6 +13902,7 @@ dependencies = [ [[package]] name = "rundler-utils" version = "0.6.0" +source = "git+https://github.com/NethermindEth/rundler?rev=49d93de11d9a2852ec42759fae1d5729a63639ff#49d93de11d9a2852ec42759fae1d5729a63639ff" dependencies = [ "alloy-primitives 0.8.23", "alloy-rpc-types-eth 0.7.3", diff --git a/Cargo.toml b/Cargo.toml index 4daa6a16a..bee8fb36a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -138,10 +138,14 @@ op-alloy-network = { version = "0.11.2", default-features = false } op-alloy-consensus = { version = "0.11.2", default-features = false } # rundler for 4337 -rundler-rpc = { path = "../rundler/crates/rpc" } -rundler-builder = { path = "../rundler/crates/builder" } -rundler-pool = { path = "../rundler/crates/pool" } -rundler = { path = "../rundler/bin/rundler" } +rundler-rpc = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-sim = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-builder = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-pool = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-utils = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-signer = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler-provider = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } +rundler = { git = "https://github.com/NethermindEth/rundler", rev = "49d93de11d9a2852ec42759fae1d5729a63639ff" } async-trait = { version = "0.1.83" } clap = { version = "4.4.3", features = ["derive", "env"] } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index b94bb0d16..3ce343154 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -65,6 +65,10 @@ op-revm.workspace = true # rundler rundler-rpc.workspace = true +rundler-sim.workspace = true +rundler-provider.workspace = true +rundler-signer.workspace = true +rundler-utils.workspace = true rundler-pool.workspace = true rundler-builder.workspace = true rundler.workspace = true diff --git a/crates/op-rbuilder/src/args.rs b/crates/op-rbuilder/src/args.rs index 3b191b861..c148e251e 100644 --- a/crates/op-rbuilder/src/args.rs +++ b/crates/op-rbuilder/src/args.rs @@ -4,9 +4,10 @@ //! clap [Args](clap::Args) for optimism rollup configuration use reth_optimism_node::args::RollupArgs; -use rundler::cli::builder::BuilderCliArgs; +use rundler::cli::builder::{BuilderArgs, BuilderCliArgs}; use rundler::cli::CommonArgs; -use rundler::cli::pool::PoolCliArgs; +use rundler::cli::rpc::RpcArgs; +use rundler::cli::pool::{PoolArgs, PoolCliArgs}; use crate::tx_signer::Signer; /// Parameters for rollup configuration @@ -44,10 +45,11 @@ pub struct OpRbuilderArgs { #[arg(long = "builder.log-pool-transactions", default_value = "false")] pub log_pool_transactions: bool, #[command(flatten)] - pub builder: BuilderCliArgs, + pub builder: BuilderArgs, #[command(flatten)] pub common: CommonArgs, #[command(flatten)] - pub pool: PoolCliArgs, - + pub pool: PoolArgs, + #[command(flatten)] + pub rundler_rpc: RpcArgs, } diff --git a/crates/op-rbuilder/src/main.rs b/crates/op-rbuilder/src/main.rs index a2a6e777f..d6c3a53ed 100644 --- a/crates/op-rbuilder/src/main.rs +++ b/crates/op-rbuilder/src/main.rs @@ -1,6 +1,9 @@ +use std::future::Future; +use std::sync::Arc; use clap::Parser; use monitoring::Monitoring; use reth::providers::CanonStateSubscriptions; +use reth::tasks::TaskExecutor; use reth_optimism_cli::{chainspec::OpChainSpecParser, Cli}; use reth_optimism_node::node::OpAddOnsBuilder; use reth_optimism_node::OpNode; @@ -10,8 +13,19 @@ use payload_builder::CustomOpPayloadBuilder; #[cfg(not(feature = "flashblocks"))] use payload_builder_vanilla::CustomOpPayloadBuilder; use reth_transaction_pool::TransactionPool; -use rundler::cli::builder::{BuilderArgs, BuilderCliArgs}; -use rundler::cli::{construct_providers, load_configs}; +use rundler::cli::{construct_providers, load_configs, CommonArgs}; +use rundler::cli::pool::PoolArgs; +use primitives::rundler::{Event, is_nonspammy_event}; +use rundler::cli::builder::{BuilderArgs}; +use rundler::cli::rpc::RpcArgs; +use rundler_provider::Providers; +use rundler_builder::{BuilderEvent, BuilderEventKind, BuilderTask, LocalBuilderBuilder, LocalBuilderHandle}; +use rundler_pool::{LocalPoolBuilder, LocalPoolHandle, PoolEvent, PoolTask}; +use tokio::sync::broadcast; +use rundler_utils::emit::{self, WithEntryPoint, EVENT_CHANNEL_CAPACITY}; +use rundler_rpc::{EthApi, RundlerApi, EntryPointRouterBuilder, EntryPointRouteImpl, UserOperationEventProviderV0_7, EntryPointRouter, RpcTaskArgs, EthApiServer, RundlerApiServer}; +use rundler_sim::gas::{get_fee_oracle, FeeEstimatorImpl, FeeOracle}; +use rundler_sim::{FeeEstimator, GasEstimatorV0_7}; /// CLI argument parsing. pub mod args; @@ -31,13 +45,24 @@ mod tester; mod tx_signer; use monitor_tx_pool::monitor_tx_pool; +/// Const from rundler cli +const REQUEST_CHANNEL_CAPACITY: usize = 1024; +/// Const from rundler cli +const BLOCK_CHANNEL_CAPACITY: usize = 1024; fn main() { Cli::::parse() .run(|builder, builder_args| async move { - let rollup_args = builder_args.rollup_args; + let rollup_args = builder_args.rollup_args.clone(); let op_node = OpNode::new(rollup_args.clone()); + + + let pool_builder = LocalPoolBuilder::new(REQUEST_CHANNEL_CAPACITY, BLOCK_CHANNEL_CAPACITY); + let pool_handle = pool_builder.get_handle(); + // Everything used for rpc task spawn + let (providers, rpc_task_args, router, fee_estimator, pool_fut, builder_fut) = spawn_rundler(builder.task_executor(), builder_args.clone(), pool_builder).await; + let handle = builder .with_types::() .with_components(op_node.components().payload(CustomOpPayloadBuilder::new( @@ -52,6 +77,13 @@ fn main() { .with_enable_tx_conditional(rollup_args.enable_tx_conditional) .build(), ) + .extend_rpc_modules(move |ctx| { + let eth_api = EthApi::new(rpc_task_args.chain_spec.clone(), router.clone(), pool_handle.clone(), rpc_task_args.eth_api_settings.permissions_enabled); + let rundler_api = RundlerApi::new(&rpc_task_args.chain_spec, router, pool_handle,fee_estimator,providers.evm().clone()); + ctx.modules.merge_configured(eth_api.into_rpc())?; + ctx.modules.merge_configured(rundler_api.into_rpc())?; + Ok(()) + }) .on_node_started(move |ctx| { let new_canonical_blocks = ctx.provider().canonical_state_stream(); let builder_signer = builder_args.builder_signer; @@ -74,41 +106,15 @@ fn main() { }), ); - // Spawn pool - let cs = rundler::cli::chain_spec::resolve_chain_spec(&Some(String::from("optimism_sepolia")), &None); - let common = builder_args.common; - { - let cs = cs.clone(); - let common = common.clone(); - let pool = builder_args.pool; - let task_executor = ctx.task_executor.clone(); - let providers = construct_providers(&common, &cs).unwrap(); - ctx.task_executor.spawn_critical( - "4337 spawner", - Box::pin(async move { - let (mempool_configs, entry_point_builders) = load_configs(&common).await.unwrap(); - let res = rundler::cli::pool::spawn_tasks(task_executor, cs, pool, common, providers, mempool_configs, entry_point_builders).await; - println!("{:?}", res); - }), - ); - } - - { - // Spawn builder - let cs = cs.clone(); - let common = common.clone(); - let builder = builder_args.builder; - let task_executor = ctx.task_executor.clone(); - // TODO: fix unwrap - let providers = construct_providers(&common, &cs).unwrap(); - ctx.task_executor.spawn_critical( - "4337 spawner", - Box::pin(async move { - let res = rundler::cli::builder::spawn_tasks(task_executor, cs, builder, common, providers).await; - println!("{:?}", res); - }), - ); - } + // Spawn rundler pool and builder futures + ctx.task_executor.spawn_critical( + "rundler pool", + pool_fut + ); + ctx.task_executor.spawn_critical( + "rundler pool", + builder_fut + ); Ok(()) }) .launch() @@ -118,3 +124,167 @@ fn main() { }) .unwrap(); } + +/// Spawns rundler components and return everything we need to extend rpc methods +async fn spawn_rundler( + task_executor: &TaskExecutor, + builder_args: args::OpRbuilderArgs, + pool_builder: LocalPoolBuilder +) -> (impl Providers + 'static, RpcTaskArgs, EntryPointRouter, impl FeeEstimator + 'static, core::pin::Pin>>, core::pin::Pin>>) { + let pool_args = builder_args.pool; + let common_args = builder_args.common; + let rundler_builer_args = builder_args.builder; + let rpc_args = builder_args.rundler_rpc; + + // hook pool and builder into rpc via ctx.extend_modules + let task_executor = task_executor.clone(); + // Hardcode, figure out how to do it nicely + let chain_spec = rundler::cli::chain_spec::resolve_chain_spec(&Some(String::from("optimism_sepolia")), &None); + let providers = construct_providers(&common_args, &chain_spec).unwrap(); + let (mempool_configs, entry_point_builders) = load_configs(&common_args).await.unwrap(); + let pool_task_args = pool_args + .to_args( + chain_spec.clone(), + &common_args, + None, + mempool_configs.clone(), + entry_point_builders.clone(), + ) + .await.expect("build pool args"); + let builder_task_args = rundler_builer_args + .to_args( + chain_spec.clone(), + &common_args, + None, + mempool_configs, + entry_point_builders, + ) + .await.expect("build builder args"); + let rpc_task_args = rpc_args.to_args(chain_spec.clone(), &common_args).expect("build rpc args"); + let (event_sender, event_rx) = + broadcast::channel::>(EVENT_CHANNEL_CAPACITY); + let (op_pool_event_sender, op_pool_event_rx) = + broadcast::channel::>(EVENT_CHANNEL_CAPACITY); + let (builder_event_sender, builder_event_rx) = + broadcast::channel::>(EVENT_CHANNEL_CAPACITY); + // Spawn rundler event logger + task_executor.spawn_critical( + "recv and log events", + Box::pin(emit::receive_and_log_events_with_filter(event_rx, |_| true)), + ); + // Router Pool event -> logger + task_executor.spawn_critical( + "recv op pool events", + Box::pin(emit::receive_events("op pool", op_pool_event_rx, { + let event_sender = event_sender.clone(); + move |event| { + let _ = event_sender.send(WithEntryPoint::of(event)); + } + })), + ); + // Router Builder event -> logger + task_executor.spawn_critical( + "recv builder events", + Box::pin(emit::receive_events("builder", builder_event_rx, { + let event_sender = event_sender.clone(); + move |event| { + if is_nonspammy_event(&event) { + let _ = event_sender.send(WithEntryPoint::of(event)); + } + } + })), + ); + + + let pool_providers = providers.clone(); + let pool_handle = pool_builder.get_handle(); + let pool_task_executor = task_executor.clone(); + // Spawn pool + let pool = Box::pin(async move { + PoolTask::new( + pool_task_args, + op_pool_event_sender, + pool_builder, + pool_providers, + ).spawn(pool_task_executor).await.unwrap(); + }); + + + + let builder_providers = providers.clone(); + let builder_task_executor = task_executor.clone(); + let builder_chain_spec = chain_spec.clone(); + // Spawn builder + let builder = Box::pin(async move { + let signer_manager = rundler_signer::new_signer_manager( + &builder_task_args.signing_scheme, + builder_task_args.auto_fund, + &builder_chain_spec, + builder_providers.evm().clone(), + builder_providers.da_gas_oracle().clone(), + &builder_task_executor, + ) + .await.expect("create signer manager"); + + let builder_builder = LocalBuilderBuilder::new( + REQUEST_CHANNEL_CAPACITY, + signer_manager.clone(), + Arc::new(pool_handle.clone()), + ); + BuilderTask::new( + builder_task_args, + builder_event_sender, + builder_builder, + pool_handle.clone(), + builder_providers, + signer_manager, + ) + .spawn(builder_task_executor).await.unwrap() + }); + + // We construct additional components that would be used by rpc server + let fee_oracle = Arc::::from(get_fee_oracle( + &chain_spec, + providers.evm().clone(), + )); + let fee_estimator = FeeEstimatorImpl::new( + providers.evm().clone(), + fee_oracle, + rpc_task_args.precheck_settings.priority_fee_mode, + rpc_task_args.precheck_settings.bundle_base_fee_overhead_percent, + rpc_task_args + .precheck_settings + .bundle_priority_fee_overhead_percent, + ); + + // We build only v7 entrypoint, don't server v6 for now + // TODO: figure out if we need to support v6 + + let ep = providers + .ep_v0_7() + .clone() + .expect("entry point v0.7 not supplied"); + let router_builder = EntryPointRouterBuilder::default().v0_7(EntryPointRouteImpl::new( + ep.clone(), + GasEstimatorV0_7::new( + chain_spec.clone(), + providers.evm().clone(), + ep.clone(), + rpc_task_args.estimation_settings, + fee_estimator.clone(), + ), + UserOperationEventProviderV0_7::new( + chain_spec.clone(), + providers.evm().clone(), + rpc_task_args + .eth_api_settings + .user_operation_event_block_distance, + rpc_task_args + .eth_api_settings + .user_operation_event_block_distance_fallback, + ), + )); + let router = router_builder.build(); + (providers, rpc_task_args, router, fee_estimator, pool, builder) +} + diff --git a/crates/op-rbuilder/src/primitives/mod.rs b/crates/op-rbuilder/src/primitives/mod.rs index 02615de6d..507d7e2ac 100644 --- a/crates/op-rbuilder/src/primitives/mod.rs +++ b/crates/op-rbuilder/src/primitives/mod.rs @@ -1 +1,2 @@ pub mod reth; +pub mod rundler; diff --git a/crates/op-rbuilder/src/primitives/rundler.rs b/crates/op-rbuilder/src/primitives/rundler.rs new file mode 100644 index 000000000..af6e9bf1e --- /dev/null +++ b/crates/op-rbuilder/src/primitives/rundler.rs @@ -0,0 +1,49 @@ +use std::fmt::Display; +use rundler_builder::{BuilderEvent, BuilderEventKind}; +use rundler_pool::PoolEvent; +use rundler_utils::emit::WithEntryPoint; + +#[derive(Clone, Debug)] +#[allow(clippy::large_enum_variant)] +pub enum Event { + PoolEvent(PoolEvent), + BuilderEvent(BuilderEvent), +} + +impl From for Event { + fn from(event: PoolEvent) -> Self { + Self::PoolEvent(event) + } +} + +impl From for Event { + fn from(event: BuilderEvent) -> Self { + Self::BuilderEvent(event) + } +} + +impl Display for Event { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Event::PoolEvent(event) => event.fmt(f), + Event::BuilderEvent(event) => event.fmt(f), + } + } +} + + + +/// This function is taker from rundler-cli crate `bin/rundler/src/cli/builder.rs` +pub fn is_nonspammy_event(event: &WithEntryPoint) -> bool { + if let BuilderEventKind::FormedBundle { + tx_details, + fee_increase_count, + .. + } = &event.event.kind + { + if tx_details.is_none() && *fee_increase_count == 0 { + return false; + } + } + true +} \ No newline at end of file