diff --git a/Cargo.lock b/Cargo.lock index 981bc45165..9b366a97d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,6 +150,8 @@ dependencies = [ "alloy-contract 1.8.3", "alloy-core", "alloy-eips 1.8.3", + "alloy-genesis 1.8.3", + "alloy-json-rpc 1.8.3", "alloy-network 1.8.3", "alloy-node-bindings 1.8.3", "alloy-provider 1.8.3", @@ -157,7 +159,11 @@ dependencies = [ "alloy-rpc-types 1.8.3", "alloy-serde 1.8.3", "alloy-signer 1.8.3", + "alloy-signer-aws", + "alloy-signer-gcp", + "alloy-signer-ledger", "alloy-signer-local 1.8.3", + "alloy-signer-turnkey", "alloy-transport 1.8.3", "alloy-transport-http 1.8.3", "alloy-trie", @@ -169,7 +175,7 @@ version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84e0378e959aa6a885897522080a990e80eb317f1e9a222a604492ea50e13096" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "num_enum 0.7.6", @@ -185,7 +191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f16daaf7e1f95f62c6c3bf8a3fc3d78b08ae9777810c0bb5e94966c7cd57ef0" dependencies = [ "alloy-eips 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 1.8.3", "alloy-trie", @@ -212,7 +218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83447eeb17816e172f1dfc0db1f9dc0b7c5d069bd1f7cecbecceb382bf931015" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 2.0.5", "alloy-trie", @@ -241,7 +247,7 @@ checksum = "118998d9015332ab1b4720ae1f1e3009491966a0349938a1f43ff45a8a4c6299" dependencies = [ "alloy-consensus 1.8.3", "alloy-eips 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 1.8.3", "serde", @@ -255,7 +261,7 @@ checksum = "5406343e306856dc2be762700e98a16904de45dee14a07f233e742ce68daff2f" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 2.0.5", "arbitrary", @@ -273,12 +279,12 @@ dependencies = [ "alloy-json-abi", "alloy-network 1.8.3", "alloy-network-primitives 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 1.8.3", "alloy-rpc-types-eth 1.8.3", "alloy-sol-types", "alloy-transport 1.8.3", - "futures", + "futures 0.3.32", "futures-util", "serde_json", "thiserror 2.0.18", @@ -296,12 +302,12 @@ dependencies = [ "alloy-json-abi", "alloy-network 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-sol-types", "alloy-transport 2.0.5", - "futures", + "futures 0.3.32", "futures-util", "serde_json", "thiserror 2.0.18", @@ -316,7 +322,7 @@ checksum = "62ddde5968de6044d67af107ad835bc0069a7ca245870b94c5958a7d8712b184" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-sol-types", ] @@ -328,7 +334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a475bb02d9cef2dbb99065c1664ab3fe1f9352e21d6d5ed3f02cdbfc06ed1abc" dependencies = [ "alloy-json-abi", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-type-parser", "alloy-sol-types", "derive_more 2.1.1", @@ -344,7 +350,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "crc", @@ -359,7 +365,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "borsh", @@ -373,7 +379,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "borsh", @@ -390,7 +396,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b827a6d7784fe3eb3489d40699407a4cdcce74271421a01bdffe60cf573bb16" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "borsh", @@ -405,7 +411,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "951e1d988b5753bc424b837c98ce0dc575031db99e7cd01833d3a5053b97951a" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "borsh", @@ -424,7 +430,7 @@ dependencies = [ "alloy-eip2930", "alloy-eip7702", "alloy-eip7928 0.3.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 1.8.3", "auto_impl", @@ -447,7 +453,7 @@ dependencies = [ "alloy-eip2930", "alloy-eip7702", "alloy-eip7928 0.3.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 2.0.5", "arbitrary", @@ -472,13 +478,13 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-sol-types", "auto_impl", "derive_more 2.1.1", - "revm", + "revm 40.0.3", "thiserror 2.0.18", "tracing", ] @@ -490,10 +496,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbf9480307b09d22876efb67d30cadd9013134c21f3a17ec9f93fd7536d38024" dependencies = [ "alloy-eips 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-serde 1.8.3", "alloy-trie", + "borsh", "serde", + "serde_with", ] [[package]] @@ -503,7 +511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab0e0fe9e6d1120ad7bb9254c3fc2b9bc80a8df42a033fb626be6559c13d5153" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-serde 2.0.5", "alloy-trie", "borsh", @@ -519,7 +527,7 @@ checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "dyn-clone", ] @@ -532,7 +540,7 @@ checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "dyn-clone", "serde", @@ -544,7 +552,7 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c36c9d7f9021601b04bfef14a4b64849f6d73116a4e91e071d7fbfe10247901" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-type-parser", "serde", "serde_json", @@ -556,7 +564,7 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "422d110f1c40f1f8d0e5562b0b649c35f345fccb7093d9f02729943dcd1eef71" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "http 1.4.2", "serde", @@ -571,7 +579,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0a82e56b1843bce483942d54fcadea92e676f1bde162e93c7d3b621fabc4e1" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "http 1.4.2", "serde", @@ -591,7 +599,7 @@ dependencies = [ "alloy-eips 1.8.3", "alloy-json-rpc 1.8.3", "alloy-network-primitives 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-any 1.8.3", "alloy-rpc-types-eth 1.8.3", "alloy-serde 1.8.3", @@ -617,7 +625,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-json-rpc 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-any 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -640,7 +648,7 @@ checksum = "eb82711d59a43fdfd79727c99f270b974c784ec4eb5728a0d0d22f26716c87ef" dependencies = [ "alloy-consensus 1.8.3", "alloy-eips 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-serde 1.8.3", "serde", ] @@ -653,7 +661,7 @@ checksum = "cd28d9bfd11729037d194f2b1d43db8642eb3f342032691f4ca96bb745479c3c" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-serde 2.0.5", "serde", ] @@ -667,7 +675,7 @@ dependencies = [ "alloy-genesis 1.8.3", "alloy-hardforks 0.2.13", "alloy-network 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 1.8.3", "alloy-signer-local 1.8.3", "k256", @@ -689,7 +697,7 @@ dependencies = [ "alloy-genesis 2.0.5", "alloy-hardforks 0.2.13", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", "k256", @@ -702,6 +710,28 @@ dependencies = [ "url", ] +[[package]] +name = "alloy-primitives" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.20", + "hex-literal 0.4.1", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand 0.8.6", + "ruint", + "serde", + "tiny-keccak", +] + [[package]] name = "alloy-primitives" version = "1.6.0" @@ -747,10 +777,12 @@ dependencies = [ "alloy-network 1.8.3", "alloy-network-primitives 1.8.3", "alloy-node-bindings 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-client 1.8.3", "alloy-rpc-types-anvil 1.8.3", + "alloy-rpc-types-debug 1.8.3", "alloy-rpc-types-eth 1.8.3", + "alloy-rpc-types-trace 1.8.3", "alloy-signer 1.8.3", "alloy-sol-types", "alloy-transport 1.8.3", @@ -760,7 +792,7 @@ dependencies = [ "auto_impl", "dashmap", "either", - "futures", + "futures 0.3.32", "futures-utils-wasm", "lru 0.16.4", "parking_lot", @@ -787,14 +819,14 @@ dependencies = [ "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-pubsub", "alloy-rpc-client 2.0.5", "alloy-rpc-types-admin", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 2.0.5", "alloy-rpc-types-txpool", "alloy-signer 2.0.5", "alloy-sol-types", @@ -807,7 +839,7 @@ dependencies = [ "auto_impl", "dashmap", "either", - "futures", + "futures 0.3.32", "futures-utils-wasm", "lru 0.16.4", "parking_lot", @@ -829,11 +861,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd85cfea1fa8ebd20d3475e961fe3a3624c0eb4659ea137715c0c83c8aeaff0" dependencies = [ "alloy-json-rpc 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-transport 2.0.5", "auto_impl", "bimap", - "futures", + "futures 0.3.32", "parking_lot", "serde", "serde_json", @@ -873,10 +905,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94fcc9604042ca80bd37aa5e232ea1cd851f337e31e2babbbb345bc0b1c30de3" dependencies = [ "alloy-json-rpc 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-transport 1.8.3", "alloy-transport-http 1.8.3", - "futures", + "futures 0.3.32", "pin-project", "reqwest 0.13.4", "serde", @@ -896,13 +928,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24f461f091dc8f657e73b5dea18fd63d5c7049720cd252f1eade4a7ebed6a7e1" dependencies = [ "alloy-json-rpc 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-pubsub", "alloy-transport 2.0.5", "alloy-transport-http 2.0.5", "alloy-transport-ipc", "alloy-transport-ws", - "futures", + "futures 0.3.32", "pin-project", "reqwest 0.13.4", "serde", @@ -921,8 +953,10 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4faad925d3a669ffc15f43b3deec7fbdf2adeb28a4d6f9cf4bc661698c0f8f4b" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", + "alloy-rpc-types-debug 1.8.3", "alloy-rpc-types-eth 1.8.3", + "alloy-rpc-types-trace 1.8.3", "alloy-serde 1.8.3", "serde", ] @@ -933,8 +967,8 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "052c031d1f7c5611997056bbcb8814e5cbf20f7efeee8c3de690555172038cf2" dependencies = [ - "alloy-primitives", - "alloy-rpc-types-debug", + "alloy-primitives 1.6.0", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -948,7 +982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef669b370940e7945a3a384cc4024038cd69ee658b71270d59c20b78dd8d20d4" dependencies = [ "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "serde", "serde_json", ] @@ -959,7 +993,7 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47df51bedb3e6062cb9981187a51e86d0d64a4de66eb0855e9efe6574b044ddf" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 1.8.3", "alloy-serde 1.8.3", "serde", @@ -971,7 +1005,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ff111a54268dc0bbd3b17f98571a7e27cc661dc081ad2999d91888647eb2e11" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "serde", @@ -996,7 +1030,7 @@ checksum = "0a6561ed4759c974d9c144500a59e3fb8c1d87327a12900d5ce455c0cae6dcb6" dependencies = [ "alloy-consensus-any 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "serde", @@ -1010,7 +1044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a62f6ce2d95f59ed310bd90d5fd1566a29d1ec45cc219abbc5dcc807d31f136" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "derive_more 2.1.1", "ethereum_ssz", @@ -1023,13 +1057,25 @@ dependencies = [ "tree_hash_derive", ] +[[package]] +name = "alloy-rpc-types-debug" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2145138f3214928f08cd13da3cb51ef7482b5920d8ac5a02ecd4e38d1a8f6d1e" +dependencies = [ + "alloy-primitives 1.6.0", + "derive_more 2.1.1", + "serde", + "serde_with", +] + [[package]] name = "alloy-rpc-types-debug" version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48b9ad6eee93dd35a9ec0a6c1c6b180892a900ee17a6ed6500921552dd71e846" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "derive_more 2.1.1", "serde", @@ -1044,7 +1090,7 @@ checksum = "7eba59e1c069f168a01982f42a57797736923b76aa854194df4930be17867e1c" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 2.0.5", "arbitrary", @@ -1067,7 +1113,7 @@ dependencies = [ "alloy-consensus-any 1.8.3", "alloy-eips 1.8.3", "alloy-network-primitives 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 1.8.3", "alloy-sol-types", @@ -1088,7 +1134,7 @@ dependencies = [ "alloy-consensus-any 2.0.5", "alloy-eips 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-serde 2.0.5", "alloy-sol-types", @@ -1108,20 +1154,34 @@ checksum = "ed1004c1d68bfaee001712f83356f88031ab74a727b8560fb7fc738d1281ebe5" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "serde", "serde_json", ] +[[package]] +name = "alloy-rpc-types-trace" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5a4d010f86cd4e01e5205ec273911e538e1738e76d8bafe9ecd245910ea5a3" +dependencies = [ + "alloy-primitives 1.6.0", + "alloy-rpc-types-eth 1.8.3", + "alloy-serde 1.8.3", + "serde", + "serde_json", + "thiserror 2.0.18", +] + [[package]] name = "alloy-rpc-types-trace" version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514b4b1ce3354f65067b4fc7eb75358e0f2ec8be3340c96dea65d6894f9ca435" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "serde", @@ -1135,7 +1195,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e34a42ebb4a71ab0bfdebc6d2f3c7bf809f01edf154d08fed159d10d1ef1d4" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "serde", @@ -1147,7 +1207,7 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ece63b89294b8614ab3f483560c08d016930f842bf36da56bf0b764a15c11e" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "serde", "serde_json", ] @@ -1158,7 +1218,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc21a8772af7d78bba286726aa245bd2ff81cd9abe230afea2e91578996831c9" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "serde", "serde_json", @@ -1170,7 +1230,9 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43f447aefab0f1c0649f71edc33f590992d4e122bc35fb9cdbbf67d4421ace85" dependencies = [ - "alloy-primitives", + "alloy-dyn-abi", + "alloy-primitives 1.6.0", + "alloy-sol-types", "async-trait", "auto_impl", "either", @@ -1185,7 +1247,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ffbce94c50dd9d4d1f83e044c5595bbd3ada981bd3057ce28b3a5470e77385d" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "auto_impl", "either", @@ -1202,7 +1264,7 @@ checksum = "8194c416115dc27f03796c0075dee0731239e2d7fbce735a74894aa8f6a47d7d" dependencies = [ "alloy-consensus 1.8.3", "alloy-network 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 1.8.3", "async-trait", "aws-config", @@ -1213,6 +1275,44 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-signer-gcp" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa71d57808c8ce3c41342a71245d67839b032d7e18072b50a8d262e28143c18" +dependencies = [ + "alloy-consensus 1.8.3", + "alloy-network 1.8.3", + "alloy-primitives 1.6.0", + "alloy-signer 1.8.3", + "async-trait", + "gcloud-sdk", + "k256", + "spki", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "alloy-signer-ledger" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f199e1a28175d8dbed35b4a726d2080bf0a696017e865d063090895f3342965" +dependencies = [ + "alloy-consensus 1.8.3", + "alloy-dyn-abi", + "alloy-network 1.8.3", + "alloy-primitives 1.6.0", + "alloy-signer 1.8.3", + "alloy-sol-types", + "async-trait", + "coins-ledger", + "futures-util", + "semver 1.0.28", + "thiserror 2.0.18", + "tracing", +] + [[package]] name = "alloy-signer-local" version = "1.8.3" @@ -1221,7 +1321,7 @@ checksum = "f721f4bf2e4812e5505aaf5de16ef3065a8e26b9139ac885862d00b5a55a659a" dependencies = [ "alloy-consensus 1.8.3", "alloy-network 1.8.3", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 1.8.3", "async-trait", "k256", @@ -1237,7 +1337,7 @@ checksum = "e48366d2c42b8d95ef951101bafa28486590f21b7a1e68b6b2d069746557bbe3" dependencies = [ "alloy-consensus 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "async-trait", "coins-bip32", @@ -1248,6 +1348,22 @@ dependencies = [ "zeroize", ] +[[package]] +name = "alloy-signer-turnkey" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f20ea50426fb96f57f3fac0b25161a8b8c169a744c471b1394e51e860a05fbb8" +dependencies = [ + "alloy-consensus 1.8.3", + "alloy-network 1.8.3", + "alloy-primitives 1.6.0", + "alloy-signer 1.8.3", + "async-trait", + "thiserror 2.0.18", + "tracing", + "turnkey_client", +] + [[package]] name = "alloy-sol-macro" version = "1.6.0" @@ -1271,7 +1387,7 @@ dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", - "heck", + "heck 0.5.0", "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", @@ -1290,7 +1406,7 @@ dependencies = [ "alloy-json-abi", "const-hex", "dunce", - "heck", + "heck 0.5.0", "macro-string", "proc-macro2", "quote", @@ -1316,7 +1432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384cf252de0db2dec52821eac037a7f57e2aa33fe5b900ce6fe39973402341f1" dependencies = [ "alloy-json-abi", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-macro", "serde", ] @@ -1331,7 +1447,7 @@ dependencies = [ "auto_impl", "base64 0.22.1", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "futures-utils-wasm", "parking_lot", "serde", @@ -1354,7 +1470,7 @@ dependencies = [ "auto_impl", "base64 0.22.1", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "futures-utils-wasm", "parking_lot", "serde", @@ -1418,7 +1534,7 @@ dependencies = [ "alloy-pubsub", "alloy-transport 2.0.5", "bytes", - "futures", + "futures 0.3.32", "interprocess", "pin-project", "serde", @@ -1436,7 +1552,7 @@ checksum = "33e32e0b47d3b3bf5770b7c132090c614b008d307c5e1544f1925f5b7e9e9af6" dependencies = [ "alloy-pubsub", "alloy-transport 2.0.5", - "futures", + "futures 0.3.32", "http 1.4.2", "rustls 0.23.40", "serde_json", @@ -1453,7 +1569,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "derive_arbitrary", @@ -2150,7 +2266,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix", + "rustix 1.1.4", "slab", "windows-sys 0.61.2", ] @@ -2182,7 +2298,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" dependencies = [ - "futures", + "futures 0.3.32", "pin-project", "tokio", ] @@ -2226,7 +2342,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ - "futures", + "futures 0.3.32", "pharos", "rustc_version 0.4.1", ] @@ -2315,7 +2431,7 @@ name = "audit-archiver-lib" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "anyhow", "async-trait", "aws-config", @@ -2326,7 +2442,7 @@ dependencies = [ "base-observability-events", "bytes", "chrono", - "futures", + "futures 0.3.32", "jsonrpsee", "jsonrpsee-types", "metrics", @@ -3088,6 +3204,12 @@ dependencies = [ "tower-service", ] +[[package]] +name = "az" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" + [[package]] name = "backoff" version = "0.4.0" @@ -3113,6 +3235,34 @@ dependencies = [ "tokio", ] +[[package]] +name = "backrunner" +version = "0.1.0" +source = "git+ssh://git@github.com/propeller-heads/builder-integration.git?rev=6029f1b4739c753383c0ce5ef03a70ad1bd007e5#6029f1b4739c753383c0ce5ef03a70ad1bd007e5" +dependencies = [ + "alloy", + "anyhow", + "builder-types", + "chrono", + "clap", + "futures 0.3.32", + "fynd-core", + "hex", + "num-bigint 0.4.6", + "reqwest 0.12.28", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-subscriber 0.3.23", + "tycho-simulation", + "uniswap-v2-core", + "uniswap-v3-core", + "uniswap-v4-core", + "uuid", +] + [[package]] name = "backtrace" version = "0.3.76" @@ -3165,7 +3315,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types-engine", @@ -3226,7 +3376,7 @@ version = "0.0.0" dependencies = [ "alloy-network 2.0.5", "alloy-node-bindings 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "tokio", "tokio-util", @@ -3248,7 +3398,7 @@ dependencies = [ name = "base-batcher-bin" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer-local 2.0.5", "base-batcher-core", "base-batcher-encoder", @@ -3269,7 +3419,7 @@ name = "base-batcher-core" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "async-trait", "auto_impl", @@ -3281,7 +3431,7 @@ dependencies = [ "base-runtime", "base-tx-manager", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "rstest", "serde", "thiserror 2.0.18", @@ -3295,7 +3445,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-common-consensus", "base-common-genesis", "base-comp", @@ -3315,7 +3465,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", @@ -3338,7 +3488,7 @@ dependencies = [ "base-tx-manager", "derive_more 2.1.1", "eyre", - "futures", + "futures 0.3.32", "httpmock", "jsonrpsee", "metrics", @@ -3356,13 +3506,13 @@ name = "base-batcher-source" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "base-common-consensus", "base-protocol", "base-runtime", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "thiserror 2.0.18", "tokio", "tracing", @@ -3373,7 +3523,7 @@ name = "base-blobs" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-protocol", "rstest", "thiserror 2.0.18", @@ -3388,19 +3538,22 @@ dependencies = [ "base-builder-metering", "base-cli-utils", "base-execution-cli", + "base-intent-swap", "base-node-runner", "base-observability-events", "base-reth-cli", "base-txpool-rpc", "clap", + "eyre", "reth-cli-util", + "tokio", ] [[package]] name = "base-builder-cli" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-builder-core", "base-builder-metering", "base-bundles", @@ -3422,7 +3575,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-beacon", @@ -3468,7 +3621,7 @@ dependencies = [ "dirs-next", "either", "eyre", - "futures", + "futures 0.3.32", "hex", "http 1.4.2", "http-body-util", @@ -3518,7 +3671,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie", "reth-trie-common", - "revm", + "revm 40.0.3", "rlimit", "secp256k1 0.30.0", "serde", @@ -3545,7 +3698,7 @@ dependencies = [ name = "base-builder-metering" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-builder-core", "base-bundles", "base-node-runner", @@ -3561,7 +3714,7 @@ dependencies = [ "base-metrics", "base-ring-buffer", "criterion", - "futures", + "futures 0.3.32", "http 1.4.2", "metrics", "parking_lot", @@ -3592,7 +3745,7 @@ name = "base-bundles" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-serde 2.0.5", "alloy-signer-local 2.0.5", @@ -3610,7 +3763,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", @@ -3634,7 +3787,7 @@ dependencies = [ "base-tx-manager", "clap", "eyre", - "futures", + "futures 0.3.32", "humantime", "metrics", "metrics-util", @@ -3694,10 +3847,10 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "base-common-genesis", - "revm", + "revm 40.0.3", "spin 0.10.0", ] @@ -3709,7 +3862,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -3724,7 +3877,7 @@ dependencies = [ "reth-db-api", "reth-primitives-traits", "reth-zstd-compressors", - "revm", + "revm 40.0.3", "rstest", "serde", "serde_json", @@ -3740,7 +3893,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "auto_impl", "base-common-chains", @@ -3754,7 +3907,7 @@ dependencies = [ "k256", "metrics", "reth-evm", - "revm", + "revm 40.0.3", "rstest", "serde", "serde_json", @@ -3766,7 +3919,7 @@ dependencies = [ name = "base-common-flashblocks" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -3794,7 +3947,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "arbitrary", "derive_more 2.1.1", @@ -3814,7 +3967,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-engine", "alloy-transport 2.0.5", @@ -3830,7 +3983,7 @@ name = "base-common-precompiles" version = "0.0.0" dependencies = [ "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "base-common-chains", "base-common-genesis", @@ -3838,7 +3991,7 @@ dependencies = [ "base-precompile-storage", "criterion", "k256", - "revm", + "revm 40.0.3", "rstest", ] @@ -3851,7 +4004,7 @@ dependencies = [ "alloy-evm", "alloy-network 2.0.5", "alloy-network-primitives 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "alloy-signer 2.0.5", @@ -3862,7 +4015,7 @@ dependencies = [ "rand 0.9.4", "reth-primitives-traits", "reth-rpc-convert", - "revm", + "revm 40.0.3", "serde", "serde_json", "similar-asserts", @@ -3874,7 +4027,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "alloy-serde 2.0.5", @@ -3899,7 +4052,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-network 2.0.5", "alloy-node-bindings 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", @@ -3917,7 +4070,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-sol-types", "arbitrary", @@ -3951,7 +4104,7 @@ version = "0.0.0" dependencies = [ "alloy-chains", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-engine", "alloy-signer 2.0.5", @@ -3997,7 +4150,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "async-trait", @@ -4051,7 +4204,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-pubsub", "alloy-rpc-client 2.0.5", @@ -4096,7 +4249,7 @@ dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "arbitrary", @@ -4108,7 +4261,7 @@ dependencies = [ "base-metrics", "derive_more 2.1.1", "discv5 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures", + "futures 0.3.32", "ipnet", "libp2p", "libp2p-identity", @@ -4136,7 +4289,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-engine", @@ -4173,7 +4326,7 @@ dependencies = [ "derive_more 2.1.1", "discv5 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "ethereum_ssz", - "futures", + "futures 0.3.32", "http 1.4.2", "http-body 1.0.1", "http-body-util", @@ -4204,7 +4357,7 @@ dependencies = [ name = "base-consensus-peers" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "arbtest", @@ -4233,7 +4386,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-beacon", @@ -4268,7 +4421,7 @@ name = "base-consensus-rpc" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "backon", "base-common-genesis", @@ -4295,7 +4448,7 @@ name = "base-consensus-safedb" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "base-protocol", "redb", @@ -4310,7 +4463,7 @@ dependencies = [ name = "base-consensus-sources" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-client 2.0.5", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", @@ -4333,10 +4486,10 @@ name = "base-consensus-upgrades" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-common-consensus", "base-common-evm", - "revm", + "revm 40.0.3", "rstest", ] @@ -4349,7 +4502,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-common-chains", "base-common-consensus", "base-common-genesis", @@ -4369,7 +4522,7 @@ name = "base-execution-cli" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "axum 0.8.9", "backon", @@ -4396,7 +4549,7 @@ dependencies = [ "base-upgrade-signal", "clap", "eyre", - "futures", + "futures 0.3.32", "humantime", "jsonrpsee", "proptest", @@ -4439,7 +4592,7 @@ dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-trie", "base-common-chains", "base-common-consensus", @@ -4459,7 +4612,7 @@ dependencies = [ "reth-storage-errors", "reth-trie", "reth-trie-common", - "revm", + "revm 40.0.3", "thiserror 2.0.18", "tracing", ] @@ -4468,7 +4621,7 @@ dependencies = [ name = "base-execution-eip8130" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "base-common-consensus", "base-common-precompiles", @@ -4477,7 +4630,7 @@ dependencies = [ "base64 0.22.1", "k256", "p256", - "revm", + "revm 40.0.3", "sha2 0.10.9", "thiserror 2.0.18", ] @@ -4489,7 +4642,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types 2.0.5", "base-common-chains", "base-common-consensus", @@ -4505,7 +4658,7 @@ dependencies = [ "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-storage-api", - "revm", + "revm 40.0.3", "tracing", ] @@ -4516,7 +4669,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-signer 2.0.5", @@ -4540,7 +4693,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "base-common-chains", "base-common-consensus", @@ -4558,7 +4711,7 @@ dependencies = [ "reth-revm", "reth-rpc-eth-api", "reth-storage-errors", - "revm", + "revm 40.0.3", "thiserror 2.0.18", ] @@ -4572,7 +4725,7 @@ dependencies = [ "base-execution-trie", "base-node-core", "eyre", - "futures", + "futures 0.3.32", "reth-db", "reth-ethereum-primitives", "reth-execution-types", @@ -4595,9 +4748,9 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "base-common-chains", "base-common-consensus", @@ -4620,7 +4773,7 @@ dependencies = [ "reth-storage-api", "reth-transaction-pool", "reth-trie-common", - "revm", + "revm 40.0.3", "serde", "thiserror 2.0.18", "tracing", @@ -4633,10 +4786,10 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-json-rpc 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-client 2.0.5", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -4658,7 +4811,7 @@ dependencies = [ "base-metrics", "derive_more 2.1.1", "eyre", - "futures", + "futures 0.3.32", "http 1.4.2", "jsonrpsee", "jsonrpsee-core", @@ -4686,7 +4839,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie-common", - "revm", + "revm 40.0.3", "serde", "thiserror 2.0.18", "tokio", @@ -4701,7 +4854,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "base-metrics", "bincode 2.0.1", @@ -4750,7 +4903,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", "async-trait", @@ -4769,7 +4922,7 @@ dependencies = [ "base-test-utils", "c-kzg", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "jsonrpsee", "metrics", "parking_lot", @@ -4783,7 +4936,7 @@ dependencies = [ "reth-storage-api", "reth-tasks", "reth-transaction-pool", - "revm", + "revm 40.0.3", "serde", "serde_json", "thiserror 2.0.18", @@ -4802,7 +4955,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "alloy-rpc-types-engine", @@ -4823,7 +4976,7 @@ dependencies = [ "base-execution-rpc", "base-metrics", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "imbl", "jsonrpsee", "jsonrpsee-types", @@ -4839,8 +4992,8 @@ dependencies = [ "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-tasks", - "revm", - "revm-database", + "revm 40.0.3", + "revm-database 15.0.2", "rstest", "serde", "serde_json", @@ -4861,7 +5014,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types 2.0.5", @@ -4883,7 +5036,7 @@ dependencies = [ "criterion", "derive_more 2.1.1", "eyre", - "futures", + "futures 0.3.32", "rand 0.9.4", "rayon", "reth-chain-state", @@ -4898,7 +5051,7 @@ dependencies = [ "reth-testing-utils", "reth-tracing", "reth-transaction-pool", - "revm", + "revm 40.0.3", "serde_json", "tokio", "tokio-stream", @@ -4916,7 +5069,7 @@ dependencies = [ "axum 0.8.9", "bytes", "eyre", - "futures", + "futures 0.3.32", "http 1.4.2", "http-body 1.0.1", "jsonrpsee", @@ -4929,11 +5082,39 @@ dependencies = [ "tracing", ] +[[package]] +name = "base-intent-swap" +version = "0.0.0" +dependencies = [ + "alloy-consensus 2.0.5", + "alloy-eips 2.0.5", + "alloy-primitives 1.6.0", + "alloy-signer 2.0.5", + "alloy-signer-local 2.0.5", + "async-trait", + "backrunner", + "base-builder-core", + "base-common-consensus", + "base-execution-txpool", + "base-node-runner", + "builder-types", + "eyre", + "jsonrpsee", + "reth-payload-builder", + "reth-provider", + "reth-transaction-pool", + "serde", + "serde_json", + "tokio", + "tracing", + "uuid", +] + [[package]] name = "base-jwt" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-engine", "backon", @@ -4949,7 +5130,7 @@ dependencies = [ name = "base-l1-head" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "base-common-network", @@ -4964,7 +5145,7 @@ name = "base-load-tester-bin" version = "0.0.0" dependencies = [ "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "alloy-signer-local 2.0.5", @@ -4972,7 +5153,7 @@ dependencies = [ "base-load-tests", "clap", "eyre", - "futures", + "futures 0.3.32", "indicatif 0.18.4", "tokio", "tracing", @@ -4987,7 +5168,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "alloy-signer 2.0.5", @@ -4999,13 +5180,13 @@ dependencies = [ "base-common-precompiles", "base-tx-manager", "eyre", - "futures", + "futures 0.3.32", "humantime", "indicatif 0.18.4", "parking_lot", "rand 0.9.4", "reqwest 0.13.4", - "revm", + "revm 40.0.3", "serde", "serde_json", "serde_yaml", @@ -5027,7 +5208,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-client 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", @@ -5057,9 +5238,9 @@ dependencies = [ "reth-provider", "reth-revm", "reth-transaction-pool", - "revm", - "revm-bytecode", - "revm-database", + "revm 40.0.3", + "revm-bytecode 11.0.1", + "revm-database 15.0.2", "serde", "serde_json", "thiserror 2.0.18", @@ -5086,7 +5267,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", @@ -5108,7 +5289,7 @@ dependencies = [ "base-upgrade-signal", "clap", "eyre", - "futures", + "futures 0.3.32", "humantime", "reth-chainspec", "reth-codecs", @@ -5143,7 +5324,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie-common", "reth-trie-db", - "revm", + "revm 40.0.3", "rstest", "serde", "serde_json", @@ -5157,7 +5338,7 @@ version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types 2.0.5", @@ -5176,7 +5357,7 @@ dependencies = [ "chrono", "criterion", "eyre", - "futures", + "futures 0.3.32", "jsonrpsee", "reth-db", "reth-evm", @@ -5205,7 +5386,7 @@ dependencies = [ name = "base-observability-events" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-metrics", "chrono", "eyre", @@ -5226,7 +5407,7 @@ version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-transport 2.0.5", "serde", @@ -5237,7 +5418,7 @@ dependencies = [ name = "base-precompile-macros" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "proc-macro2", "quote", "syn 2.0.117", @@ -5248,12 +5429,12 @@ name = "base-precompile-storage" version = "0.0.0" dependencies = [ "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "base-precompile-macros", "derive_more 2.1.1", "proptest", - "revm", + "revm 40.0.3", "rstest", "thiserror 2.0.18", "tracing", @@ -5267,7 +5448,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-trie", "ark-bls12-381", @@ -5303,7 +5484,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-common-consensus", "base-common-evm", "base-common-genesis", @@ -5325,12 +5506,12 @@ name = "base-proof-contracts" version = "0.0.0" dependencies = [ "alloy-contract 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-sol-types", "alloy-transport 2.0.5", "async-trait", - "futures", + "futures 0.3.32", "rstest", "thiserror 2.0.18", "tracing", @@ -5343,7 +5524,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "async-trait", "base-common-consensus", @@ -5364,7 +5545,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-client 2.0.5", @@ -5381,7 +5562,7 @@ dependencies = [ "base-protocol", "getrandom 0.2.17", "rand 0.9.4", - "revm", + "revm 40.0.3", "rocksdb", "serde", "serde_json", @@ -5399,7 +5580,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types 2.0.5", @@ -5421,10 +5602,10 @@ dependencies = [ "base-proof-preimage", "base-proof-primitives", "base-protocol", - "futures", + "futures 0.3.32", "metrics", "proptest", - "revm", + "revm 40.0.3", "rocksdb", "serde", "serde_json", @@ -5438,7 +5619,7 @@ name = "base-proof-mpt" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types 2.0.5", @@ -5458,7 +5639,7 @@ dependencies = [ name = "base-proof-preimage" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "async-channel", "async-trait", "rkyv", @@ -5474,7 +5655,7 @@ version = "0.0.0" dependencies = [ "alloy-chains", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "base-common-genesis", "base-proof-preimage", @@ -5492,7 +5673,7 @@ version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-eth 2.0.5", @@ -5520,7 +5701,7 @@ name = "base-proof-submission" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "base-proof-contracts", "base-tx-manager", @@ -5536,7 +5717,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-sol-types", "anyhow", @@ -5555,8 +5736,8 @@ dependencies = [ "base-protocol", "cfg-if", "kzg-rs", - "revm", - "revm-precompile", + "revm 40.0.3", + "revm-precompile 36.0.3", "rkyv", "serde", "serde_json", @@ -5577,7 +5758,7 @@ dependencies = [ "alloy-contract 2.0.5", "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-sol-types", @@ -5599,7 +5780,7 @@ dependencies = [ "c-kzg", "cargo_metadata 0.18.1", "cfg-if", - "futures", + "futures 0.3.32", "kzg-rs", "lazy_static", "metrics", @@ -5646,7 +5827,7 @@ dependencies = [ name = "base-proof-succinct-scripts" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "anyhow", "base-proof-succinct-client-utils", "base-proof-succinct-elfs", @@ -5662,7 +5843,7 @@ dependencies = [ name = "base-proof-tee-nitro-attestation-prover" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "anyhow", "async-trait", "base-metrics", @@ -5685,7 +5866,7 @@ version = "0.0.0" dependencies = [ "alloy-chains", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", "async-trait", @@ -5717,7 +5898,7 @@ name = "base-proof-tee-nitro-host" version = "0.0.0" dependencies = [ "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "async-trait", "base-common-genesis", @@ -5746,7 +5927,7 @@ dependencies = [ name = "base-proof-tee-nitro-verifier" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "ciborium", "hex", @@ -5764,7 +5945,7 @@ name = "base-proof-tee-registrar" version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-signer 2.0.5", @@ -5782,7 +5963,7 @@ dependencies = [ "base-proof-tee-nitro-attestation-prover", "base-proof-tee-nitro-verifier", "base-tx-manager", - "futures", + "futures 0.3.32", "hex", "hex-literal 1.1.0", "jsonrpsee", @@ -5802,7 +5983,7 @@ dependencies = [ name = "base-proof-tee-registrar-bin" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer-local 2.0.5", "base-cli-utils", "base-proof-tee-nitro-attestation-prover", @@ -5837,7 +6018,7 @@ dependencies = [ name = "base-proof-zk-backend" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "backoff", "base-l1-head", @@ -5867,7 +6048,7 @@ dependencies = [ name = "base-proof-zk-host" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "async-trait", "base-proof-primitives", "base-proof-worker", @@ -5902,7 +6083,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-signer-local 2.0.5", @@ -5923,7 +6104,7 @@ dependencies = [ "base-tx-manager", "clap", "eyre", - "futures", + "futures 0.3.32", "humantime", "jsonrpsee", "metrics", @@ -5957,7 +6138,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", @@ -5998,7 +6179,7 @@ dependencies = [ name = "base-prover-nitro-host" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-cli-utils", "base-common-chains", "base-proof-host", @@ -6072,7 +6253,7 @@ dependencies = [ "anyhow", "base-prover-service-protocol", "chrono", - "futures", + "futures 0.3.32", "serde", "serde_json", "sqlx", @@ -6086,7 +6267,7 @@ dependencies = [ name = "base-prover-service-protocol" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-proof-primitives", "chrono", "jsonrpsee", @@ -6148,7 +6329,7 @@ version = "0.0.0" name = "base-runtime" version = "0.0.0" dependencies = [ - "futures", + "futures 0.3.32", "rand 0.9.4", "thiserror 2.0.18", "tokio", @@ -6194,7 +6375,7 @@ dependencies = [ "blake3", "bollard", "clap", - "futures", + "futures 0.3.32", "rayon", "reth-cli-commands", "serde_json", @@ -6229,7 +6410,7 @@ dependencies = [ name = "base-snark-e2e" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "anyhow", @@ -6265,7 +6446,7 @@ dependencies = [ "alloy-genesis 2.0.5", "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-engine", @@ -6350,7 +6531,7 @@ dependencies = [ name = "base-telemetry-service" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "anyhow", "async-trait", "axum 0.8.9", @@ -6376,7 +6557,7 @@ dependencies = [ "alloy-contract 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", "alloy-sol-macro", @@ -6407,7 +6588,7 @@ dependencies = [ "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", "alloy-node-bindings 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-signer 2.0.5", @@ -6420,7 +6601,7 @@ dependencies = [ "base-metrics", "base-runtime", "clap", - "futures", + "futures 0.3.32", "humantime", "metrics", "proptest", @@ -6437,7 +6618,7 @@ dependencies = [ name = "base-txpool-rpc" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "base-node-runner", "eyre", "httpmock", @@ -6456,7 +6637,7 @@ version = "0.0.0" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "base-common-consensus", "base-flashblocks", @@ -6468,7 +6649,7 @@ dependencies = [ "chrono", "derive_more 2.1.1", "eyre", - "futures", + "futures 0.3.32", "lru 0.16.4", "metrics", "reth-node-api", @@ -6476,7 +6657,7 @@ dependencies = [ "reth-provider", "reth-tracing", "reth-transaction-pool", - "revm-database", + "revm-database 15.0.2", "serde_json", "tokio", "tokio-stream", @@ -6487,7 +6668,7 @@ dependencies = [ name = "base-upgrade-signal" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-sol-types", @@ -6495,7 +6676,7 @@ dependencies = [ "base-metrics", "clap", "eyre", - "futures", + "futures 0.3.32", "metrics", "rstest", "serde", @@ -6509,7 +6690,7 @@ dependencies = [ name = "base-witness-diff" version = "0.0.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-client 2.0.5", @@ -6536,7 +6717,7 @@ name = "base-zk-benchmarks" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "base-load-tests", "base-optimism-rpc", "base-prover-service-client", @@ -6611,7 +6792,7 @@ name = "basectl" version = "0.0.0" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "anyhow", @@ -6638,7 +6819,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-client 2.0.5", "alloy-rpc-types-eth 2.0.5", @@ -6663,7 +6844,7 @@ dependencies = [ "chrono", "crossterm", "dirs 6.0.0", - "futures", + "futures 0.3.32", "jsonrpsee", "ratatui", "serde", @@ -6694,6 +6875,17 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bigdecimal" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + [[package]] name = "bimap" version = "0.6.3" @@ -6738,9 +6930,9 @@ dependencies = [ "bitflags 2.13.0", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.11.0", "log", - "prettyplease", + "prettyplease 0.2.37", "proc-macro2", "quote", "regex", @@ -6758,7 +6950,7 @@ dependencies = [ "bitflags 2.13.0", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.11.0", "proc-macro2", "quote", "regex", @@ -6876,6 +7068,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -7175,7 +7376,7 @@ checksum = "dd9d445a56000478af5419c59f1f64299e48f0d010340e9dd737f0971f617857" dependencies = [ "alloy", "alloy-chains", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "anyhow", "async-stream", @@ -7190,7 +7391,7 @@ dependencies = [ "clap", "dashmap", "derive_builder", - "futures", + "futures 0.3.32", "futures-util", "hex", "moka", @@ -7215,7 +7416,7 @@ dependencies = [ "tower 0.5.3", "tracing", "url", - "utoipa", + "utoipa 5.5.0", "uuid", ] @@ -7270,6 +7471,16 @@ dependencies = [ "serde", ] +[[package]] +name = "builder-types" +version = "0.1.0" +source = "git+ssh://git@github.com/propeller-heads/builder-integration.git?rev=6029f1b4739c753383c0ce5ef03a70ad1bd007e5#6029f1b4739c753383c0ce5ef03a70ad1bd007e5" +dependencies = [ + "alloy", + "serde", + "uuid", +] + [[package]] name = "bumpalo" version = "3.20.3" @@ -7656,7 +7867,7 @@ version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -7752,6 +7963,28 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "coins-ledger" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c707b8909cef367cd04a11b0d71d65ab34a625d295a07869dd2fff2ca95bf688" +dependencies = [ + "async-trait", + "byteorder", + "cfg-if", + "const-hex", + "hidapi-rusb", + "js-sys", + "log", + "nix 0.26.4", + "once_cell", + "thiserror 1.0.69", + "tokio", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", +] + [[package]] name = "colorchoice" version = "1.0.5" @@ -7780,7 +8013,7 @@ checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ "crossterm", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -7844,7 +8077,7 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width", + "unicode-width 0.2.2", "windows-sys 0.59.0", ] @@ -7856,7 +8089,7 @@ checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" dependencies = [ "encode_unicode", "libc", - "unicode-width", + "unicode-width 0.2.2", "windows-sys 0.61.2", ] @@ -7917,6 +8150,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "convert_case" version = "0.10.0" @@ -8164,7 +8403,7 @@ dependencies = [ "document-features", "mio", "parking_lot", - "rustix", + "rustix 1.1.4", "signal-hook", "signal-hook-mio", "winapi", @@ -8524,6 +8763,15 @@ dependencies = [ "uuid", ] +[[package]] +name = "deepsize" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdb987ec36f6bf7bfbea3f928b75590b736fc42af8e54d97592481351b2b96c" +dependencies = [ + "deepsize_derive", +] + [[package]] name = "deepsize2" version = "0.1.0" @@ -8534,6 +8782,17 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "deepsize_derive" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990101d41f3bc8c1a45641024377ee284ecc338e5ecf3ea0f0e236d897c72796" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "deepsize_derive2" version = "0.1.0" @@ -8551,7 +8810,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88e365f083a5cb5972d50ce8b1b2c9f125dc5ec0f50c0248cfb568ae59efcf0b" dependencies = [ - "futures", + "futures 0.3.32", "tokio", "tokio-util", ] @@ -8672,6 +8931,19 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.117", +] + [[package]] name = "derive_more" version = "1.0.0" @@ -8707,7 +8979,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ - "convert_case", + "convert_case 0.10.0", "proc-macro2", "quote", "rustc_version 0.4.1", @@ -8840,7 +9112,7 @@ dependencies = [ "delay_map", "enr", "fnv", - "futures", + "futures 0.3.32", "hashlink 0.11.1", "hex", "hkdf", @@ -8871,7 +9143,7 @@ dependencies = [ "delay_map", "enr", "fnv", - "futures", + "futures 0.3.32", "hashlink 0.11.1", "hex", "hkdf", @@ -8942,6 +9214,12 @@ dependencies = [ "litrs", ] +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + [[package]] name = "dotenvy" version = "0.15.7" @@ -8967,7 +9245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" dependencies = [ "digest 0.10.7", - "futures", + "futures 0.3.32", "rand 0.8.6", "reqwest 0.12.28", "thiserror 1.0.69", @@ -9115,6 +9393,22 @@ dependencies = [ "serde", ] +[[package]] +name = "ekubo_sdk" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb1070070cb29178166fc9a66b9e54b027013054037b094e3f3c1e8f2151a777" +dependencies = [ + "alloy-primitives 0.6.4", + "alloy-primitives 1.6.0", + "derive_more 2.1.1", + "num-traits", + "ruint", + "serde", + "starknet-types-core", + "thiserror 2.0.18", +] + [[package]] name = "elf" version = "0.7.4" @@ -9196,7 +9490,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -9243,6 +9537,30 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "enum_delegate" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ea75f31022cba043afe037940d73684327e915f88f62478e778c3de914cd0a" +dependencies = [ + "enum_delegate_lib", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum_delegate_lib" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e1f6c3800b304a6be0012039e2a45a322a093539c45ab818d9e6895a39c90fe" +dependencies = [ + "proc-macro2", + "quote", + "rand 0.8.6", + "syn 1.0.109", +] + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -9331,13 +9649,101 @@ dependencies = [ ] [[package]] -name = "ethereum_hashing" -version = "0.8.0" +name = "ethabi" +version = "17.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa93f58bb1eb3d1e556e4f408ef1dac130bad01ac37db4e7ade45de40d1c86a" +checksum = "e4966fba78396ff92db3b817ee71143eccd98acf0f876b8d600e585a670c5d1b" dependencies = [ - "cpufeatures 0.2.17", - "ring", + "ethereum-types 0.13.1", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.9", + "thiserror 1.0.69", + "uint 0.9.5", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types 0.14.1", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3 0.10.9", + "thiserror 1.0.69", + "uint 0.9.5", +] + +[[package]] +name = "ethbloom" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11da94e443c60508eb62cf256243a64da87304c2802ac2528847f79d750007ef" +dependencies = [ + "crunchy", + "fixed-hash 0.7.0", + "impl-rlp", + "impl-serde 0.3.2", + "tiny-keccak", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-rlp", + "impl-serde 0.4.0", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2827b94c556145446fcce834ca86b7abf0c39a805883fe20e72c5bfdb5a0dc6" +dependencies = [ + "ethbloom 0.12.1", + "fixed-hash 0.7.0", + "impl-rlp", + "impl-serde 0.3.2", + "primitive-types 0.11.1", + "uint 0.9.5", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom 0.13.0", + "fixed-hash 0.8.0", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types 0.12.2", + "uint 0.9.5", +] + +[[package]] +name = "ethereum_hashing" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa93f58bb1eb3d1e556e4f408ef1dac130bad01ac37db4e7ade45de40d1c86a" +dependencies = [ + "cpufeatures 0.2.17", + "ring", "sha2 0.10.9", ] @@ -9347,7 +9753,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "hex", "serde", "serde_derive", @@ -9360,7 +9766,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e462875ad8693755ea8913d6e905715c76ea4836e2254e18c9cf0f7a8f8c2a13" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "ethereum_serde_utils", "itertools 0.14.0", "serde", @@ -9422,6 +9828,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "evm_ekubo_sdk" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eaf56840ccbfb0b6d4fb27dd20d96a13586482923b280f5d6eb1a5fa980e818" +dependencies = [ + "num-traits", + "serde", + "uint 0.10.0", +] + [[package]] name = "evmap" version = "11.0.0" @@ -9618,6 +10035,18 @@ dependencies = [ "typeid", ] +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.6", + "rustc-hex", + "static_assertions", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -9763,6 +10192,23 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "foundry-block-explorers" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff814624bb21bfe43b70fb736ab39527b405d04cdc94d90b7e182fba28b25ec7" +dependencies = [ + "alloy-chains", + "alloy-json-abi", + "alloy-primitives 1.6.0", + "reqwest 0.12.28", + "semver 1.0.28", + "serde", + "serde_json", + "thiserror 2.0.18", + "tracing", +] + [[package]] name = "fragile" version = "2.1.0" @@ -9793,6 +10239,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + [[package]] name = "futures" version = "0.3.32" @@ -9938,12 +10390,14 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", "futures-macro", "futures-sink", "futures-task", + "libc", "memchr", "pin-project-lite", "slab", @@ -9955,12 +10409,74 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fynd-core" +version = "0.81.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17e2258f0c5ee75bc1151340b7dde1a7cdf7dc7df543c361ea139699e889f2ae" +dependencies = [ + "alloy", + "async-channel", + "async-trait", + "chrono", + "futures 0.3.32", + "itertools 0.14.0", + "lazy_static", + "metrics", + "num-bigint 0.4.6", + "num-rational", + "num-traits", + "num_cpus", + "petgraph 0.6.5", + "reqwest 0.12.28", + "serde", + "serde_json", + "serde_with", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.28.0", + "tracing", + "tycho-execution", + "tycho-simulation", + "typetag", + "uuid", +] + [[package]] name = "gcd" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" +[[package]] +name = "gcloud-sdk" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b5b58d8683fa308be9bc58caece4972315a0b2547f9da16962511f0915d5b53" +dependencies = [ + "async-trait", + "bytes", + "chrono", + "futures 0.3.32", + "hyper 1.10.1", + "jsonwebtoken", + "once_cell", + "prost 0.14.4", + "prost-types 0.14.4", + "reqwest 0.13.4", + "secret-vault-value", + "serde", + "serde_json", + "tokio", + "tonic 0.14.6", + "tonic-prost", + "tower 0.5.3", + "tower-layer", + "tracing", + "url", +] + [[package]] name = "gdbstub" version = "0.7.10" @@ -10044,7 +10560,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix", + "rustix 1.1.4", "windows-link 0.2.1", ] @@ -10195,6 +10711,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gmp-mpfr-sys" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db155b537cb791b133341f99f68371d86ee7fa4c79aacfbc376d72d23c70531" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "group" version = "0.13.0" @@ -10415,6 +10941,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -10442,6 +10974,12 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + [[package]] name = "hex-literal" version = "0.4.1" @@ -10579,6 +11117,18 @@ dependencies = [ "tracing", ] +[[package]] +name = "hidapi-rusb" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efdc2ec354929a6e8f3c6b6923a4d97427ec2f764cfee8cd4bfe890946cdf08b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "rusb", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -10952,7 +11502,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.59.0", ] [[package]] @@ -11125,7 +11675,7 @@ dependencies = [ "async-io", "core-foundation 0.9.4", "fnv", - "futures", + "futures 0.3.32", "if-addrs 0.15.0", "ipnet", "log", @@ -11148,7 +11698,7 @@ dependencies = [ "async-trait", "attohttpc", "bytes", - "futures", + "futures 0.3.32", "http 1.4.2", "http-body-util", "hyper 1.10.1", @@ -11208,6 +11758,33 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -11283,7 +11860,7 @@ dependencies = [ "console 0.15.11", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.2", "web-time", ] @@ -11295,7 +11872,7 @@ checksum = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" dependencies = [ "console 0.16.3", "portable-atomic", - "unicode-width", + "unicode-width 0.2.2", "unit-prefix", "vt100", "web-time", @@ -11337,7 +11914,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-signer-local 2.0.5", @@ -11787,7 +12364,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2da3f8ab5ce1bb124b6d082e62dffe997578ceaf0aeb9f3174a214589dc00f07" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro-crate 3.5.0", "proc-macro2", "quote", @@ -11989,6 +12566,34 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" +[[package]] +name = "lambdaworks-crypto" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" +dependencies = [ + "lambdaworks-math", + "rand 0.8.6", + "rand_chacha 0.3.1", + "serde", + "sha2 0.10.9", + "sha3 0.10.9", +] + +[[package]] +name = "lambdaworks-math" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" +dependencies = [ + "getrandom 0.2.17", + "num-bigint 0.4.6", + "num-traits", + "rand 0.8.6", + "serde", + "serde_json", +] + [[package]] name = "lazy-regex" version = "3.6.0" @@ -12100,7 +12705,7 @@ checksum = "ce71348bf5838e46449ae240631117b487073d5f347c06d434caddcb91dceb5a" dependencies = [ "bytes", "either", - "futures", + "futures 0.3.32", "futures-timer", "getrandom 0.2.17", "libp2p-allow-block-list", @@ -12155,7 +12760,7 @@ checksum = "249128cd37a2199aff30a7675dffa51caf073b51aa612d2f544b19932b9aebca" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.32", "futures-timer", "libp2p-identity", "multiaddr", @@ -12179,7 +12784,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b770c1c8476736ca98c578cba4b505104ff8e842c2876b528925f9766379f9a" dependencies = [ "async-trait", - "futures", + "futures 0.3.32", "hickory-resolver 0.25.2", "libp2p-core", "libp2p-identity", @@ -12201,7 +12806,7 @@ dependencies = [ "bytes", "either", "fnv", - "futures", + "futures 0.3.32", "futures-timer", "getrandom 0.2.17", "hashlink 0.9.1", @@ -12226,7 +12831,7 @@ checksum = "8ab792a8b68fdef443a62155b01970c81c3aadab5e659621b063ef252a8e65e8" dependencies = [ "asynchronous-codec", "either", - "futures", + "futures 0.3.32", "futures-bounded", "futures-timer", "libp2p-core", @@ -12265,7 +12870,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c66872d0f1ffcded2788683f76931be1c52e27f343edb93bc6d0bcd8887be443" dependencies = [ - "futures", + "futures 0.3.32", "hickory-proto 0.25.2", "if-watch", "libp2p-core", @@ -12284,7 +12889,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "805a555148522cb3414493a5153451910cb1a146c53ffbf4385708349baf62b7" dependencies = [ - "futures", + "futures 0.3.32", "libp2p-core", "libp2p-gossipsub", "libp2p-identify", @@ -12304,7 +12909,7 @@ checksum = "bc73eacbe6462a0eb92a6527cac6e63f02026e5407f8831bde8293f19217bfbf" dependencies = [ "asynchronous-codec", "bytes", - "futures", + "futures 0.3.32", "libp2p-core", "libp2p-identity", "multiaddr", @@ -12325,7 +12930,7 @@ version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74bb7fcdfd9fead4144a3859da0b49576f171a8c8c7c0bfc7c541921d25e60d3" dependencies = [ - "futures", + "futures 0.3.32", "futures-timer", "libp2p-core", "libp2p-identity", @@ -12341,7 +12946,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8dc448b2de9f4745784e3751fe8bc6c473d01b8317edd5ababcb0dec803d843f" dependencies = [ - "futures", + "futures 0.3.32", "futures-timer", "if-watch", "libp2p-core", @@ -12363,7 +12968,7 @@ version = "0.4.0-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6bd8025c80205ec2810cfb28b02f362ab48a01bee32c50ab5f12761e033464" dependencies = [ - "futures", + "futures 0.3.32", "libp2p-core", "libp2p-identity", "libp2p-swarm", @@ -12379,7 +12984,7 @@ checksum = "ce88c6c4bf746c8482480345ea3edfd08301f49e026889d1cbccfa1808a9ed9e" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.32", "futures-timer", "hashlink 0.10.0", "libp2p-core", @@ -12399,7 +13004,7 @@ version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd297cf53f0cb3dee4d2620bb319ae47ef27c702684309f682bdb7e55a18ae9c" dependencies = [ - "heck", + "heck 0.5.0", "quote", "syn 2.0.117", ] @@ -12410,7 +13015,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb6585b9309699f58704ec9ab0bb102eca7a3777170fa91a8678d73ca9cafa93" dependencies = [ - "futures", + "futures 0.3.32", "futures-timer", "if-watch", "libc", @@ -12426,7 +13031,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96ff65a82e35375cbc31ebb99cacbbf28cb6c4fefe26bf13756ddcf708d40080" dependencies = [ - "futures", + "futures 0.3.32", "futures-rustls", "libp2p-core", "libp2p-identity", @@ -12445,7 +13050,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4757e65fe69399c1a243bbb90ec1ae5a2114b907467bf09f3575e899815bb8d3" dependencies = [ - "futures", + "futures 0.3.32", "futures-timer", "igd-next", "libp2p-core", @@ -12461,7 +13066,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f15df094914eb4af272acf9adaa9e287baa269943f32ea348ba29cfb9bfc60d8" dependencies = [ "either", - "futures", + "futures 0.3.32", "libp2p-core", "thiserror 2.0.18", "tracing", @@ -12508,44 +13113,102 @@ dependencies = [ ] [[package]] -name = "libsqlite3-sys" -version = "0.30.1" +name = "libsecp256k1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ - "pkg-config", - "vcpkg", + "arrayref", + "base64 0.22.1", + "digest 0.9.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.6", + "serde", + "sha2 0.9.9", ] [[package]] -name = "libz-sys" -version = "1.1.29" +name = "libsecp256k1-core" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", + "crunchy", + "digest 0.9.0", + "subtle", ] [[package]] -name = "line-clipping" -version = "0.3.7" +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" dependencies = [ - "bitflags 2.13.0", + "libsecp256k1-core", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "libsecp256k1-gen-genmult" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] [[package]] -name = "linked_hash_set" +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libusb1-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da050ade7ac4ff1ba5379af847a10a10a8e284181e060105bf8d86960ce9ce0f" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "line-clipping" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +dependencies = [ + "bitflags 2.13.0", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linked_hash_set" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "984fb35d06508d1e69fc91050cceba9c0b748f983e6739fa2c7a9237154c52c8" @@ -12554,6 +13217,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -12870,7 +13539,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix", + "rustix 1.1.4", ] [[package]] @@ -13197,6 +13866,12 @@ dependencies = [ "unsigned-varint 0.8.0", ] +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "multimap" version = "0.10.1" @@ -13210,7 +13885,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", - "futures", + "futures 0.3.32", "log", "pin-project", "smallvec", @@ -13313,7 +13988,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b65d130ee111430e47eed7896ea43ca693c387f097dd97376bffafbf25812128" dependencies = [ "bytes", - "futures", + "futures 0.3.32", "log", "netlink-packet-core", "netlink-sys", @@ -13652,7 +14327,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.117", @@ -14412,6 +15087,15 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "pad" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3" +dependencies = [ + "unicode-width 0.1.14", +] + [[package]] name = "page_size" version = "0.6.0" @@ -14431,7 +15115,7 @@ dependencies = [ "byteorder", "bytes", "delegate", - "futures", + "futures 0.3.32", "log", "rand 0.8.6", "thiserror 1.0.69", @@ -14688,6 +15372,16 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.14.0", +] + [[package]] name = "petgraph" version = "0.7.1" @@ -14704,7 +15398,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ - "futures", + "futures 0.3.32", "rustc_version 0.4.1", ] @@ -14716,6 +15410,7 @@ checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros 0.11.3", "phf_shared 0.11.3", + "serde", ] [[package]] @@ -14945,7 +15640,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] @@ -15085,6 +15780,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "prettyplease" version = "0.2.37" @@ -15104,14 +15809,29 @@ dependencies = [ "elliptic-curve", ] +[[package]] +name = "primitive-types" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" +dependencies = [ + "fixed-hash 0.7.0", + "impl-codec", + "impl-rlp", + "impl-serde 0.3.2", + "uint 0.9.5", +] + [[package]] name = "primitive-types" version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "fixed-hash", + "fixed-hash 0.8.0", "impl-codec", + "impl-rlp", + "impl-serde 0.4.0", "uint 0.9.5", ] @@ -15134,6 +15854,30 @@ dependencies = [ "toml_edit 0.25.12+spec-1.1.0", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -15188,7 +15932,7 @@ dependencies = [ "chrono", "flate2", "procfs-core", - "rustix", + "rustix 1.1.4", ] [[package]] @@ -15276,6 +16020,16 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + [[package]] name = "prost" version = "0.12.6" @@ -15306,19 +16060,41 @@ dependencies = [ "prost-derive 0.14.4", ] +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap 0.8.3", + "petgraph 0.6.5", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", + "regex", + "syn 1.0.109", + "tempfile", + "which", +] + [[package]] name = "prost-build" version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck", - "itertools 0.14.0", + "heck 0.5.0", + "itertools 0.11.0", "log", - "multimap", + "multimap 0.10.1", "once_cell", - "petgraph", - "prettyplease", + "petgraph 0.7.1", + "prettyplease 0.2.37", "prost 0.13.5", "prost-types 0.13.5", "regex", @@ -15326,6 +16102,19 @@ dependencies = [ "tempfile", ] +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "prost-derive" version = "0.12.6" @@ -15333,7 +16122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.117", @@ -15346,7 +16135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.117", @@ -15359,12 +16148,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + [[package]] name = "prost-types" version = "0.13.5" @@ -15719,7 +16526,7 @@ dependencies = [ "thiserror 2.0.18", "unicode-segmentation", "unicode-truncate", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -15771,7 +16578,7 @@ dependencies = [ "strum 0.28.0", "time", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -16110,7 +16917,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "futures-core", "futures-util", "metrics", @@ -16137,7 +16944,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 2.0.5", "alloy-signer-local 2.0.5", "derive_more 2.1.1", @@ -16155,8 +16962,8 @@ dependencies = [ "reth-storage-api", "reth-tasks", "reth-trie", - "revm-database", - "revm-state", + "revm-database 15.0.2", + "revm-state 12.0.1", "serde", "tokio", "tokio-stream", @@ -16173,7 +16980,7 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-trie", "auto_impl", "derive_more 2.1.1", @@ -16204,7 +17011,7 @@ dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "backon", @@ -16214,7 +17021,7 @@ dependencies = [ "crossterm", "eyre", "fdlimit", - "futures", + "futures 0.3.32", "human_bytes", "humantime", "itertools 0.14.0", @@ -16300,7 +17107,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "cfg-if", "eyre", "libc", @@ -16322,7 +17129,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-trie", "arbitrary", "bytes", @@ -16368,7 +17175,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eip7928 0.4.2", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "reth-execution-types", "reth-primitives-traits", @@ -16382,7 +17189,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -16396,14 +17203,14 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-json-rpc 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types-engine", "alloy-transport 2.0.5", "auto_impl", "derive_more 2.1.1", "eyre", - "futures", + "futures 0.3.32", "reqwest 0.13.4", "reth-node-api", "reth-tracing", @@ -16418,7 +17225,7 @@ name = "reth-db" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "derive_more 2.1.1", "eyre", "libc", @@ -16448,7 +17255,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "arrayvec", "bytes", @@ -16475,7 +17282,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -16504,7 +17311,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "bytes", "modular-bitfield", @@ -16518,7 +17325,7 @@ name = "reth-discv4" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "discv5 0.10.4 (git+https://github.com/sigp/discv5?rev=7663c00)", "enr", @@ -16543,12 +17350,12 @@ name = "reth-discv5" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "derive_more 2.1.1", "discv5 0.10.4 (git+https://github.com/sigp/discv5?rev=7663c00)", "enr", - "futures", + "futures 0.3.32", "itertools 0.14.0", "metrics", "rand 0.9.4", @@ -16567,7 +17374,7 @@ name = "reth-dns-discovery" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "dashmap", "data-encoding", "enr", @@ -16593,10 +17400,10 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "async-compression", - "futures", + "futures 0.3.32", "futures-util", "itertools 0.14.0", "metrics", @@ -16629,7 +17436,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rlp", "alloy-rpc-types-engine", @@ -16669,7 +17476,7 @@ dependencies = [ "reth-tasks", "reth-tokio-util", "reth-tracing", - "revm", + "revm 40.0.3", "serde_json", "tempfile", "tokio", @@ -16684,7 +17491,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "aes", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "block-padding", "byteorder", @@ -16692,7 +17499,7 @@ dependencies = [ "concat-kdf", "ctr", "digest 0.10.7", - "futures", + "futures 0.3.32", "hmac 0.12.1", "pin-project", "rand 0.8.6", @@ -16712,7 +17519,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -16736,10 +17543,10 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "auto_impl", - "futures", + "futures 0.3.32", "reth-chain-state", "reth-errors", "reth-ethereum-primitives", @@ -16763,12 +17570,12 @@ dependencies = [ "alloy-eip7928 0.4.2", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "crossbeam-channel", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "indexmap 2.14.0", "metrics", "moka", @@ -16803,9 +17610,9 @@ dependencies = [ "reth-trie-db", "reth-trie-parallel", "reth-trie-sparse", - "revm", - "revm-primitives", - "revm-state", + "revm 40.0.3", + "revm-primitives 24.0.1", + "revm-state 12.0.1", "schnellru", "thiserror 2.0.18", "tokio", @@ -16818,11 +17625,11 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "eyre", - "futures", + "futures 0.3.32", "itertools 0.14.0", "pin-project", "reth-chainspec", @@ -16849,7 +17656,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", @@ -16863,7 +17670,7 @@ name = "reth-era-downloader" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "bytes", "eyre", "futures-util", @@ -16880,7 +17687,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "eyre", "futures-util", "reth-db-api", @@ -16913,12 +17720,12 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-chains", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "bytes", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "pin-project", "reth-codecs", "reth-ecies", @@ -16946,7 +17753,7 @@ dependencies = [ "alloy-eip7928 0.4.2", "alloy-eips 2.0.5", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "arbitrary", "bytes", @@ -16968,7 +17775,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -16983,7 +17790,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "reth-engine-primitives", "reth-ethereum-primitives", @@ -17000,7 +17807,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-eip2124", "alloy-hardforks 0.4.7", - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "auto_impl", "once_cell", @@ -17014,7 +17821,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder", @@ -17033,7 +17840,7 @@ dependencies = [ "reth-revm", "reth-storage-api", "reth-transaction-pool", - "revm", + "revm 40.0.3", "tracing", ] @@ -17044,7 +17851,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "reth-codecs", "reth-primitives-traits", @@ -17070,7 +17877,7 @@ dependencies = [ "alloy-eip7928 0.4.2", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "derive_more 2.1.1", "futures-util", @@ -17083,7 +17890,7 @@ dependencies = [ "reth-storage-api", "reth-storage-errors", "reth-trie-common", - "revm", + "revm 40.0.3", ] [[package]] @@ -17094,7 +17901,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "reth-chainspec", "reth-ethereum-forks", @@ -17103,7 +17910,7 @@ dependencies = [ "reth-execution-types", "reth-primitives-traits", "reth-storage-errors", - "revm", + "revm 40.0.3", ] [[package]] @@ -17111,7 +17918,7 @@ name = "reth-execution-cache" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "fixed-cache", "metrics", "parking_lot", @@ -17130,7 +17937,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "nybbles", "reth-storage-errors", @@ -17145,13 +17952,13 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "derive_more 2.1.1", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", - "revm", + "revm 40.0.3", "serde", "serde_with", ] @@ -17163,9 +17970,9 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "eyre", - "futures", + "futures 0.3.32", "itertools 0.14.0", "metrics", "parking_lot", @@ -17232,7 +18039,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "reth-chain-state", "reth-execution-types", "reth-primitives-traits", @@ -17256,11 +18063,11 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "eyre", - "futures", + "futures 0.3.32", "jsonrpsee", "pretty_assertions", "reth-engine-primitives", @@ -17271,9 +18078,9 @@ dependencies = [ "reth-rpc-api", "reth-tracing", "reth-trie", - "revm", - "revm-bytecode", - "revm-database", + "revm 40.0.3", + "revm-bytecode 11.0.1", + "revm-database 15.0.2", "serde", "serde_json", ] @@ -17284,7 +18091,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "bytes", - "futures", + "futures 0.3.32", "futures-util", "interprocess", "jsonrpsee", @@ -17329,7 +18136,7 @@ name = "reth-metrics" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "futures", + "futures 0.3.32", "metrics", "metrics-derive", "reth-primitives-traits", @@ -17342,7 +18149,7 @@ name = "reth-net-banlist" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "ipnet", ] @@ -17367,14 +18174,14 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "aquamarine", "auto_impl", "derive_more 2.1.1", "discv5 0.10.4 (git+https://github.com/sigp/discv5?rev=7663c00)", "enr", - "futures", + "futures 0.3.32", "itertools 0.14.0", "metrics", "parking_lot", @@ -17424,13 +18231,13 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-admin", "alloy-rpc-types-eth 2.0.5", "auto_impl", "derive_more 2.1.1", "enr", - "futures", + "futures 0.3.32", "reth-eth-wire-types", "reth-ethereum-forks", "reth-network-p2p", @@ -17450,10 +18257,10 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "auto_impl", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "parking_lot", "reth-consensus", "reth-eth-wire-types", @@ -17471,7 +18278,7 @@ name = "reth-network-peers" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "enr", "secp256k1 0.30.0", @@ -17543,14 +18350,14 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-provider 2.0.5", "alloy-rpc-types 2.0.5", "alloy-rpc-types-engine", "aquamarine", "eyre", "fdlimit", - "futures", + "futures 0.3.32", "jsonrpsee", "parking_lot", "rayon", @@ -17611,13 +18418,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "clap", "derive_more 2.1.1", "dirs-next", "eyre", - "futures", + "futures 0.3.32", "humantime", "ipnet", "rand 0.9.4", @@ -17667,7 +18474,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "ethereum_ssz", @@ -17699,7 +18506,7 @@ dependencies = [ "reth-rpc-server-types", "reth-tracing", "reth-transaction-pool", - "revm", + "revm 40.0.3", "serde", "serde_json", "tokio", @@ -17712,7 +18519,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "chrono", "futures-util", "reth-chain-state", @@ -17737,10 +18544,10 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "humantime", "pin-project", "reth-engine-primitives", @@ -17801,7 +18608,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types 2.0.5", "derive_more 2.1.1", "futures-util", @@ -17838,7 +18645,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "auto_impl", @@ -17860,7 +18667,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "reth-transaction-pool", ] @@ -17883,7 +18690,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", "alloy-trie", @@ -17899,9 +18706,9 @@ dependencies = [ "quanta", "rayon", "reth-codecs", - "revm-bytecode", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-primitives 24.0.1", + "revm-state 12.0.1", "secp256k1 0.30.0", "serde", "thiserror 2.0.18", @@ -17916,7 +18723,7 @@ dependencies = [ "alloy-eip7928 0.4.2", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "eyre", "itertools 0.14.0", @@ -17947,8 +18754,8 @@ dependencies = [ "reth-tokio-util", "reth-trie", "reth-trie-db", - "revm-database", - "revm-state", + "revm-database 15.0.2", + "revm-state 12.0.1", "rocksdb", "smallvec", "strum 0.27.2", @@ -17962,7 +18769,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "itertools 0.14.0", "metrics", "rayon", @@ -17989,7 +18796,7 @@ name = "reth-prune-types" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "derive_more 2.1.1", "modular-bitfield", @@ -18005,14 +18812,14 @@ name = "reth-revm" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", "reth-trie", - "revm", + "revm 40.0.3", ] [[package]] @@ -18026,17 +18833,17 @@ dependencies = [ "alloy-evm", "alloy-genesis 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-client 2.0.5", "alloy-rpc-types 2.0.5", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-rpc-types-mev", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 2.0.5", "alloy-rpc-types-txpool", "alloy-serde 2.0.5", "alloy-signer 2.0.5", @@ -18044,7 +18851,7 @@ dependencies = [ "async-trait", "derive_more 2.1.1", "dyn-clone", - "futures", + "futures 0.3.32", "itertools 0.14.0", "jsonrpsee", "jsonrpsee-types", @@ -18078,9 +18885,9 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie-common", - "revm", - "revm-inspectors", - "revm-primitives", + "revm 40.0.3", + "revm-inspectors 0.40.1", + "revm-primitives 24.0.1", "serde", "serde_json", "sha2 0.10.9", @@ -18099,16 +18906,16 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", "alloy-json-rpc 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types 2.0.5", "alloy-rpc-types-admin", "alloy-rpc-types-anvil 2.0.5", "alloy-rpc-types-beacon", - "alloy-rpc-types-debug", + "alloy-rpc-types-debug 2.0.5", "alloy-rpc-types-engine", "alloy-rpc-types-eth 2.0.5", "alloy-rpc-types-mev", - "alloy-rpc-types-trace", + "alloy-rpc-types-trace 2.0.5", "alloy-rpc-types-txpool", "alloy-serde 2.0.5", "jsonrpsee", @@ -18173,7 +18980,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "auto_impl", "dyn-clone", @@ -18190,7 +18997,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-engine", "async-trait", @@ -18227,7 +19034,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", "alloy-rpc-types-mev", @@ -18235,7 +19042,7 @@ dependencies = [ "async-trait", "auto_impl", "dyn-clone", - "futures", + "futures 0.3.32", "jsonrpsee", "jsonrpsee-types", "parking_lot", @@ -18255,8 +19062,8 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie-common", - "revm", - "revm-inspectors", + "revm 40.0.3", + "revm-inspectors 0.40.1", "serde_json", "tokio", "tracing", @@ -18273,14 +19080,14 @@ dependencies = [ "alloy-eips 2.0.5", "alloy-evm", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-client 2.0.5", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", "alloy-sol-types", "alloy-transport 2.0.5", "derive_more 2.1.1", - "futures", + "futures 0.3.32", "itertools 0.14.0", "jsonrpsee-core", "jsonrpsee-types", @@ -18302,8 +19109,8 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie", - "revm", - "revm-inspectors", + "revm 40.0.3", + "revm-inspectors 0.40.1", "schnellru", "serde", "thiserror 2.0.18", @@ -18333,7 +19140,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", @@ -18351,7 +19158,7 @@ checksum = "9fa03a2c9681c385ae1c72b169ac9c3525163b71db0b3362f16e8929e19e45fd" dependencies = [ "alloy-consensus 2.0.5", "alloy-network 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-eth 2.0.5", "alloy-signer 2.0.5", "reth-primitives-traits", @@ -18364,7 +19171,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "eyre", "futures-util", @@ -18415,7 +19222,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "aquamarine", "auto_impl", "futures-util", @@ -18442,7 +19249,7 @@ name = "reth-stages-types" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "arbitrary", "bytes", "modular-bitfield", @@ -18456,7 +19263,7 @@ name = "reth-static-file" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "parking_lot", "rayon", "reth-codecs", @@ -18476,7 +19283,7 @@ name = "reth-static-file-types" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "clap", "derive_more 2.1.1", "fixed-map", @@ -18494,7 +19301,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eip7928 0.4.2", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -18508,7 +19315,7 @@ dependencies = [ "reth-storage-errors", "reth-tokio-util", "reth-trie-common", - "revm-database", + "revm-database 15.0.2", "serde_json", ] @@ -18518,15 +19325,15 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "derive_more 2.1.1", "reth-codecs", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", - "revm-database-interface", - "revm-state", + "revm-database-interface 12.1.1", + "revm-state 12.0.1", "thiserror 2.0.18", ] @@ -18559,7 +19366,7 @@ dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", "alloy-genesis 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "rand 0.8.6", "rand 0.9.4", "reth-ethereum-primitives", @@ -18623,7 +19430,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "aquamarine", "auto_impl", @@ -18647,9 +19454,9 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-tasks", - "revm", - "revm-interpreter", - "revm-primitives", + "revm 40.0.3", + "revm-interpreter 37.0.3", + "revm-primitives 24.0.1", "rustc-hash 2.1.2", "schnellru", "serde", @@ -18668,7 +19475,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-trie", "auto_impl", @@ -18682,7 +19489,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-sparse", - "revm-database", + "revm-database 15.0.2", "tracing", "triehash", ] @@ -18693,7 +19500,7 @@ version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ "alloy-consensus 2.0.5", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-rpc-types-eth 2.0.5", "alloy-serde 2.0.5", @@ -18709,7 +19516,7 @@ dependencies = [ "rayon", "reth-codecs", "reth-primitives-traits", - "revm-database", + "revm-database 15.0.2", "serde", "serde_with", ] @@ -18719,7 +19526,7 @@ name = "reth-trie-db" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "metrics", "parking_lot", "reth-db-api", @@ -18741,7 +19548,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59c dependencies = [ "alloy-eip7928 0.4.2", "alloy-evm", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "crossbeam-channel", "crossbeam-utils", @@ -18757,7 +19564,7 @@ dependencies = [ "reth-tasks", "reth-trie", "reth-trie-sparse", - "revm-state", + "revm-state 12.0.1", "thiserror 2.0.18", "tracing", ] @@ -18767,7 +19574,7 @@ name = "reth-trie-sparse" version = "2.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v2.3.0#9384bc53d8c0c77e59cac83fdaaf3b372c6d2216" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-rlp", "alloy-trie", "either", @@ -18793,23 +19600,54 @@ dependencies = [ "zstd", ] +[[package]] +name = "revm" +version = "29.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" +dependencies = [ + "revm-bytecode 6.2.2", + "revm-context 9.1.0", + "revm-context-interface 10.2.0", + "revm-database 7.0.5", + "revm-database-interface 7.0.5", + "revm-handler 10.0.1", + "revm-inspector 10.0.1", + "revm-interpreter 25.0.3", + "revm-precompile 27.0.0", + "revm-primitives 20.2.1", + "revm-state 7.0.5", +] + [[package]] name = "revm" version = "40.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "823da6e5509bb8e5dcd91295870e494917a030ad506fc83301f3f08ad8b15b17" dependencies = [ - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database", - "revm-database-interface", - "revm-handler", - "revm-inspector", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-context 18.0.3", + "revm-context-interface 19.0.3", + "revm-database 15.0.2", + "revm-database-interface 12.1.1", + "revm-handler 20.0.3", + "revm-inspector 21.0.3", + "revm-interpreter 37.0.3", + "revm-precompile 36.0.3", + "revm-primitives 24.0.1", + "revm-state 12.0.1", +] + +[[package]] +name = "revm-bytecode" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" +dependencies = [ + "bitvec", + "phf 0.11.3", + "revm-primitives 20.2.1", + "serde", ] [[package]] @@ -18820,7 +19658,24 @@ checksum = "d8b378c2653331fe60969d9745e802cd773d82a20d8aaced914dfcf26ab8f0d9" dependencies = [ "bitvec", "phf 0.13.1", - "revm-primitives", + "revm-primitives 24.0.1", + "serde", +] + +[[package]] +name = "revm-context" +version = "9.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" +dependencies = [ + "bitvec", + "cfg-if", + "derive-where", + "revm-bytecode 6.2.2", + "revm-context-interface 10.2.0", + "revm-database-interface 7.0.5", + "revm-primitives 20.2.1", + "revm-state 7.0.5", "serde", ] @@ -18833,11 +19688,27 @@ dependencies = [ "bitvec", "cfg-if", "derive-where", - "revm-bytecode", - "revm-context-interface", - "revm-database-interface", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-context-interface 19.0.3", + "revm-database-interface 12.1.1", + "revm-primitives 24.0.1", + "revm-state 12.0.1", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "10.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "either", + "revm-database-interface 7.0.5", + "revm-primitives 20.2.1", + "revm-state 7.0.5", "serde", ] @@ -18851,10 +19722,27 @@ dependencies = [ "alloy-eip7702", "auto_impl", "either", - "revm-database-interface", - "revm-primitives", - "revm-state", + "revm-database-interface 12.1.1", + "revm-primitives 24.0.1", + "revm-state 12.0.1", + "serde", +] + +[[package]] +name = "revm-database" +version = "7.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" +dependencies = [ + "alloy-eips 1.8.3", + "alloy-provider 1.8.3", + "alloy-transport 1.8.3", + "revm-bytecode 6.2.2", + "revm-database-interface 7.0.5", + "revm-primitives 20.2.1", + "revm-state 7.0.5", "serde", + "tokio", ] [[package]] @@ -18865,11 +19753,25 @@ checksum = "a69c3ce73454a09ef89a66177239d7c4f5f697227ae27254c99451866603b19d" dependencies = [ "alloy-eips 2.0.5", "derive_more 2.1.1", - "revm-bytecode", - "revm-database-interface", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-database-interface 12.1.1", + "revm-primitives 24.0.1", + "revm-state 12.0.1", + "serde", +] + +[[package]] +name = "revm-database-interface" +version = "7.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" +dependencies = [ + "auto_impl", + "either", + "revm-primitives 20.2.1", + "revm-state 7.0.5", "serde", + "tokio", ] [[package]] @@ -18880,12 +19782,31 @@ checksum = "4a2656187f9f9c22ef9dd9300ed71aeaeca3506a6a0a229a07f264649b960d68" dependencies = [ "auto_impl", "either", - "revm-primitives", - "revm-state", + "revm-primitives 24.0.1", + "revm-state 12.0.1", "serde", "thiserror 2.0.18", ] +[[package]] +name = "revm-handler" +version = "10.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" +dependencies = [ + "auto_impl", + "derive-where", + "revm-bytecode 6.2.2", + "revm-context 9.1.0", + "revm-context-interface 10.2.0", + "revm-database-interface 7.0.5", + "revm-interpreter 25.0.3", + "revm-precompile 27.0.0", + "revm-primitives 20.2.1", + "revm-state 7.0.5", + "serde", +] + [[package]] name = "revm-handler" version = "20.0.3" @@ -18894,15 +19815,33 @@ checksum = "3ce1d66037ca1394128313bb995fa9f50d834927a389386bb34f8f0ef914648f" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database-interface", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-context 18.0.3", + "revm-context-interface 19.0.3", + "revm-database-interface 12.1.1", + "revm-interpreter 37.0.3", + "revm-precompile 36.0.3", + "revm-primitives 24.0.1", + "revm-state 12.0.1", + "serde", +] + +[[package]] +name = "revm-inspector" +version = "10.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" +dependencies = [ + "auto_impl", + "either", + "revm-context 9.1.0", + "revm-database-interface 7.0.5", + "revm-handler 10.0.1", + "revm-interpreter 25.0.3", + "revm-primitives 20.2.1", + "revm-state 7.0.5", "serde", + "serde_json", ] [[package]] @@ -18913,49 +19852,105 @@ checksum = "9fe3635d3411e8318849546570ca0220e783443319e28f5397c9f80b05bf4344" dependencies = [ "auto_impl", "either", - "revm-context", - "revm-database-interface", - "revm-handler", - "revm-interpreter", - "revm-primitives", - "revm-state", + "revm-context 18.0.3", + "revm-database-interface 12.1.1", + "revm-handler 20.0.3", + "revm-interpreter 37.0.3", + "revm-primitives 24.0.1", + "revm-state 12.0.1", "serde", "serde_json", ] [[package]] name = "revm-inspectors" -version = "0.40.1" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e0cdc845c8dbf41255c9add80923b45df7bf1dd0473e41483ac398005dba12" +checksum = "de23199c4b6181a6539e4131cf7e31cde4df05e1192bcdce491c34a511241588" dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth 2.0.5", - "alloy-rpc-types-trace", + "alloy-primitives 1.6.0", + "alloy-rpc-types-eth 1.8.3", + "alloy-rpc-types-trace 1.8.3", "alloy-sol-types", "anstyle", - "boa_engine", - "boa_gc", "colorchoice", - "revm", + "revm 29.0.1", "serde", "serde_json", "thiserror 2.0.18", ] [[package]] -name = "revm-interpreter" -version = "37.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" +name = "revm-inspectors" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e0cdc845c8dbf41255c9add80923b45df7bf1dd0473e41483ac398005dba12" +dependencies = [ + "alloy-primitives 1.6.0", + "alloy-rpc-types-eth 2.0.5", + "alloy-rpc-types-trace 2.0.5", + "alloy-sol-types", + "anstyle", + "boa_engine", + "boa_gc", + "colorchoice", + "revm 40.0.3", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "revm-interpreter" +version = "25.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" +dependencies = [ + "revm-bytecode 6.2.2", + "revm-context-interface 10.2.0", + "revm-primitives 20.2.1", + "serde", +] + +[[package]] +name = "revm-interpreter" +version = "37.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bae56c57ddca1f5c4abd443f826f1b3e49a86a528e7e1ea0fc207cdc4671a37e" dependencies = [ - "revm-bytecode", - "revm-context-interface", - "revm-primitives", - "revm-state", + "revm-bytecode 11.0.1", + "revm-context-interface 19.0.3", + "revm-primitives 24.0.1", + "revm-state 12.0.1", "serde", ] +[[package]] +name = "revm-precompile" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "arrayref", + "aurora-engine-modexp", + "blst", + "c-kzg", + "cfg-if", + "k256", + "libsecp256k1", + "p256", + "revm-primitives 20.2.1", + "ripemd", + "rug", + "secp256k1 0.31.1", + "sha2 0.10.9", +] + [[package]] name = "revm-precompile" version = "36.0.3" @@ -18975,25 +19970,49 @@ dependencies = [ "cfg-if", "k256", "p256", - "revm-context-interface", - "revm-primitives", + "revm-context-interface 19.0.3", + "revm-primitives 24.0.1", "ripemd", "secp256k1 0.31.1", "sha2 0.10.9", "substrate-bn", ] +[[package]] +name = "revm-primitives" +version = "20.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" +dependencies = [ + "alloy-primitives 1.6.0", + "num_enum 0.7.6", + "once_cell", + "serde", +] + [[package]] name = "revm-primitives" version = "24.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe5102d804892908d4ebf68da29b8562895922dffa26c230ff2c4dadcf93916f" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "once_cell", "serde", ] +[[package]] +name = "revm-state" +version = "7.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" +dependencies = [ + "bitflags 2.13.0", + "revm-bytecode 6.2.2", + "revm-primitives 20.2.1", + "serde", +] + [[package]] name = "revm-state" version = "12.0.1" @@ -19003,8 +20022,8 @@ dependencies = [ "alloy-eip7928 0.4.2", "bitflags 2.13.0", "nonmax", - "revm-bytecode", - "revm-primitives", + "revm-bytecode 11.0.1", + "revm-primitives 24.0.1", "serde", ] @@ -19059,7 +20078,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b37f9050c74d66eb953591e88a60f2d347e99b121e7330eabb0f29c4053d2a36" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "bytemuck", "hex", @@ -19270,7 +20289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a604f09f459f456fd9ef4919c6efcaa6a787a6f9ffcd76cfc81eae1860584a1" dependencies = [ "alloy", - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-sol-types", "anyhow", "cfg-if", @@ -19618,6 +20637,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "rug" +version = "1.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07a8857882aec59d27254b02481c709327c13de6fad1da60bfc4f9783eaaa61e" +dependencies = [ + "az", + "gmp-mpfr-sys", + "libc", + "libm", +] + [[package]] name = "ruint" version = "1.18.0" @@ -19637,7 +20668,7 @@ dependencies = [ "num-integer", "num-traits", "parity-scale-codec", - "primitive-types", + "primitive-types 0.12.2", "proptest", "rand 0.8.6", "rand 0.9.4", @@ -19654,6 +20685,16 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rusb" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9f9ff05b63a786553a4c02943b74b34a988448671001e9a27e2f0565cc05a4" +dependencies = [ + "libc", + "libusb1-sys", +] + [[package]] name = "russh" version = "0.54.5" @@ -19677,7 +20718,7 @@ dependencies = [ "ed25519-dalek", "elliptic-curve", "enum_dispatch", - "futures", + "futures 0.3.32", "generic-array 0.14.7", "getrandom 0.2.17", "hex-literal 0.4.1", @@ -19802,6 +20843,19 @@ dependencies = [ "nom", ] +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.13.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + [[package]] name = "rustix" version = "1.1.4" @@ -19811,7 +20865,7 @@ dependencies = [ "bitflags 2.13.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.12.1", "windows-sys 0.61.2", ] @@ -19986,7 +21040,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ - "futures", + "futures 0.3.32", "pin-project", "static_assertions", ] @@ -20206,6 +21260,17 @@ dependencies = [ "cc", ] +[[package]] +name = "secret-vault-value" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471de2a3d4b361569b862e04491696237381641ae5808f8e69ea08de991cd306" +dependencies = [ + "serde", + "serde_json", + "zeroize", +] + [[package]] name = "security-framework" version = "3.7.0" @@ -20521,6 +21586,19 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.9" @@ -20841,7 +21919,7 @@ version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33b33f1eaadcd4159157758b0edcf1c14f470915f85c648e660e4740ff83e921" dependencies = [ - "futures", + "futures 0.3.32", "p3-challenger", "serde", "slop-algebra", @@ -20889,7 +21967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04717ab01c1202613436caf70948f3e7157bb4c35084817879787c98d62c87e9" dependencies = [ "crossbeam", - "futures", + "futures 0.3.32", "pin-project", "rayon", "thiserror 1.0.69", @@ -20904,7 +21982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aaf578d92dc05de1cd4fa7dc9ffeca918df20cda868326528ec0e81d9c153b1" dependencies = [ "derive-where", - "futures", + "futures 0.3.32", "itertools 0.14.0", "num_cpus", "rand 0.8.6", @@ -21006,7 +22084,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e46a58b8c6c7ab9fbb7dc55c68269b1d1d722beb23af8d6a1091c15877328145" dependencies = [ "derive-where", - "futures", + "futures 0.3.32", "num_cpus", "rand 0.8.6", "rayon", @@ -21045,7 +22123,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e7197d135a012724c2988e2c3a643a54eddbdaa0570b2540b55f39337b437cf" dependencies = [ "derive-where", - "futures", + "futures 0.3.32", "itertools 0.14.0", "serde", "slop-algebra", @@ -21067,7 +22145,7 @@ version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bcf5bf842f895678f170cc36ac7c4bc6521e7c119d24b2c0793f4bbcbe0d3d4" dependencies = [ - "futures", + "futures 0.3.32", "itertools 0.14.0", "rayon", "serde", @@ -21135,7 +22213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52f5c2e680078bfcfa0b782ce3512c06b8fcf8e3bc373c6c291e32395580e780" dependencies = [ "derive-where", - "futures", + "futures 0.3.32", "itertools 0.14.0", "rand 0.8.6", "rayon", @@ -21247,7 +22325,7 @@ checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ "base64 0.22.1", "bytes", - "futures", + "futures 0.3.32", "http 1.4.2", "httparse", "log", @@ -21303,7 +22381,7 @@ dependencies = [ "backoff", "chrono", "eyre", - "futures", + "futures 0.3.32", "if-addrs 0.13.4", "lazy_static", "log", @@ -21430,7 +22508,7 @@ dependencies = [ "bincode 1.3.3", "cfg-if", "enum-map", - "futures", + "futures 0.3.32", "generic-array 1.1.0", "hashbrown 0.14.5", "itertools 0.14.0", @@ -21511,7 +22589,7 @@ dependencies = [ "arrayref", "deepsize2", "derive-where", - "futures", + "futures 0.3.32", "hashbrown 0.14.5", "itertools 0.14.0", "num-bigint 0.4.6", @@ -21616,7 +22694,7 @@ dependencies = [ "either", "enum-map", "eyre", - "futures", + "futures 0.3.32", "hashbrown 0.14.5", "hex", "indicatif 0.17.11", @@ -21829,7 +22907,7 @@ version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "431178dd864d35527a643d03193c36f7f52cccd6b7d3e631849ca71d370dcad5" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "alloy-signer 1.8.3", "alloy-signer-aws", "alloy-signer-local 1.8.3", @@ -21842,7 +22920,7 @@ dependencies = [ "cfg-if", "dirs 5.0.1", "eventsource-stream", - "futures", + "futures 0.3.32", "hex", "indicatif 0.17.11", "itertools 0.14.0", @@ -22016,7 +23094,7 @@ checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", - "heck", + "heck 0.5.0", "hex", "once_cell", "proc-macro2", @@ -22187,6 +23265,23 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "starknet-types-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a12690813e587969cb4a9e7d8ebdb069d4bb7ec8d03275c5f719310c8e1f07c" +dependencies = [ + "generic-array 0.14.7", + "lambdaworks-crypto", + "lambdaworks-math", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand 0.9.4", + "serde", + "zeroize", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -22265,6 +23360,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + [[package]] name = "strum" version = "0.27.2" @@ -22283,13 +23384,26 @@ dependencies = [ "strum_macros 0.28.0", ] +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.117", +] + [[package]] name = "strum_macros" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -22301,7 +23415,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -22313,7 +23427,7 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5eee3fb942ed39f3971438fcc7e05e20717e599e14c5c7cb50edd0df2a44b274" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -22348,6 +23462,104 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "substreams" +version = "0.5.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e47e531af83a3cbb78c627ee8232a0ac86604f11c89e34bd4b721ec41e03e5" +dependencies = [ + "anyhow", + "bigdecimal", + "hex", + "hex-literal 0.3.4", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "pad", + "pest", + "pest_derive", + "prost 0.11.9", + "prost-build 0.11.9", + "prost-types 0.11.9", + "substreams-macro", + "thiserror 1.0.69", +] + +[[package]] +name = "substreams-ethereum" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d033738be190ad9c9a63712cf121e4f33ae9c57845c64021e421c45aac688b5" +dependencies = [ + "getrandom 0.2.17", + "num-bigint 0.4.6", + "substreams", + "substreams-ethereum-abigen", + "substreams-ethereum-core", + "substreams-ethereum-derive", +] + +[[package]] +name = "substreams-ethereum-abigen" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27ef0adda971fbbd085545e73ccd7efbc12e31139cd301252f478e6b9743ff65" +dependencies = [ + "anyhow", + "ethabi 17.2.0", + "heck 0.4.1", + "hex", + "prettyplease 0.1.25", + "proc-macro2", + "quote", + "substreams-ethereum-core", + "syn 1.0.109", +] + +[[package]] +name = "substreams-ethereum-core" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a38e740018de8c2453f08621bab84ac55b0f1bfd42d56cf8b43ad340e670862" +dependencies = [ + "bigdecimal", + "ethabi 17.2.0", + "getrandom 0.2.17", + "num-bigint 0.4.6", + "prost 0.11.9", + "prost-build 0.11.9", + "prost-types 0.11.9", + "substreams", +] + +[[package]] +name = "substreams-ethereum-derive" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55c934c70e6ab1fe11a89f401f36e7d9be3fe087687395767a4c13ab3d6bd055" +dependencies = [ + "ethabi 17.2.0", + "heck 0.4.1", + "hex", + "num-bigint 0.4.6", + "proc-macro2", + "quote", + "substreams-ethereum-abigen", + "syn 1.0.109", +] + +[[package]] +name = "substreams-macro" +version = "0.5.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4ac77f08d723dace35739d65df8ed122f6d04e2a3e47929831d4021e3339240" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "thiserror 1.0.69", +] + [[package]] name = "subtle" version = "2.6.1" @@ -22476,7 +23688,7 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fce91f2f0ec87dff7e6bcbbeb267439aa1188703003c6055193c821487400432" dependencies = [ - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -22517,7 +23729,7 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] @@ -22636,7 +23848,7 @@ dependencies = [ "docker_credential", "either", "etcetera 0.10.0", - "futures", + "futures 0.3.32", "log", "memchr", "parse-display", @@ -22961,6 +24173,20 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "native-tls", + "tokio", + "tokio-native-tls", + "tungstenite 0.20.1", +] + [[package]] name = "tokio-tungstenite" version = "0.24.0" @@ -23028,7 +24254,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b319ef9394889dab2e1b4f0085b45ba11d0c79dc9d1a9d1afc057d009d0f1c7" dependencies = [ "bytes", - "futures", + "futures 0.3.32", "libc", "tokio", "vsock", @@ -23242,11 +24468,13 @@ dependencies = [ "socket2 0.6.4", "sync_wrapper 1.0.2", "tokio", + "tokio-rustls 0.26.4", "tokio-stream", "tower 0.5.3", "tower-layer", "tower-service", "tracing", + "webpki-roots 1.0.7", ] [[package]] @@ -23255,9 +24483,9 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "prettyplease", + "prettyplease 0.2.37", "proc-macro2", - "prost-build", + "prost-build 0.13.5", "prost-types 0.13.5", "quote", "syn 2.0.117", @@ -23603,7 +24831,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f7c95348f20c1c913d72157b3c6dee6ea3e30b3d19502c5a7f6d3f160dacbf" dependencies = [ "cc", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -23622,7 +24850,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7fd51aa83d2eb83b04570808430808b5d24fdbf479a4d5ac5dee4a2e2dd2be4" dependencies = [ - "alloy-primitives", + "alloy-primitives 1.6.0", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -23657,6 +24885,26 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "native-tls", + "rand 0.8.6", + "sha1 0.10.6", + "thiserror 1.0.69", + "url", + "utf-8", +] + [[package]] name = "tungstenite" version = "0.24.0" @@ -23712,6 +24960,40 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "turnkey_api_key_stamper" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34f72e05a07cb04163efff0c766521ebacbb268a851db83d419b7c56df90d046" +dependencies = [ + "base64 0.22.1", + "hex", + "k256", + "p256", + "rand_core 0.6.4", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "turnkey_client" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f216ea270ec4a37daa491679b716962cda7819cac982b49088979b2edf6067df" +dependencies = [ + "mime", + "prost 0.12.6", + "prost-types 0.12.6", + "reqwest 0.12.28", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", + "tokio", + "turnkey_api_key_stamper", +] + [[package]] name = "twirp-rs" version = "0.13.0-succinct" @@ -23720,7 +25002,7 @@ checksum = "27dfcc06b8d9262bc2d4b8d1847c56af9971a52dd8a0076876de9db763227d0d" dependencies = [ "async-trait", "axum 0.7.9", - "futures", + "futures 0.3.32", "http 1.4.2", "http-body-util", "hyper 1.10.1", @@ -23750,6 +25032,167 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" +[[package]] +name = "tycho-client" +version = "0.305.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "911bd487a6c1eb485d8b06b1181ee007bf30dc337378562159e7d6b675aace4a" +dependencies = [ + "async-trait", + "backoff", + "chrono", + "clap", + "futures 0.3.32", + "hex", + "hyper 0.14.32", + "lru 0.16.4", + "reqwest 0.12.28", + "serde", + "serde_json", + "thiserror 1.0.69", + "time", + "tokio", + "tokio-tungstenite 0.20.1", + "toml 0.8.23", + "tracing", + "tracing-appender", + "tracing-subscriber 0.3.23", + "tycho-common", + "uuid", + "zstd", +] + +[[package]] +name = "tycho-common" +version = "0.305.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19338a335c5f8fdc3dff746877973102e651259054a7c80d9341274adff7c9c" +dependencies = [ + "anyhow", + "async-trait", + "bytes", + "chrono", + "deepsize", + "hex", + "itertools 0.10.5", + "num-bigint 0.4.6", + "rand 0.8.6", + "serde", + "serde_json", + "strum 0.25.0", + "strum_macros 0.25.3", + "thiserror 1.0.69", + "tiny-keccak", + "tracing", + "typetag", + "utoipa 4.2.3", + "uuid", +] + +[[package]] +name = "tycho-ethereum" +version = "0.305.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd280ae760a49c5804feab81398c7a63bf183c3c153265538a0da5155280df0d" +dependencies = [ + "alloy", + "async-trait", + "backoff", + "chrono", + "futures 0.3.32", + "num-bigint 0.4.6", + "serde", + "serde_json", + "serde_with", + "thiserror 1.0.69", + "tokio", + "tracing", + "tycho-common", + "unicode-segmentation", +] + +[[package]] +name = "tycho-execution" +version = "0.305.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a308eaecf8b976c887ee833ea65e535a9d14a2d0566e7981c90e9b1b371ff89d" +dependencies = [ + "alloy", + "chrono", + "clap", + "dotenvy", + "hex", + "num-bigint 0.4.6", + "once_cell", + "reqwest 0.12.28", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tycho-common", +] + +[[package]] +name = "tycho-simulation" +version = "0.305.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d84900644ba230802ef1f9ff121fed5e6fb31c6ae396bfd6924e4f3a7709b0e3" +dependencies = [ + "alloy", + "alloy-chains", + "async-stream", + "async-trait", + "chrono", + "dotenv", + "ekubo_sdk", + "enum_delegate", + "evm_ekubo_sdk", + "foundry-block-explorers", + "futures 0.3.32", + "hex", + "hex-literal 0.4.1", + "http 1.4.2", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "prost 0.13.5", + "reqwest 0.12.28", + "revm 29.0.1", + "revm-inspectors 0.30.1", + "ruint", + "serde", + "serde_json", + "strum_macros 0.25.3", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.28.0", + "toml 0.8.23", + "tracing", + "tycho-client", + "tycho-common", + "tycho-ethereum", + "typetag", + "uuid", +] + +[[package]] +name = "tycho-substreams" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12c39162e44705f28402e2f114da2694e01a466a80dc6f7dca9af0b49f92c76" +dependencies = [ + "ethabi 18.0.0", + "hex", + "itertools 0.12.1", + "num-bigint 0.4.6", + "prost 0.11.9", + "serde", + "serde_json", + "substreams", + "substreams-ethereum", +] + [[package]] name = "typed-arena" version = "2.0.2" @@ -23909,9 +25352,15 @@ checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" dependencies = [ "itertools 0.14.0", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.2" @@ -23924,6 +25373,57 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "uniswap-v2-core" +version = "0.1.0" +source = "git+ssh://git@github.com/propeller-heads/builder-integration.git?rev=6029f1b4739c753383c0ce5ef03a70ad1bd007e5#6029f1b4739c753383c0ce5ef03a70ad1bd007e5" +dependencies = [ + "anyhow", + "ethabi 18.0.0", + "getrandom 0.2.17", + "hex", + "num-bigint 0.4.6", + "num-traits", + "substreams", + "substreams-ethereum", + "tycho-common", + "tycho-substreams", +] + +[[package]] +name = "uniswap-v3-core" +version = "0.1.0" +source = "git+ssh://git@github.com/propeller-heads/builder-integration.git?rev=6029f1b4739c753383c0ce5ef03a70ad1bd007e5#6029f1b4739c753383c0ce5ef03a70ad1bd007e5" +dependencies = [ + "anyhow", + "ethabi 18.0.0", + "getrandom 0.2.17", + "hex", + "num-bigint 0.4.6", + "num-traits", + "substreams", + "substreams-ethereum", + "tycho-common", + "tycho-substreams", +] + +[[package]] +name = "uniswap-v4-core" +version = "0.1.0" +source = "git+ssh://git@github.com/propeller-heads/builder-integration.git?rev=6029f1b4739c753383c0ce5ef03a70ad1bd007e5#6029f1b4739c753383c0ce5ef03a70ad1bd007e5" +dependencies = [ + "anyhow", + "ethabi 18.0.0", + "getrandom 0.2.17", + "hex", + "num-bigint 0.4.6", + "num-traits", + "substreams", + "substreams-ethereum", + "tycho-common", + "tycho-substreams", +] + [[package]] name = "unit-prefix" version = "0.5.2" @@ -24052,6 +25552,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "utoipa" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_json", + "utoipa-gen 4.3.1", +] + [[package]] name = "utoipa" version = "5.5.0" @@ -24061,7 +25573,19 @@ dependencies = [ "indexmap 2.14.0", "serde", "serde_json", - "utoipa-gen", + "utoipa-gen 5.5.0", +] + +[[package]] +name = "utoipa-gen" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c24e8ab68ff9ee746aad22d39b5535601e6416d1b0feeabf78be986a5c4392" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -24085,6 +25609,7 @@ dependencies = [ "getrandom 0.4.2", "js-sys", "md-5 0.10.6", + "rand 0.10.1", "serde_core", "sha1_smol", "wasm-bindgen", @@ -24198,7 +25723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "054ff75fb8fa83e609e685106df4faeffdf3a735d3c74ebce97ec557d5d36fd9" dependencies = [ "itoa", - "unicode-width", + "unicode-width 0.2.2", "vte", ] @@ -24400,7 +25925,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ - "futures", + "futures 0.3.32", "js-sys", "parking_lot", "pin-utils", @@ -24472,7 +25997,7 @@ dependencies = [ "backoff", "base-metrics", "brotli", - "futures", + "futures 0.3.32", "http 1.4.2", "ipnet", "metrics", @@ -24496,7 +26021,7 @@ dependencies = [ "brotli", "clap", "dotenvy", - "futures", + "futures 0.3.32", "hostname", "ipnet", "metrics-exporter-prometheus", @@ -24585,6 +26110,18 @@ dependencies = [ "wezterm-dynamic", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + [[package]] name = "whoami" version = "1.6.1" @@ -24633,7 +26170,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] @@ -25247,7 +26784,7 @@ dependencies = [ "assert-json-diff", "base64 0.22.1", "deadpool", - "futures", + "futures 0.3.32", "http 1.4.2", "http-body-util", "hyper 1.10.1", @@ -25283,7 +26820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "wit-parser", ] @@ -25294,9 +26831,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "indexmap 2.14.0", - "prettyplease", + "prettyplease 0.2.37", "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", @@ -25310,7 +26847,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" dependencies = [ "anyhow", - "prettyplease", + "prettyplease 0.2.37", "proc-macro2", "quote", "syn 2.0.117", @@ -25374,7 +26911,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" dependencies = [ "async_io_stream", - "futures", + "futures 0.3.32", "js-sys", "log", "pharos", @@ -25402,7 +26939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" dependencies = [ "gethostname", - "rustix", + "rustix 1.1.4", "x11rb-protocol", ] @@ -25448,7 +26985,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix", + "rustix 1.1.4", ] [[package]] @@ -25495,7 +27032,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" dependencies = [ - "futures", + "futures 0.3.32", "log", "nohash-hasher", "parking_lot", @@ -25510,7 +27047,7 @@ version = "0.13.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1991f6690292030e31b0144d73f5e8368936c58e45e7068254f7138b23b00672" dependencies = [ - "futures", + "futures 0.3.32", "log", "nohash-hasher", "parking_lot", diff --git a/Cargo.toml b/Cargo.toml index 78c31ffcf1..ef77487a0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -175,6 +175,7 @@ base-builder-cli = { path = "crates/builder/cli" } base-builder-core = { path = "crates/builder/core" } base-builder-publish = { path = "crates/builder/publish" } base-builder-metering = { path = "crates/builder/metering" } +base-intent-swap = { path = "crates/builder/intent-swap" } # Consensus base-consensus-cli = { path = "crates/consensus/cli" } @@ -289,6 +290,10 @@ base-balance-monitor = { path = "crates/utilities/balance-monitor" } base-metrics = { path = "crates/utilities/metrics", default-features = false } base-runtime = { path = "crates/utilities/runtime", default-features = false } +# Intent-swap engine (Propellerheads) +backrunner = { git = "ssh://git@github.com/propeller-heads/builder-integration.git", rev = "6029f1b4739c753383c0ce5ef03a70ad1bd007e5" } +builder-types = { git = "ssh://git@github.com/propeller-heads/builder-integration.git", rev = "6029f1b4739c753383c0ce5ef03a70ad1bd007e5" } + # revm revm = { version = "40.0.3", default-features = false } revm-bytecode = { version = "11.0.0", default-features = false } diff --git a/bin/builder/Cargo.toml b/bin/builder/Cargo.toml index c9d775b515..6c984c0eff 100644 --- a/bin/builder/Cargo.toml +++ b/bin/builder/Cargo.toml @@ -22,6 +22,7 @@ base-txpool-rpc.workspace = true base-node-runner.workspace = true base-builder-cli.workspace = true base-builder-core.workspace = true +base-intent-swap.workspace = true base-builder-metering.workspace = true base-observability-events.workspace = true @@ -33,6 +34,10 @@ base-execution-cli = { workspace = true, features = ["otlp"] } # cli clap.workspace = true +# misc +eyre.workspace = true +tokio = { workspace = true, features = ["sync"] } + [features] default = [ "jemalloc" ] jemalloc = [ "base-builder-core/jemalloc", "base-execution-cli/jemalloc" ] diff --git a/bin/builder/src/main.rs b/bin/builder/src/main.rs index f29deaa6ee..a36ba9d08c 100644 --- a/bin/builder/src/main.rs +++ b/bin/builder/src/main.rs @@ -40,12 +40,23 @@ fn main() { transaction_events_enabled.then(|| builder_args.transaction_events.writer_config()), )?; - let builder_config = builder_args + let intent_swap_args = builder_args.intent_swap.clone(); + let mut builder_config = builder_args .into_builder_config(Arc::clone(&metering_provider)) .expect("Failed to convert rollup args to builder config"); let da_config = builder_config.da_config.clone(); let gas_limit_config = builder_config.gas_limit_config.clone(); + let intent_swap = if intent_swap_args.enabled { + let (event_tx, event_rx) = + tokio::sync::mpsc::channel(intent_swap_args.event_channel_capacity); + builder_config.build_event_tx = Some(event_tx); + let config = intent_swap_config(&intent_swap_args)?; + Some((config, event_rx)) + } else { + None + }; + let mut runner = BaseNodeRunner::new(rollup_args.clone()) .with_da_config(da_config) .with_gas_limit_config(gas_limit_config) @@ -54,6 +65,9 @@ fn main() { runner.install_ext::(TxPoolRpcConfig::default()); runner.install_ext::(()); StandardBaseRethNode::install_upgrade_signal_runtime_extension(&mut runner, &rollup_args)?; + if let Some(config_and_rx) = intent_swap { + runner.install_ext::(config_and_rx); + } runner.add_started_callback(|| { base_cli_utils::register_version_metrics!(); Ok(()) @@ -63,3 +77,36 @@ fn main() { }) .unwrap(); } + +/// Builds the intent-swap config from CLI args; errors on missing required values. +fn intent_swap_config( + args: &base_builder_cli::IntentSwapArgs, +) -> eyre::Result { + Ok(base_intent_swap::IntentSwapConfig { + tycho_url: args.tycho_url.clone(), + tycho_api_key: args.tycho_api_key.clone(), + rpc_url: args + .rpc_url + .clone() + .ok_or_else(|| eyre::eyre!("--builder.intent-swap.rpc-url is required"))?, + protocols: args.protocols.clone(), + resolver_address: args + .resolver_address + .as_deref() + .ok_or_else(|| eyre::eyre!("--builder.intent-swap.resolver-address is required"))? + .parse() + .map_err(|e| eyre::eyre!("invalid resolver address: {e}"))?, + chain: args.chain.clone(), + chain_id: args.chain_id, + min_tvl: args.min_tvl, + slippage: args.slippage, + eoa_private_key: args + .eoa_key + .clone() + .ok_or_else(|| eyre::eyre!("INTENT_SWAP_EOA_KEY is required"))?, + order_queue_capacity: args.order_queue_capacity, + ready_timeout: std::time::Duration::from_secs(600), + orderbook_interval: std::time::Duration::from_secs(60), + verify_onchain_taking: args.verify_onchain_taking, + }) +} diff --git a/crates/builder/cli/src/args.rs b/crates/builder/cli/src/args.rs index 71bbde5a7c..9d254864d7 100644 --- a/crates/builder/cli/src/args.rs +++ b/crates/builder/cli/src/args.rs @@ -118,6 +118,132 @@ impl TransactionEventsArgs { } } +/// CLI options for the intent-swap extension. +#[derive(Debug, Clone, PartialEq, clap::Args)] +pub struct IntentSwapArgs { + /// Enables the intent-swap extension. + #[arg( + id = "intent_swap_enabled", + long = "builder.intent-swap.enabled", + env = "INTENT_SWAP_ENABLED", + default_value = "false" + )] + pub enabled: bool, + /// Tycho WebSocket host. + #[arg( + long = "builder.intent-swap.tycho-url", + env = "INTENT_SWAP_TYCHO_URL", + default_value = "tycho-beta.propellerheads.xyz" + )] + pub tycho_url: String, + /// Tycho API key. + #[arg( + long = "builder.intent-swap.tycho-api-key", + env = "INTENT_SWAP_TYCHO_API_KEY", + hide_env_values = true + )] + pub tycho_api_key: Option, + /// Chain JSON-RPC URL for on-chain order queries. + #[arg(long = "builder.intent-swap.rpc-url", env = "INTENT_SWAP_RPC_URL")] + pub rpc_url: Option, + /// Fusion resolver contract address. + #[arg(long = "builder.intent-swap.resolver-address", env = "INTENT_SWAP_RESOLVER_ADDRESS")] + pub resolver_address: Option, + /// EOA private key for signing settlements (env only in practice). + #[arg( + long = "builder.intent-swap.eoa-key", + env = "INTENT_SWAP_EOA_KEY", + hide_env_values = true + )] + pub eoa_key: Option, + /// Chain slug for Tycho market data. + #[arg( + id = "intent_swap_chain", + long = "builder.intent-swap.chain", + env = "INTENT_SWAP_CHAIN", + default_value = "base", + value_name = "CHAIN" + )] + pub chain: String, + /// 1inch Fusion chain id. + #[arg( + long = "builder.intent-swap.chain-id", + env = "INTENT_SWAP_CHAIN_ID", + default_value = "8453" + )] + pub chain_id: u64, + /// Comma-separated Tycho protocol slugs. + #[arg( + long = "builder.intent-swap.protocols", + env = "INTENT_SWAP_PROTOCOLS", + default_value = "uniswap_v2,uniswap_v3,uniswap_v4", + value_delimiter = ',' + )] + pub protocols: Vec, + /// Minimum pool TVL filter. + #[arg( + long = "builder.intent-swap.min-tvl", + env = "INTENT_SWAP_MIN_TVL", + default_value = "10.0" + )] + pub min_tvl: f64, + /// Route slippage tolerance. + #[arg( + long = "builder.intent-swap.slippage", + env = "INTENT_SWAP_SLIPPAGE", + default_value = "0.005" + )] + pub slippage: f64, + /// Submitted-order queue capacity. + #[arg( + long = "builder.intent-swap.order-queue-capacity", + env = "INTENT_SWAP_ORDER_QUEUE_CAPACITY", + default_value = "64" + )] + pub order_queue_capacity: usize, + /// Build-event channel capacity. + #[arg( + long = "builder.intent-swap.event-channel-capacity", + env = "INTENT_SWAP_EVENT_CHANNEL_CAPACITY", + default_value = "4096" + )] + pub event_channel_capacity: usize, + /// Enables the LOP on-chain preflight that rejects unfillable or unauthentic orders + /// before signing and submitting a settlement. + #[arg( + id = "intent_swap_verify_onchain_taking", + long = "builder.intent-swap.verify-onchain-taking", + env = "INTENT_SWAP_VERIFY_ONCHAIN_TAKING", + default_value = "false" + )] + pub verify_onchain_taking: bool, +} + +impl Default for IntentSwapArgs { + fn default() -> Self { + Self { + enabled: false, + tycho_url: "tycho-beta.propellerheads.xyz".to_string(), + tycho_api_key: None, + rpc_url: None, + resolver_address: None, + eoa_key: None, + chain: "base".to_string(), + chain_id: 8453, + protocols: vec![ + "uniswap_v2".to_string(), + "uniswap_v3".to_string(), + "uniswap_v4".to_string(), + ], + min_tvl: 10.0, + slippage: 0.005, + order_queue_capacity: 64, + event_channel_capacity: 4096, + verify_onchain_taking: false, + } + } +} + /// Parameters for rollup configuration #[derive(Debug, Clone, clap::Args)] #[command(next_help_heading = "Rollup")] @@ -219,6 +345,10 @@ pub struct Args { /// Transaction event journal configuration #[command(flatten)] pub transaction_events: TransactionEventsArgs, + + /// Intent-swap extension configuration + #[command(flatten)] + pub intent_swap: IntentSwapArgs, } impl Args { @@ -258,6 +388,7 @@ impl Default for Args { sampling_ratio: 100, flashblocks: FlashblocksArgs::default(), transaction_events: TransactionEventsArgs::default(), + intent_swap: IntentSwapArgs::default(), } } } @@ -307,6 +438,7 @@ impl Args { audit_archiver_url: self.audit_archiver_url, rejected_tx_channel_size: self.rejected_tx_channel_size, max_rejected_txs_per_block: self.max_rejected_txs_per_block, + build_event_tx: None, }) } } diff --git a/crates/builder/cli/src/lib.rs b/crates/builder/cli/src/lib.rs index e23f178810..82f5471335 100644 --- a/crates/builder/cli/src/lib.rs +++ b/crates/builder/cli/src/lib.rs @@ -4,4 +4,4 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] mod args; -pub use args::{Args, FlashblocksArgs, TransactionEventsArgs}; +pub use args::{Args, FlashblocksArgs, IntentSwapArgs, TransactionEventsArgs}; diff --git a/crates/builder/core/src/build_events.rs b/crates/builder/core/src/build_events.rs new file mode 100644 index 0000000000..cfa84f67b9 --- /dev/null +++ b/crates/builder/core/src/build_events.rs @@ -0,0 +1,135 @@ +//! Optional build-event stream emitted by the flashblocks payload builder. +//! +//! When [`crate::BuilderConfig::build_event_tx`] is set, the payload builder emits one +//! [`BuildEvent::IterationStart`] per payload job, one [`BuildEvent::TxExecuted`] per +//! committed transaction (with its receipt logs), and a terminal +//! [`BuildEvent::IterationComplete`] or [`BuildEvent::IterationAborted`]. Emission is +//! non-blocking (`try_send`); a full channel drops the event with a warning and never +//! stalls block building. [`BuildEventEmitter`] wraps the optional sender and performs +//! the emission. + +use std::sync::atomic::{AtomicBool, Ordering}; + +use alloy_primitives::{Address, B256, Log}; +use reth_payload_builder::PayloadId; +use tokio::sync::mpsc::{self, error::TrySendError}; +use tracing::warn; + +/// Sender half for the optional build-event stream. +pub type BuildEventSender = mpsc::Sender; + +/// Lifecycle events for one payload build (one block-building iteration). +#[derive(Debug, Clone)] +pub enum BuildEvent { + /// A payload build started. + IterationStart { + /// Identifier of the payload job; correlates all events of one iteration. + payload_id: PayloadId, + /// Number of the block being built. + block_number: u64, + /// Timestamp of the block being built. + timestamp: u64, + /// Base fee of the block being built. + base_fee: u64, + }, + /// A transaction was committed to the in-progress block. + TxExecuted { + /// Identifier of the payload job. + payload_id: PayloadId, + /// Hash of the committed transaction. + tx_hash: B256, + /// Transaction sender. + from: Address, + /// Transaction recipient, `None` for contract creation. + to: Option
, + /// Receipt logs of the committed transaction. + logs: Vec, + /// Gas used by the transaction. + gas_used: u64, + /// Whether execution succeeded (receipt status). + success: bool, + }, + /// The payload was finalized (block sealed). + IterationComplete { + /// Identifier of the payload job. + payload_id: PayloadId, + }, + /// The payload build exited with an error before finalizing. + IterationAborted { + /// Identifier of the payload job. + payload_id: PayloadId, + }, +} + +/// Emits [`BuildEvent`]s to an optional consumer without ever blocking the payload builder. +/// +/// Holds the optional channel and a one-shot latch so a closed consumer is reported once, +/// not per event. Construct one per builder and share it via `Arc`. +#[derive(Debug)] +pub struct BuildEventEmitter { + sender: Option, + closed_warned: AtomicBool, +} + +impl BuildEventEmitter { + /// Creates an emitter; `None` makes every [`Self::emit`] a no-op. + pub const fn new(sender: Option) -> Self { + Self { sender, closed_warned: AtomicBool::new(false) } + } + + /// Whether a consumer is attached. Emit sites can skip building event payloads when false. + pub const fn is_enabled(&self) -> bool { + self.sender.is_some() + } + + /// Emits a build event without blocking; drops the event if the channel is full + /// or closed. No-op if no consumer is attached. + /// + /// A full channel warns on every drop (genuine backpressure). A closed channel + /// (consumer gone) warns only once per emitter to avoid flooding logs for the + /// remaining lifetime of the builder. + pub fn emit(&self, event: BuildEvent) { + let Some(sender) = &self.sender else { return }; + match sender.try_send(event) { + Ok(()) => {} + Err(TrySendError::Full(_)) => { + warn!("build event dropped: channel full"); + } + Err(TrySendError::Closed(_)) => { + if !self.closed_warned.swap(true, Ordering::Relaxed) { + warn!( + "build event channel closed, consumer gone — suppressing further warnings" + ); + } + } + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn sample_event() -> BuildEvent { + BuildEvent::IterationComplete { payload_id: PayloadId::new([0; 8]) } + } + + #[test] + fn emit_does_not_panic_on_full_channel() { + let (tx, _rx) = mpsc::channel(1); + tx.try_send(sample_event()).expect("first send fills capacity"); + let emitter = BuildEventEmitter::new(Some(tx)); + + emitter.emit(sample_event()); + } + + #[test] + fn emit_does_not_panic_on_closed_channel() { + let (tx, rx) = mpsc::channel(1); + drop(rx); + let emitter = BuildEventEmitter::new(Some(tx)); + + emitter.emit(sample_event()); + emitter.emit(sample_event()); + } +} diff --git a/crates/builder/core/src/config.rs b/crates/builder/core/src/config.rs index 36b0a5da04..9b7fca5a2c 100644 --- a/crates/builder/core/src/config.rs +++ b/crates/builder/core/src/config.rs @@ -76,6 +76,10 @@ pub struct BuilderConfig { /// Maximum number of rejected transactions accumulated per block before /// further rejections are dropped. Prevents unbounded `ExecutionInfo` growth. pub max_rejected_txs_per_block: usize, + + /// Optional sink for build lifecycle events consumed by in-process services. + /// `None` (default) disables emission entirely. + pub build_event_tx: Option, } impl BuilderConfig { @@ -109,6 +113,7 @@ impl core::fmt::Debug for BuilderConfig { .field("audit_archiver_url", &self.audit_archiver_url) .field("rejected_tx_channel_size", &self.rejected_tx_channel_size) .field("max_rejected_txs_per_block", &self.max_rejected_txs_per_block) + .field("build_event_tx", &self.build_event_tx.is_some()) .finish() } } @@ -134,6 +139,7 @@ impl Default for BuilderConfig { audit_archiver_url: None, rejected_tx_channel_size: 500, max_rejected_txs_per_block: 500, + build_event_tx: None, } } } diff --git a/crates/builder/core/src/flashblocks/context.rs b/crates/builder/core/src/flashblocks/context.rs index db833ae480..d60cec84ad 100644 --- a/crates/builder/core/src/flashblocks/context.rs +++ b/crates/builder/core/src/flashblocks/context.rs @@ -4,7 +4,7 @@ use std::{ time::{Instant, SystemTime, UNIX_EPOCH}, }; -use alloy_consensus::{Eip658Value, Transaction}; +use alloy_consensus::{Eip658Value, Transaction, TxReceipt}; use alloy_eips::{Encodable2718, Typed2718}; use alloy_evm::Database; #[cfg(any(test, feature = "test-utils"))] @@ -42,8 +42,9 @@ use tokio_util::sync::CancellationToken; use tracing::{Level, debug, span, trace, warn}; use crate::{ - BuilderConfig, BuilderMetrics, ExecutionInfo, ExecutionMeteringLimitExceeded, PayloadTxsBounds, - ResourceLimits, TxResources, TxnExecutionError, TxnOutcome, + BuildEventEmitter, BuilderConfig, BuilderMetrics, ExecutionInfo, + ExecutionMeteringLimitExceeded, PayloadTxsBounds, ResourceLimits, TxResources, + TxnExecutionError, TxnOutcome, transaction_events::{ BuilderAcceptedEventData, BuilderConsideredEventData, BuilderRejectedEventData, BuilderTransactionEventContext, emit_builder_transaction_event, rejection_reason_code, @@ -253,6 +254,8 @@ pub struct BasePayloadBuilderCtx { pub builder_config: BuilderConfig, /// Sender for forwarding per-block batches of rejected transactions to the audit-archiver. pub rejected_tx_sender: Option>>, + /// Emitter for the optional build-event stream. + pub build_events: Arc, } impl BasePayloadBuilderCtx { @@ -1201,6 +1204,19 @@ impl BasePayloadBuilderCtx { }; info.receipts.push(self.build_receipt(ctx, None)); + if self.build_events.is_enabled() { + let logs = info.receipts.last().map(|r| r.logs().to_vec()).unwrap_or_default(); + self.build_events.emit(crate::BuildEvent::TxExecuted { + payload_id: self.payload_id(), + tx_hash, + from: tx.signer(), + to: tx.to(), + logs, + gas_used, + success: is_success, + }); + } + // commit changes evm.db_mut().commit(state); @@ -1337,6 +1353,7 @@ impl BasePayloadBuilderCtx { extra: FlashblocksExtraCtx::default(), builder_config: crate::BuilderConfig::default(), rejected_tx_sender: None, + build_events: Arc::new(BuildEventEmitter::new(None)), } } } diff --git a/crates/builder/core/src/flashblocks/payload.rs b/crates/builder/core/src/flashblocks/payload.rs index f6863099fd..dc26205ad0 100644 --- a/crates/builder/core/src/flashblocks/payload.rs +++ b/crates/builder/core/src/flashblocks/payload.rs @@ -52,7 +52,8 @@ use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, metadata::Level, span, warn}; use crate::{ - BuilderConfig, BuilderMetrics, ExecutionInfo, PayloadBuilder, ResourceLimits, + BuildEventEmitter, BuilderConfig, BuilderMetrics, ExecutionInfo, PayloadBuilder, + ResourceLimits, flashblocks::{ FlashblocksExtraCtx, best_txs::BestFlashblocksTxs, @@ -120,12 +121,15 @@ pub(super) struct BasePayloadBuilder { pub config: BuilderConfig, /// Sender for forwarding per-block batches of rejected transactions to the audit-archiver. pub rejected_tx_sender: Option>>, + /// Emitter for the optional build-event stream. + pub build_events: Arc, /// Last flashblock emitted by this builder instance. last_emitted_flashblock_id: Arc, } impl BasePayloadBuilder { /// `BasePayloadBuilder` constructor. + #[allow(clippy::too_many_arguments)] pub(super) fn new( evm_config: BaseEvmConfig, pool: Pool, @@ -134,6 +138,7 @@ impl BasePayloadBuilder { payload_tx: mpsc::Sender, ws_pub: Arc, rejected_tx_sender: Option>>, + build_events: Arc, ) -> Self { Self { evm_config, @@ -143,6 +148,7 @@ impl BasePayloadBuilder { ws_pub, config, rejected_tx_sender, + build_events, last_emitted_flashblock_id: Arc::default(), } } @@ -241,9 +247,25 @@ where extra, builder_config: self.config.clone(), rejected_tx_sender: self.rejected_tx_sender.clone(), + build_events: Arc::clone(&self.build_events), }) } + /// Delegates to [`Self::build_payload`], additionally emitting an + /// [`crate::BuildEvent::IterationAborted`] event if the build fails. + async fn build_payload_with_events( + &self, + args: BuildArguments, BaseBuiltPayload>, + best_payload: BlockCell, + ) -> Result<(), PayloadBuilderError> { + let payload_id = args.config.attributes.payload_attributes.id; + let result = self.build_payload(args, best_payload).await; + if result.is_err() { + self.build_events.emit(crate::BuildEvent::IterationAborted { payload_id }); + } + result + } + /// Constructs a Base payload from the transactions sent via the /// Payload attributes by the sequencer. If the `no_tx_pool` argument is passed in /// the payload attributes, the transaction pool will be ignored and the only transactions @@ -288,6 +310,13 @@ where ) .map_err(|e| PayloadBuilderError::Other(e.into()))?; + self.build_events.emit(crate::BuildEvent::IterationStart { + payload_id: ctx.payload_id(), + block_number, + timestamp, + base_fee: ctx.base_fee(), + }); + let state_provider = self.client.state_by_block_hash(ctx.parent().hash())?; let db = StateProviderDatabase::new(state_provider); @@ -935,6 +964,8 @@ where ctx.flush_rejected_txs(info); self.emit_final_inclusion_events(ctx, &final_payload); + self.build_events + .emit(crate::BuildEvent::IterationComplete { payload_id: ctx.payload_id() }); let elapsed = start_time.elapsed(); info!( @@ -1057,7 +1088,7 @@ where args: BuildArguments, best_payload: BlockCell, ) -> Result<(), PayloadBuilderError> { - self.build_payload(args, best_payload).await + self.build_payload_with_events(args, best_payload).await } } diff --git a/crates/builder/core/src/flashblocks/service.rs b/crates/builder/core/src/flashblocks/service.rs index c144a9312f..64f7b84931 100644 --- a/crates/builder/core/src/flashblocks/service.rs +++ b/crates/builder/core/src/flashblocks/service.rs @@ -20,7 +20,7 @@ use tracing::info; use super::{PayloadHandler, generator::BlockPayloadJobGenerator, payload::BasePayloadBuilder}; use crate::{ - BuilderConfig, RejectedTxForwarder, + BuildEventEmitter, BuilderConfig, RejectedTxForwarder, traits::{NodeBounds, PoolBounds}, }; @@ -57,6 +57,7 @@ impl FlashblocksServiceBuilder { let ws_pub: Arc = WebSocketPublisher::new(self.0.flashblocks_ws_addr)?.into(); + let build_events = Arc::new(BuildEventEmitter::new(self.0.build_event_tx.clone())); let payload_builder = BasePayloadBuilder::new( BaseEvmConfig::base(ctx.chain_spec()), pool, @@ -65,6 +66,7 @@ impl FlashblocksServiceBuilder { built_payload_tx, ws_pub, rejected_tx_sender, + build_events, ); let payload_generator = BlockPayloadJobGenerator::with_builder( ctx.provider().clone(), diff --git a/crates/builder/core/src/lib.rs b/crates/builder/core/src/lib.rs index cbbce594c6..ab0a59a1a6 100644 --- a/crates/builder/core/src/lib.rs +++ b/crates/builder/core/src/lib.rs @@ -10,6 +10,9 @@ mod config; pub use config::BuilderConfig; +mod build_events; +pub use build_events::{BuildEvent, BuildEventEmitter, BuildEventSender}; + mod metrics; pub use metrics::BuilderMetrics; diff --git a/crates/builder/core/tests/build_events.rs b/crates/builder/core/tests/build_events.rs new file mode 100644 index 0000000000..29458c275f --- /dev/null +++ b/crates/builder/core/tests/build_events.rs @@ -0,0 +1,64 @@ +#![allow(missing_docs)] + +use std::collections::HashSet; + +use base_builder_core::{ + BuildEvent, BuilderConfig, + test_utils::{TransactionBuilderExt, setup_test_instance_with_builder_config}, +}; + +/// Verifies that a single payload job emits its build-event stream in order +/// (`IterationStart` first, `IterationComplete` last), includes a `TxExecuted` for the +/// submitted transfer, and that every event shares the job's `payload_id`. +#[tokio::test] +async fn build_events_stream_full_iteration() -> eyre::Result<()> { + let (event_tx, mut event_rx) = tokio::sync::mpsc::channel(1024); + let mut config = BuilderConfig::for_tests(); + config.build_event_tx = Some(event_tx); + + let rbuilder = setup_test_instance_with_builder_config(config).await?; + let driver = rbuilder.driver().await?; + + let tx = driver + .create_transaction() + .random_valid_transfer() + .send() + .await + .expect("Failed to send transaction"); + + driver.build_new_block_with_current_timestamp(None).await?; + + let mut events = Vec::new(); + while let Ok(event) = event_rx.try_recv() { + events.push(event); + } + + assert!( + matches!(events.first(), Some(BuildEvent::IterationStart { .. })), + "first event must be IterationStart, got {events:?}" + ); + assert!( + matches!(events.last(), Some(BuildEvent::IterationComplete { .. })), + "last event must be IterationComplete, got {events:?}" + ); + + let executed: Vec<_> = + events.iter().filter(|event| matches!(event, BuildEvent::TxExecuted { .. })).collect(); + assert!(!executed.is_empty(), "expected at least one TxExecuted event"); + let BuildEvent::TxExecuted { tx_hash, success, .. } = executed[0] else { unreachable!() }; + assert_eq!(*tx_hash, *tx.tx_hash(), "TxExecuted should report the submitted tx hash"); + assert!(*success, "submitted transfer should succeed"); + + let payload_ids: HashSet<_> = events + .iter() + .map(|event| match event { + BuildEvent::IterationStart { payload_id, .. } + | BuildEvent::TxExecuted { payload_id, .. } + | BuildEvent::IterationComplete { payload_id } + | BuildEvent::IterationAborted { payload_id } => *payload_id, + }) + .collect(); + assert_eq!(payload_ids.len(), 1, "all events must share one payload id, got {events:?}"); + + Ok(()) +} diff --git a/crates/builder/intent-swap/Cargo.toml b/crates/builder/intent-swap/Cargo.toml new file mode 100644 index 0000000000..128ff0e15d --- /dev/null +++ b/crates/builder/intent-swap/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = "base-intent-swap" +description = "Intent-swap extension: solve signed Fusion orders against pending state and include settlements in the current block" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true + +[lints] +workspace = true + +[dependencies] +# base +backrunner.workspace = true +builder-types.workspace = true +base-node-runner.workspace = true +base-builder-core.workspace = true +base-execution-txpool.workspace = true +base-common-consensus = { workspace = true, features = ["reth", "k256"] } + +# reth +reth-provider.workspace = true +reth-payload-builder.workspace = true +reth-transaction-pool.workspace = true + +# alloy +alloy-eips.workspace = true +alloy-signer.workspace = true +alloy-consensus.workspace = true +alloy-primitives.workspace = true +alloy-signer-local.workspace = true + +# misc +eyre.workspace = true +uuid.workspace = true +serde.workspace = true +tracing.workspace = true +async-trait.workspace = true +jsonrpsee = { workspace = true, features = ["server", "macros"] } +tokio = { workspace = true, features = ["sync", "macros", "rt"] } + +[dev-dependencies] +serde_json.workspace = true diff --git a/crates/builder/intent-swap/README.md b/crates/builder/intent-swap/README.md new file mode 100644 index 0000000000..fe37554753 --- /dev/null +++ b/crates/builder/intent-swap/README.md @@ -0,0 +1,59 @@ +# `base-intent-swap` + +Intent-swap extension for the Base builder. Registers an `intent_submitOrder` RPC that +accepts signed 1inch Fusion orders, solves each order on arrival against committed AMM +state overlaid with the in-progress block's executed transactions (via the +`base-builder-core` build-event stream), and inserts the signed settlement transaction +into the builder's txpool for same-block inclusion. + +`PoC` scope: no metrics, no order-status RPC (outcomes are logged), shadow-mode validation. + +## Running (Base mainnet shadow) + +The base repo has **no built-in shadow/non-proposing mode**: the builder builds blocks +only when driven by engine-API forkchoice updates with payload attributes. For shadow +validation you need an op-node (sequencer-mode, `--sequencer.stopped=false` variant +pointed ONLY at this builder, never publishing) or an FCU-replay harness driving the +engine API against a Base-mainnet-synced datadir. Set that up per your infra; the +builder side needs: + +```sh +INTENT_SWAP_EOA_KEY=0x... \ +INTENT_SWAP_TYCHO_API_KEY=... \ +base-builder node \ + --builder.intent-swap.enabled \ + --builder.intent-swap.rpc-url https://mainnet.base.org \ + --builder.intent-swap.resolver-address 0x... \ + +``` + +Submit an order: + +```sh +curl -s -X POST -H 'Content-Type: application/json' localhost:8545 \ + -d '{"jsonrpc":"2.0","id":1,"method":"intent_submitOrder","params":[{...FusionOrder json...}]}' +``` + +Watch for `fusion order accepted` → `solved: settlement inserted` (with tx hash and +profit) or `unfillable: ...` in the logs. Verify settlement success independently via +`eth_call` against the parent block (see `pending_sim`'s `validate_settle` in the +builder-integration repo). Notes: 1inch LOP v4 is at the same address on Base; the +resolver contract + EOA whitelisting must exist on Base before fills can land. + +## Build notes + +- `Cargo.lock` deliberately pins `tycho-common`, `tycho-simulation`, and + `tycho-execution` at `0.305.1`. `fynd-core` `0.81.1` declares open `tycho` + ranges (`>=0.304`), but does not actually compile against the latest + `0.339.x`, so regenerating the lockfile (e.g. `cargo generate-lockfile`) + will still break the build. Use `cargo check --workspace` to update the + lockfile in-place instead. +- The `backrunner`/`builder-types` git dependencies use `ssh://` URLs, so building + requires `GitHub` SSH access. If Cargo's built-in (libssh) transport can't reach + your `ssh-agent`, add this to `.cargo/config.toml` (not committed) to shell out + to the system `git` CLI instead: + + ```toml + [net] + git-fetch-with-cli = true + ``` diff --git a/crates/builder/intent-swap/src/config.rs b/crates/builder/intent-swap/src/config.rs new file mode 100644 index 0000000000..aa07498ec7 --- /dev/null +++ b/crates/builder/intent-swap/src/config.rs @@ -0,0 +1,95 @@ +//! Configuration for the intent-swap extension. + +use std::time::Duration; + +use alloy_primitives::Address; + +/// Configuration for the intent-swap engine and RPC. +#[derive(Clone)] +pub struct IntentSwapConfig { + /// Tycho WebSocket host (e.g. `"tycho-beta.propellerheads.xyz"`). + pub tycho_url: String, + /// Tycho API key. + pub tycho_api_key: Option, + /// JSON-RPC URL of the chain, used by the engine for on-chain order queries. + pub rpc_url: String, + /// Tycho protocol slugs to subscribe to. + pub protocols: Vec, + /// Fusion resolver contract address settlements are routed through. + pub resolver_address: Address, + /// Chain slug for Tycho market data (e.g. `"base"`). + pub chain: String, + /// 1inch Fusion chain id (Base = 8453). + pub chain_id: u64, + /// Minimum pool TVL filter for Tycho subscriptions. + pub min_tvl: f64, + /// Route slippage tolerance (e.g. 0.005 = 0.5%). + pub slippage: f64, + /// EOA private key (0x-hex) used to sign settlement transactions. + pub eoa_private_key: String, + /// Capacity of the submitted-order queue. + pub order_queue_capacity: usize, + /// How long to wait for the initial Tycho market snapshot. + pub ready_timeout: Duration, + /// Interval for the engine's background orderbook poll (kept high; unused for solving). + pub orderbook_interval: Duration, + /// Enables the LOP on-chain preflight (`getTakingAmount` via `eth_call`) that rejects + /// unfillable or unauthentic orders before the operator signs and pays gas to submit a + /// settlement. `intent_submitOrder` performs no maker-signature authentication itself + /// (deferred to the on-chain LOP by design), so this is the only check that runs before + /// spending operator funds. Costs one extra RPC call per candidate; off by default to + /// preserve existing behavior. + pub verify_onchain_taking: bool, +} + +impl std::fmt::Debug for IntentSwapConfig { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("IntentSwapConfig") + .field("tycho_url", &self.tycho_url) + .field("tycho_api_key", &self.tycho_api_key) + .field("rpc_url", &self.rpc_url) + .field("protocols", &self.protocols) + .field("resolver_address", &self.resolver_address) + .field("chain", &self.chain) + .field("chain_id", &self.chain_id) + .field("min_tvl", &self.min_tvl) + .field("slippage", &self.slippage) + .field("eoa_private_key", &"") + .field("order_queue_capacity", &self.order_queue_capacity) + .field("ready_timeout", &self.ready_timeout) + .field("orderbook_interval", &self.orderbook_interval) + .field("verify_onchain_taking", &self.verify_onchain_taking) + .finish() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn debug_redacts_eoa_private_key() { + let config = IntentSwapConfig { + tycho_url: "tycho-beta.propellerheads.xyz".to_string(), + tycho_api_key: None, + rpc_url: "http://localhost:8545".to_string(), + protocols: vec!["uniswap_v2".to_string()], + resolver_address: Address::ZERO, + chain: "base".to_string(), + chain_id: 8453, + min_tvl: 10.0, + slippage: 0.005, + eoa_private_key: "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" + .to_string(), + order_queue_capacity: 64, + ready_timeout: Duration::from_secs(30), + orderbook_interval: Duration::from_secs(60), + verify_onchain_taking: false, + }; + + let debug_output = format!("{config:?}"); + + assert!(!debug_output.contains("deadbeef")); + assert!(debug_output.contains("redacted")); + } +} diff --git a/crates/builder/intent-swap/src/convert.rs b/crates/builder/intent-swap/src/convert.rs new file mode 100644 index 0000000000..ac446bc439 --- /dev/null +++ b/crates/builder/intent-swap/src/convert.rs @@ -0,0 +1,103 @@ +//! Conversions between base-builder-core events, builder-types, and signed transactions. + +use alloy_consensus::{ + SignableTransaction, TxEip1559, TxEnvelope, + transaction::{Recovered, SignerRecoverable}, +}; +use alloy_primitives::TxKind; +use alloy_signer::SignerSync; +use alloy_signer_local::PrivateKeySigner; +use base_builder_core::BuildEvent; +use base_common_consensus::BaseTransactionSigned; +use builder_types::{BlockEnv, ExecutedTx, RawTx}; +use reth_payload_builder::PayloadId; +use uuid::Uuid; + +/// Derives a stable UUID from a payload id (payload ids are 8 bytes; zero-padded to 16). +pub fn payload_uuid(payload_id: PayloadId) -> Uuid { + let mut bytes = [0u8; 16]; + bytes[..8].copy_from_slice(payload_id.0.as_slice()); + Uuid::from_bytes(bytes) +} + +/// Converts an `IterationStart` event's fields into a builder-types [`BlockEnv`]. +pub const fn to_block_env(block_number: u64, timestamp: u64, base_fee: u64) -> BlockEnv { + BlockEnv { block_number, block_timestamp: timestamp, base_fee_per_gas: base_fee } +} + +/// Converts a `TxExecuted` build event into a builder-types [`ExecutedTx`]. +/// +/// Returns `None` for non-`TxExecuted` variants. +pub fn to_executed_tx(event: &BuildEvent) -> Option { + let BuildEvent::TxExecuted { tx_hash, from, to, logs, gas_used, success, .. } = event else { + return None; + }; + Some(ExecutedTx { + tx_hash: *tx_hash, + from: *from, + to: *to, + logs: logs.clone(), + gas_used: *gas_used, + status: *success, + }) +} + +/// Builds and signs an EIP-1559 transaction from a settlement [`RawTx`], returning it as +/// a base-chain [`BaseTransactionSigned`] with the recovered signer attached. +pub fn raw_tx_to_signed( + raw: &RawTx, + chain_id: u64, + nonce: u64, + signer: &PrivateKeySigner, +) -> eyre::Result> { + let tx = TxEip1559 { + chain_id, + nonce, + gas_limit: raw.gas_limit, + max_fee_per_gas: raw.max_fee_per_gas, + max_priority_fee_per_gas: raw.max_priority_fee_per_gas, + to: raw.to.map_or(TxKind::Create, TxKind::Call), + value: raw.value, + access_list: Default::default(), + input: raw.data.clone(), + }; + let signature = signer.sign_hash_sync(&tx.signature_hash())?; + let envelope = TxEnvelope::Eip1559(tx.into_signed(signature)); + let base_tx = BaseTransactionSigned::try_from(envelope) + .map_err(|_| eyre::eyre!("EIP-1559 settlement rejected by base envelope conversion"))?; + base_tx + .try_into_recovered() + .map_err(|e| eyre::eyre!("failed to recover settlement signer: {e}")) +} + +#[cfg(test)] +mod tests { + use alloy_primitives::{Bytes, U256}; + use alloy_signer_local::PrivateKeySigner; + use reth_payload_builder::PayloadId; + + use super::*; + + #[test] + fn payload_uuid_is_deterministic_and_distinct() { + let a = PayloadId::new([1, 2, 3, 4, 5, 6, 7, 8]); + let b = PayloadId::new([1, 2, 3, 4, 5, 6, 7, 9]); + assert_eq!(payload_uuid(a), payload_uuid(a)); + assert_ne!(payload_uuid(a), payload_uuid(b)); + } + + #[test] + fn signed_raw_tx_roundtrips_with_correct_sender() { + let signer = PrivateKeySigner::random(); + let raw = builder_types::RawTx { + to: Some(alloy_primitives::Address::repeat_byte(0x42)), + value: U256::ZERO, + data: Bytes::from(vec![0xca, 0xfe]), + gas_limit: 500_000, + max_fee_per_gas: 2_000_000_000, + max_priority_fee_per_gas: 100_000_000, + }; + let recovered = raw_tx_to_signed(&raw, 8453, 7, &signer).expect("sign"); + assert_eq!(recovered.signer(), signer.address()); + } +} diff --git a/crates/builder/intent-swap/src/engine.rs b/crates/builder/intent-swap/src/engine.rs new file mode 100644 index 0000000000..3beffd94df --- /dev/null +++ b/crates/builder/intent-swap/src/engine.rs @@ -0,0 +1,308 @@ +//! Intent-swap engine: consumes build events + submitted orders, solves, signs, inserts. + +use alloy_consensus::transaction::Recovered; +use alloy_eips::Encodable2718; +use alloy_primitives::B256; +use alloy_signer_local::PrivateKeySigner; +use backrunner::{Backrunner, BackrunnerConfig, FusionOrder}; +use base_builder_core::BuildEvent; +use base_common_consensus::BaseTransactionSigned; +use base_execution_txpool::BasePooledTransaction; +use builder_types::{BlockEnv, ExecutedTx}; +use reth_transaction_pool::TransactionPool; +use tokio::sync::mpsc; +use tracing::{debug, error, info, warn}; +use uuid::Uuid; + +use crate::{ + IntentSwapConfig, + convert::{payload_uuid, raw_tx_to_signed, to_block_env, to_executed_tx}, +}; + +/// State of the in-progress block build, accumulated from build events. +#[derive(Debug, Default)] +struct Iteration { + uuid: Option, + block: Option, + txs: Vec, +} + +impl Iteration { + /// Applies one build event to the iteration state. + fn apply(&mut self, event: BuildEvent) { + match event { + BuildEvent::IterationStart { payload_id, block_number, timestamp, base_fee } => { + debug!(block = block_number, "iteration started"); + *self = Self { + uuid: Some(payload_uuid(payload_id)), + block: Some(to_block_env(block_number, timestamp, base_fee)), + txs: Vec::new(), + }; + } + BuildEvent::TxExecuted { payload_id, .. } => { + if self.uuid == Some(payload_uuid(payload_id)) + && let Some(tx) = to_executed_tx(&event) + { + self.txs.push(tx); + } + } + BuildEvent::IterationComplete { .. } | BuildEvent::IterationAborted { .. } => { + // cleared so committed/aborted txs don't overlay the next solve + self.txs.clear(); + } + } + } +} + +/// The intent-swap engine: one long-running task owning the backrunner solver. +pub struct IntentSwapEngine { + backrunner: Backrunner, + signer: PrivateKeySigner, + chain_id: u64, +} + +impl std::fmt::Debug for IntentSwapEngine { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("IntentSwapEngine").field("chain_id", &self.chain_id).finish_non_exhaustive() + } +} + +impl IntentSwapEngine { + /// Builds the engine: parses the signer key and waits for the initial Tycho snapshot. + pub async fn build(config: IntentSwapConfig) -> eyre::Result { + let signer: PrivateKeySigner = config + .eoa_private_key + .parse() + .map_err(|e| eyre::eyre!("invalid intent-swap EOA key: {e}"))?; + let backrunner_config = BackrunnerConfig { + chain: config.chain.clone(), + tycho_url: config.tycho_url.clone(), + rpc_url: config.rpc_url.clone(), + tycho_api_key: config.tycho_api_key.clone(), + protocols: config.protocols.clone(), + min_tvl: config.min_tvl, + ready_timeout: config.ready_timeout, + chain_id: config.chain_id, + resolver_address: config.resolver_address, + slippage: config.slippage, + orderbook_interval: config.orderbook_interval, + verify_onchain_taking: config.verify_onchain_taking, + }; + let backrunner = Backrunner::build(backrunner_config).await?; + info!("intent-swap engine ready"); + Ok(Self { backrunner, signer, chain_id: config.chain_id }) + } + + /// Runs the engine loop until both channels close. + pub async fn run

( + self, + mut events: mpsc::Receiver, + mut orders: mpsc::Receiver, + pool: P, + initial_nonce: u64, + ) where + P: TransactionPool + Send + Sync + 'static, + { + let mut iteration = Iteration::default(); + let mut events_closed = false; + let mut orders_closed = false; + while !(events_closed && orders_closed) { + tokio::select! { + event = events.recv(), if !events_closed => { + match event { + Some(event) => { + self.log_settlement_inclusion(&iteration, &event); + iteration.apply(event); + } + None => { + debug!(channel = "events", "channel closed"); + events_closed = true; + } + } + } + order = orders.recv(), if !orders_closed => { + match order { + Some(order) => { + self.solve_and_insert(&iteration, order, &pool, initial_nonce).await; + } + None => { + debug!(channel = "orders", "channel closed"); + orders_closed = true; + } + } + } + } + } + info!("intent-swap engine shutting down"); + } + + /// Logs a `TxExecuted` event whose sender is this engine's signer: a settlement + /// this engine submitted has been included in the in-progress block. + fn log_settlement_inclusion(&self, iteration: &Iteration, event: &BuildEvent) { + let BuildEvent::TxExecuted { from, tx_hash, .. } = event else { + return; + }; + if *from != self.signer.address() { + return; + } + let block = iteration.block.as_ref().map(|b| b.block_number); + info!(tx_hash = %tx_hash, block = ?block, "settlement included"); + } + + /// Solves one order against the current iteration state and inserts settlements. + async fn solve_and_insert

( + &self, + iteration: &Iteration, + order: FusionOrder, + pool: &P, + initial_nonce: u64, + ) where + P: TransactionPool + Send + Sync + 'static, + { + let order_hash = order.order_id.clone(); + let (Some(uuid), Some(block)) = (iteration.uuid, iteration.block.clone()) else { + warn!(order_hash = %order_hash, "no build iteration observed yet, dropping order"); + return; + }; + let candidate = self + .backrunner + .solve_orders(uuid, block, iteration.txs.clone(), std::slice::from_ref(&order)) + .await; + let Some(candidate) = candidate else { + info!(order_hash = %order_hash, "unfillable: no profitable route"); + return; + }; + // pool holds this signer's next nonce; chain locally within the candidate + let mut nonce = pool + .get_highest_transaction_by_sender(self.signer.address()) + .map_or(initial_nonce, |tx| tx.nonce() + 1); + for backrun_tx in &candidate.txs { + let signed = raw_tx_to_signed(&backrun_tx.tx, self.chain_id, nonce, &self.signer); + let signed = match signed { + Ok(signed) => signed, + Err(e) => { + error!(order_hash = %order_hash, error = %e, "failed to sign settlement"); + continue; + } + }; + match Self::insert(pool, signed).await { + Ok(tx_hash) => { + nonce += 1; + info!( + order_hash = %order_hash, + tx_hash = %tx_hash, + profit_wei = %backrun_tx.expected_profit_wei, + block = candidate.block_number, + "settlement queued", + ); + } + Err(e) => { + error!(order_hash = %order_hash, error = %e, "pool rejected settlement"); + } + } + } + } + + /// Inserts a signed settlement into the pool (same path as + /// `base_insertValidatedTransaction`). + async fn insert

(pool: &P, tx: Recovered) -> eyre::Result + where + P: TransactionPool + Send + Sync + 'static, + { + let tx_hash = *tx.hash(); + let encoded_length = tx.encoded_2718().len(); + let pool_tx = BasePooledTransaction::new(tx, encoded_length); + pool.add_external_transaction(pool_tx) + .await + .map_err(|e| eyre::eyre!("pool insert failed: {e}"))?; + Ok(tx_hash) + } +} + +#[cfg(test)] +mod tests { + use alloy_primitives::Address; + use reth_payload_builder::PayloadId; + + use super::*; + + fn start_event(payload_id: [u8; 8], block_number: u64) -> BuildEvent { + BuildEvent::IterationStart { + payload_id: PayloadId::new(payload_id), + block_number, + timestamp: 1_000, + base_fee: 7, + } + } + + fn tx_event(payload_id: [u8; 8]) -> BuildEvent { + BuildEvent::TxExecuted { + payload_id: PayloadId::new(payload_id), + tx_hash: B256::repeat_byte(0xaa), + from: Address::repeat_byte(0x11), + to: Some(Address::repeat_byte(0x22)), + logs: Vec::new(), + gas_used: 21_000, + success: true, + } + } + + #[test] + fn iteration_start_replaces_state() { + let mut iteration = Iteration::default(); + iteration.txs.push(to_executed_tx(&tx_event([1; 8])).expect("tx event")); + + iteration.apply(start_event([2; 8], 42)); + + assert_eq!(iteration.uuid, Some(payload_uuid(PayloadId::new([2; 8])))); + assert_eq!(iteration.block.as_ref().map(|b| b.block_number), Some(42)); + assert!(iteration.txs.is_empty()); + } + + #[test] + fn tx_executed_accumulates_for_matching_payload_id() { + let mut iteration = Iteration::default(); + iteration.apply(start_event([3; 8], 1)); + + iteration.apply(tx_event([3; 8])); + iteration.apply(tx_event([3; 8])); + + assert_eq!(iteration.txs.len(), 2); + } + + #[test] + fn tx_executed_with_stale_payload_id_is_dropped() { + let mut iteration = Iteration::default(); + iteration.apply(start_event([4; 8], 1)); + + iteration.apply(tx_event([5; 8])); + + assert!(iteration.txs.is_empty()); + } + + #[test] + fn iteration_complete_clears_txs_but_keeps_uuid_and_block() { + let mut iteration = Iteration::default(); + iteration.apply(start_event([6; 8], 9)); + iteration.apply(tx_event([6; 8])); + + iteration.apply(BuildEvent::IterationComplete { payload_id: PayloadId::new([6; 8]) }); + + assert!(iteration.txs.is_empty()); + assert_eq!(iteration.uuid, Some(payload_uuid(PayloadId::new([6; 8])))); + assert_eq!(iteration.block.as_ref().map(|b| b.block_number), Some(9)); + } + + #[test] + fn iteration_aborted_clears_txs_but_keeps_uuid_and_block() { + let mut iteration = Iteration::default(); + iteration.apply(start_event([7; 8], 3)); + iteration.apply(tx_event([7; 8])); + + iteration.apply(BuildEvent::IterationAborted { payload_id: PayloadId::new([7; 8]) }); + + assert!(iteration.txs.is_empty()); + assert_eq!(iteration.uuid, Some(payload_uuid(PayloadId::new([7; 8])))); + assert_eq!(iteration.block.as_ref().map(|b| b.block_number), Some(3)); + } +} diff --git a/crates/builder/intent-swap/src/extension.rs b/crates/builder/intent-swap/src/extension.rs new file mode 100644 index 0000000000..28545290ba --- /dev/null +++ b/crates/builder/intent-swap/src/extension.rs @@ -0,0 +1,60 @@ +//! Node extension registering the intent RPC and spawning the engine task. + +use base_builder_core::BuildEvent; +use base_node_runner::{BaseNodeExtension, BaseRpcContext, FromExtensionConfig, NodeHooks}; +use reth_provider::StateProviderFactory; +use tokio::sync::mpsc; +use tracing::{error, info}; + +use crate::{IntentApiImpl, IntentApiServer, IntentSwapConfig, IntentSwapEngine}; + +/// Extension that registers the `intent_` RPC namespace and spawns the intent-swap engine. +#[derive(Debug)] +pub struct IntentSwapExtension { + config: IntentSwapConfig, + event_rx: mpsc::Receiver, +} + +impl FromExtensionConfig for IntentSwapExtension { + type Config = (IntentSwapConfig, mpsc::Receiver); + + fn from_config((config, event_rx): Self::Config) -> Self { + Self { config, event_rx } + } +} + +impl BaseNodeExtension for IntentSwapExtension { + fn apply(self: Box, hooks: NodeHooks) -> NodeHooks { + let Self { config, event_rx } = *self; + let (order_tx, order_rx) = mpsc::channel(config.order_queue_capacity); + + let hooks = hooks.add_rpc_module(move |ctx: &mut BaseRpcContext<'_>| { + let api = IntentApiImpl::new(order_tx); + ctx.modules.merge_configured(api.into_rpc())?; + info!("intent_submitOrder RPC enabled"); + Ok(()) + }); + + hooks.add_node_started_hook(move |ctx| { + let pool = ctx.pool().clone(); + let signer_address = config + .eoa_private_key + .parse::() + .map(|s| s.address()) + .map_err(|e| eyre::eyre!("invalid intent-swap EOA key: {e}"))?; + let initial_nonce = + ctx.provider().latest()?.account_nonce(&signer_address)?.unwrap_or(0); + ctx.task_executor.spawn_critical_task("intent-swap-engine", async move { + match IntentSwapEngine::build(config).await { + Ok(engine) => engine.run(event_rx, order_rx, pool, initial_nonce).await, + Err(e) => { + error!(error = %e, "intent-swap engine failed to start"); + panic!("intent-swap engine failed to start: {e}"); + } + } + }); + info!("intent-swap engine task spawned"); + Ok(()) + }) + } +} diff --git a/crates/builder/intent-swap/src/lib.rs b/crates/builder/intent-swap/src/lib.rs new file mode 100644 index 0000000000..d92f7a94c2 --- /dev/null +++ b/crates/builder/intent-swap/src/lib.rs @@ -0,0 +1,22 @@ +#![doc = include_str!("../README.md")] +#![doc(issue_tracker_base_url = "https://github.com/base/base/issues/")] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +#![cfg_attr(not(test), warn(unused_crate_dependencies))] + +mod config; +pub use config::IntentSwapConfig; + +mod rpc; +pub use rpc::{ + ENGINE_UNAVAILABLE_CODE, INVALID_ORDER_CODE, INVALID_SIGNATURE_CODE, IntentApiImpl, + IntentApiServer, ORDER_EXPIRED_CODE, QUEUE_FULL_CODE, SubmitOrderResponse, +}; + +mod convert; +pub use convert::{payload_uuid, raw_tx_to_signed, to_block_env, to_executed_tx}; + +mod engine; +pub use engine::IntentSwapEngine; + +mod extension; +pub use extension::IntentSwapExtension; diff --git a/crates/builder/intent-swap/src/rpc.rs b/crates/builder/intent-swap/src/rpc.rs new file mode 100644 index 0000000000..fccf0716e8 --- /dev/null +++ b/crates/builder/intent-swap/src/rpc.rs @@ -0,0 +1,219 @@ +//! `intent_` RPC namespace: signed Fusion order ingress. + +use std::time::{SystemTime, UNIX_EPOCH}; + +use backrunner::FusionOrder; +use jsonrpsee::{ + core::RpcResult, + proc_macros::rpc, + types::{ErrorObject, ErrorObjectOwned}, +}; +use serde::{Deserialize, Serialize}; +use tokio::sync::{mpsc, mpsc::error::TrySendError}; +use tracing::info; + +/// JSON-RPC error code: signature is not a 65-byte 0x-hex string. +pub const INVALID_SIGNATURE_CODE: i32 = -33001; +/// JSON-RPC error code: the order's Dutch auction window has ended. +pub const ORDER_EXPIRED_CODE: i32 = -33002; +/// JSON-RPC error code: structurally invalid order (malformed order id, zero amount). +pub const INVALID_ORDER_CODE: i32 = -33003; +/// JSON-RPC error code: intake queue is full; retry later. +pub const QUEUE_FULL_CODE: i32 = -33004; +/// JSON-RPC error code: the engine's order channel has been dropped. +pub const ENGINE_UNAVAILABLE_CODE: i32 = -33005; + +/// Response to a successful order submission. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SubmitOrderResponse { + /// Hash/id of the accepted order. + pub order_hash: String, + /// Always `"accepted"`; solving happens asynchronously. + pub status: String, +} + +/// RPC interface for submitting signed Fusion orders to the intent-swap engine. +#[rpc(server, namespace = "intent")] +pub trait IntentApi { + /// Validates and enqueues a signed Fusion order for immediate solving. + #[method(name = "submitOrder")] + async fn submit_order(&self, order: FusionOrder) -> RpcResult; +} + +/// Implementation of [`IntentApiServer`] that forwards accepted orders to the engine. +#[derive(Debug)] +pub struct IntentApiImpl { + orders: mpsc::Sender, +} + +impl IntentApiImpl { + /// Creates a new API handing accepted orders to `orders`. + pub const fn new(orders: mpsc::Sender) -> Self { + Self { orders } + } +} + +/// Validates order shape and auction window; returns a structured RPC error on failure. +fn validate(order: &FusionOrder) -> Result<(), ErrorObjectOwned> { + let sig = order.signature.strip_prefix("0x").unwrap_or(&order.signature); + if sig.len() != 130 || alloy_primitives::hex::decode(sig).is_err() { + return Err(ErrorObject::owned( + INVALID_SIGNATURE_CODE, + "signature must be 65 bytes of 0x-hex", + None::<()>, + )); + } + let id = order.order_id.strip_prefix("0x").unwrap_or(""); + if id.len() != 64 || !id.bytes().all(|b| b.is_ascii_hexdigit()) { + return Err(ErrorObject::owned( + INVALID_ORDER_CODE, + "order_id must be a 32-byte 0x-hex order hash", + None::<()>, + )); + } + if order.making_amount.is_zero() { + return Err(ErrorObject::owned(INVALID_ORDER_CODE, "making_amount is zero", None::<()>)); + } + let now = SystemTime::now().duration_since(UNIX_EPOCH).unwrap_or_default().as_secs(); + if order.auction_start_time.saturating_add(order.auction_duration_secs) < now { + return Err(ErrorObject::owned(ORDER_EXPIRED_CODE, "auction window has ended", None::<()>)); + } + Ok(()) +} + +#[async_trait::async_trait] +impl IntentApiServer for IntentApiImpl { + async fn submit_order(&self, order: FusionOrder) -> RpcResult { + validate(&order)?; + let order_hash = order.order_id.clone(); + self.orders.try_send(order).map_err(|e| match e { + TrySendError::Full(_) => { + ErrorObject::owned(QUEUE_FULL_CODE, "order queue full, retry later", None::<()>) + } + TrySendError::Closed(_) => { + ErrorObject::owned(ENGINE_UNAVAILABLE_CODE, "engine unavailable", None::<()>) + } + })?; + info!(order_hash = %order_hash, "fusion order accepted"); + Ok(SubmitOrderResponse { order_hash, status: "accepted".to_owned() }) + } +} + +#[cfg(test)] +mod tests { + use tokio::sync::mpsc; + + use super::*; + + fn valid_order() -> backrunner::FusionOrder { + // Minimal structurally-valid order: 65-byte signature, active auction, non-zero amount. + let now = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .expect("clock") + .as_secs(); + serde_json::from_value(serde_json::json!({ + "order_id": format!("0x{}", "ab".repeat(32)), + "from_token": "0x4200000000000000000000000000000000000006", + "to_token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "making_amount": "0x0de0b6b3a7640000", + "auction_start_amount": "0x0f4240", + "auction_end_amount": "0x0e4e1c", + "auction_duration_secs": 180, + "auction_start_time": now, + "points": [], + "from_token_symbol": null, + "to_token_symbol": null, + "from_token_decimals": 18, + "to_token_decimals": 6, + "from_token_usd_rate": 0.0, + "to_token_usd_rate": 0.0, + "gas_bump_estimate": 0, + "gas_price_estimate_mwei": 0, + "init_rate_bump": 0, + "total_fees_1e5": 0, + "signature": format!("0x{}", "11".repeat(65)), + "extension": "0x", + "salt": "1", + "maker_address": "0x0000000000000000000000000000000000000001", + "receiver_address": "0x0000000000000000000000000000000000000001", + "maker_traits": "0" + })) + .expect("valid order json") + } + + #[tokio::test] + async fn accepts_valid_order() { + let (tx, mut rx) = mpsc::channel(4); + let api = IntentApiImpl::new(tx); + let resp = api.submit_order(valid_order()).await.expect("accepted"); + assert_eq!(resp.status, "accepted"); + assert_eq!(resp.order_hash, format!("0x{}", "ab".repeat(32))); + assert!(rx.try_recv().is_ok()); + } + + #[tokio::test] + async fn rejects_order_id_that_is_not_a_32_byte_hash() { + let (tx, _rx) = mpsc::channel(4); + let api = IntentApiImpl::new(tx); + for order_id in [ + "", + "0xabc123", + &format!("0x{}", "ab".repeat(33)), + "0xdemo000000000000000000000000000000000000000000000000000000face", + &format!("0x{}", "ab".repeat(32))[2..], + ] { + let mut order = valid_order(); + order.order_id = order_id.to_owned(); + let err = api.submit_order(order).await.expect_err("must reject"); + assert_eq!(err.code(), INVALID_ORDER_CODE, "order_id: {order_id}"); + } + } + + #[tokio::test] + async fn rejects_malformed_signature() { + let (tx, _rx) = mpsc::channel(4); + let api = IntentApiImpl::new(tx); + let mut order = valid_order(); + order.signature = "0xdead".to_owned(); + let err = api.submit_order(order).await.expect_err("must reject"); + assert_eq!(err.code(), INVALID_SIGNATURE_CODE); + } + + #[tokio::test] + async fn rejects_expired_auction() { + let (tx, _rx) = mpsc::channel(4); + let api = IntentApiImpl::new(tx); + let mut order = valid_order(); + order.auction_start_time = 1_000_000; // long past + let err = api.submit_order(order).await.expect_err("must reject"); + assert_eq!(err.code(), ORDER_EXPIRED_CODE); + } + + #[tokio::test] + async fn rejects_zero_making_amount() { + let (tx, _rx) = mpsc::channel(4); + let api = IntentApiImpl::new(tx); + let mut order = valid_order(); + order.making_amount = alloy_primitives::U256::ZERO; + let err = api.submit_order(order).await.expect_err("must reject"); + assert_eq!(err.code(), INVALID_ORDER_CODE); + } + + #[tokio::test] + async fn rejects_when_queue_full() { + let (tx, _rx) = mpsc::channel(1); + let api = IntentApiImpl::new(tx); + api.submit_order(valid_order()).await.expect("first accepted"); + let err = api.submit_order(valid_order()).await.expect_err("queue full"); + assert_eq!(err.code(), QUEUE_FULL_CODE); + } + + #[tokio::test] + async fn rejects_when_engine_unavailable() { + let (tx, rx) = mpsc::channel(4); + drop(rx); + let api = IntentApiImpl::new(tx); + let err = api.submit_order(valid_order()).await.expect_err("engine gone"); + assert_eq!(err.code(), ENGINE_UNAVAILABLE_CODE); + } +} diff --git a/etc/systems/src/l2/in_process_builder.rs b/etc/systems/src/l2/in_process_builder.rs index 8ebc344ba5..0f95fb8043 100644 --- a/etc/systems/src/l2/in_process_builder.rs +++ b/etc/systems/src/l2/in_process_builder.rs @@ -110,6 +110,7 @@ impl InProcessBuilder { block_time: Duration::from_millis(2000), flashblocks_ws_addr: SocketAddr::new(Ipv4Addr::LOCALHOST.into(), flashblocks_port), flashblocks_interval: Duration::from_millis(200), + build_event_tx: None, ..Default::default() };