From c12affb3caceb63579dca690700fa089fd85d8a4 Mon Sep 17 00:00:00 2001 From: TAMARA LIPOWSKI Date: Wed, 3 Sep 2025 00:16:32 -0400 Subject: [PATCH] docs: Add README and logging to match python package - The readme is useful for us during development. This should be eventually removed and replaced with gitbook docs. --- protocol-testing/Cargo.lock | 663 +++++++++++++++------------- protocol-testing/Cargo.toml | 4 +- protocol-testing/README.md | 144 ++++++ protocol-testing/src/main.rs | 2 +- protocol-testing/src/test_runner.rs | 51 ++- protocol-testing/src/tycho_rpc.rs | 12 +- 6 files changed, 548 insertions(+), 328 deletions(-) create mode 100644 protocol-testing/README.md diff --git a/protocol-testing/Cargo.lock b/protocol-testing/Cargo.lock index 14fde01..3be8058 100644 --- a/protocol-testing/Cargo.lock +++ b/protocol-testing/Cargo.lock @@ -58,9 +58,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7413bbf62c40b5db916ad5a1c382df1affe42080e148d69932bb7f0a12f32e" +checksum = "5b6b7b6a501cba311fdb8f7d7798a6d9ca8a5bec16609f1629efeafbac68476e" dependencies = [ "alloy-consensus", "alloy-contract", @@ -93,9 +93,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7345077623aaa080fc06735ac13b8fa335125c8550f9c4f64135a5bf6f79967" +checksum = "fec84ecc0f92bb13b2955d04d3d6bd638415f17069f7ed802de819642fa3a73c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -106,12 +106,12 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more", + "derive_more 2.0.1", "either", "k256", "once_cell", "rand 0.8.5", - "secp256k1 0.30.0", + "secp256k1", "serde", "serde_with", "thiserror 2.0.12", @@ -119,9 +119,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501f83565d28bdb9d6457dd3b5d646e19db37709d0f27608a26a1839052ddade" +checksum = "e7e953646f3d5bde9ddf26a0387a35e435044f8728602dc1cb5b9f5cadb642bd" dependencies = [ "alloy-consensus", "alloy-eips", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c36bb4173892aeeba1c6b9e4eff923fa3fe8583f6d3e07afe1cbc5a96a853a" +checksum = "25a411d7b472b11ceb953741faf26bad31dcac8236e2df84078951a6951561c4" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -178,7 +178,7 @@ dependencies = [ "alloy-sol-type-parser", "alloy-sol-types", "arbitrary", - "derive_more", + "derive_more 2.0.1", "itoa", "proptest", "serde", @@ -231,9 +231,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c219a87fb386a75780ddbdbbced242477321887e426b0f946c05815ceabe5e09" +checksum = "9d9ebd288f87aa496179b83471f5b00bcd01def4048714234d3ddbf97a6b9dd2" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -244,7 +244,7 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more", + "derive_more 2.0.1", "either", "serde", "serde_with", @@ -254,9 +254,9 @@ dependencies = [ [[package]] name = "alloy-ens" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d26f6a373a0def1aabf695fc70317d2e561052e22cb5e0924220ae6306a9b35" +checksum = "e7b4cdb349c1d2fb1b3725b03dde418263fd03ffff09d34e4b501e9bb9c5f415" dependencies = [ "alloy-primitives", ] @@ -274,7 +274,7 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", - "derive_more", + "derive_more 2.0.1", "op-alloy-consensus", "op-revm", "revm", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dbf4c6b1b733ba0efaa6cc5f68786997a19ffcd88ff2ee2ba72fdd42594375e" +checksum = "7517225168655178328679a37691b97fb67236d798e96f9e5ccfe2c769a88b9b" dependencies = [ "alloy-eips", "alloy-primitives", @@ -322,9 +322,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334555c323fa2bb98f1d4c242b62da9de8c715557a2ed680a76cefbcac19fefd" +checksum = "5b9d9bedc5c977a179ef037ccadb2e711718118446b0a0cead3427fd5b6712b3" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -337,9 +337,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7ea377c9650203d7a7da9e8dee7f04906b49a9253f554b110edd7972e75ef34" +checksum = "30c6bffd937626c66734750f022d1808ccf6d5432969044dfde973cae99930d8" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -354,7 +354,7 @@ dependencies = [ "alloy-sol-types", "async-trait", "auto_impl", - "derive_more", + "derive_more 2.0.1", "futures-utils-wasm", "serde", "serde_json", @@ -363,9 +363,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f9ab9a9e92c49a357edaee2d35deea0a32ac8f313cfa37448f04e7e029c9d9" +checksum = "0bf37162ea3d9809750c6279e09e1012124fc797b02ffb0651974a505f7f88ff" dependencies = [ "alloy-consensus", "alloy-eips", @@ -413,7 +413,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 2.0.1", "foldhash", "getrandom 0.3.1", "hashbrown 0.15.2", @@ -434,9 +434,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a85361c88c16116defbd98053e3d267054d6b82729cdbef0236f7881590f924" +checksum = "bf52603a852c8040686e45649f1211987fa6c96885174a5c4a31a1e07c1ddef7" dependencies = [ "alloy-chains", "alloy-consensus", @@ -458,7 +458,7 @@ dependencies = [ "either", "futures 0.3.31", "futures-utils-wasm", - "lru 0.13.0", + "lru 0.16.0", "parking_lot", "pin-project", "reqwest", @@ -473,9 +473,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b1eda077b102b167effaf0c9d9109b1232948a6c7fcaff74abdb5deb562a17" +checksum = "e185d6ef25d887974c2af06bcdcc990665c6fe29ed51c38828caa6dc38cba5d4" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -517,9 +517,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743fc964abb0106e454e9e8683fb0809fb32940270ef586a58e913531360b302" +checksum = "87118d5dc24e682978fb51e3dc1cccb3ef3021e4b98825a357c3efb9256187d5" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -540,9 +540,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6445ccdc73c8a97e1794e9f0f91af52fb2bbf9ff004339a801b0293c3928abb" +checksum = "835576f756f0e99b6341eb44d2de4bf162586995819da81f808b32265953167e" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -553,9 +553,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97372c51a14a804fb9c17010e3dd6c117f7866620b264e24b64d2259be44bcdf" +checksum = "953599f7a753a6d17296c21b40e15248b69b5845e8764b2fef696e2e012a3f84" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -564,9 +564,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e214c7667f88b2f7e48eb8428eeafcbf6faecda04175c5f4d13fdb2563333ac" +checksum = "9b42dbddf7aca6b1772979c8376b5f69d3e7ff0cf6ea1013d720d860b360528f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -574,7 +574,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "arbitrary", - "derive_more", + "derive_more 2.0.1", "jsonwebtoken", "rand 0.8.5", "serde", @@ -583,9 +583,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "672286c19528007df058bafd82c67e23247b4b3ebbc538cbddc705a82d8a930f" +checksum = "0177e49c5d9dffbd8a427cbe757e202e5ef71718d5a8ae7d6858b6e3f448131b" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -596,7 +596,7 @@ dependencies = [ "alloy-serde", "alloy-sol-types", "arbitrary", - "itertools 0.13.0", + "itertools 0.14.0", "serde", "serde_json", "serde_with", @@ -605,9 +605,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53c5ea8e10ca72889476343deb98c050da7b85e119a55a2a02a9791cb8242e4" +checksum = "ed9bed2eceb467e0c772309ad00633562cb0a405a092bca8315b5c550ddd0e99" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -619,9 +619,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aae653f049267ae7e040eab6c9b9a417064ca1a6cb21e3dd59b9f1131ef048f" +checksum = "743e0fe099fe90a07215ae08413b271b8fac12fca6880c85326ce61341566e6f" dependencies = [ "alloy-primitives", "arbitrary", @@ -631,9 +631,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97cedce202f848592b96f7e891503d3adb33739c4e76904da73574290141b93" +checksum = "236cfc2c09ca2af29a2b0e622247c38e47657da97fc9636d5fbe64b6020026c6" dependencies = [ "alloy-dyn-abi", "alloy-primitives", @@ -648,9 +648,9 @@ dependencies = [ [[package]] name = "alloy-signer-ledger" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4919f44b5ed3825f2b8aa83ced97ae314c675f353e58761c023fe6a0c6cb89af" +checksum = "57fbea77a919be69743b44b482f4daa062fc31ca162eccd2a5ae1aa327c978e0" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -668,9 +668,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ae7d854db5b7cdd5b9ed7ad13d1e5e034cdd8be85ffef081f61dc6c9e18351" +checksum = "626cdb6bb897a09e74d7e502e1834eac83dc0fd94bbb4c9e2cf342dba7f037a9" dependencies = [ "alloy-consensus", "alloy-network", @@ -688,9 +688,9 @@ dependencies = [ [[package]] name = "alloy-signer-trezor" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718767e064ac213897e5f7c7f284fc15a51a3ce4adcecc98f5e276bdc6e8f716" +checksum = "292f67a5d48b4eee44be8b78126d56e100ca590f256ba1c8fdbc705be6c13741" dependencies = [ "alloy-consensus", "alloy-network", @@ -778,15 +778,15 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08b383bc903c927635e39e1dae7df2180877d93352d1abd389883665a598afc" +checksum = "a568f574d8d11fc054e3a32f19f476fdcc4db9216246b1db0b2ecad157a6f963" dependencies = [ "alloy-json-rpc", "alloy-primitives", "auto_impl", "base64 0.22.1", - "derive_more", + "derive_more 2.0.1", "futures 0.3.31", "futures-utils-wasm", "parking_lot", @@ -802,9 +802,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e58dee1f7763ef302074b645fc4f25440637c09a60e8de234b62993f06c0ae3" +checksum = "df4c00f7c7c6af5660423e6747d22f04ca7e019371eae2dc6535c17b1d636469" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -817,9 +817,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ae5c6655e5cda1227f0c70b7686ecfb8af856771deebacad8dab9a7fbc51864" +checksum = "27fc8bbd591c74fe9e8689e05e613852ace60813c7371d06ae1ee5a5c8d574cd" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -837,9 +837,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb2141958a1f13722cb20a2e01c130fb375209fa428849ae553c1518bc33a0d" +checksum = "06850fc6f244eac167bd9a43a77710d462aeef473fffc5e43676882192d58066" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -864,7 +864,7 @@ dependencies = [ "arbitrary", "arrayvec", "derive_arbitrary", - "derive_more", + "derive_more 2.0.1", "nybbles", "proptest", "proptest-derive", @@ -875,12 +875,12 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14809f908822dbff0dc472c77ca4aa129ab12e22fd9bff2dd1ef54603e68e3d" +checksum = "40696658bb1ac21f742107185fc2b0f60695598e4f16695e5bd24f4cfc0ddc29" dependencies = [ "alloy-primitives", - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.99", @@ -909,7 +909,7 @@ checksum = "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4" dependencies = [ "anstyle", "memchr", - "unicode-width 0.2.1", + "unicode-width 0.2.0", ] [[package]] @@ -1516,9 +1516,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.7.2" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" +checksum = "537c317ddf588aab15c695bf92cf55dec159b93221c074180ca3e0e5a94da415" dependencies = [ "bon-macros", "rustversion", @@ -1526,9 +1526,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.7.2" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" +checksum = "ca5abbf2d4a4c6896197c9de13d6d7cb7eff438c63dacde1dde980569cb00248" dependencies = [ "darling 0.21.3", "ident_case", @@ -1557,14 +1557,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.0" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", "serde", ] +[[package]] +name = "build_const" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" + [[package]] name = "bumpalo" version = "3.17.0" @@ -1579,9 +1585,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytecount" -version = "0.6.9" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" @@ -1622,9 +1628,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.12" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1746,7 +1752,7 @@ dependencies = [ "strsim", "terminal_size", "unicase", - "unicode-width 0.2.1", + "unicode-width 0.2.0", ] [[package]] @@ -1858,13 +1864,13 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.0" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8e18d0dca9578507f13f9803add0df13362b02c501c1c17734f0dbb52eaf0b" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ "crossterm", "unicode-segmentation", - "unicode-width 0.2.1", + "unicode-width 0.2.0", ] [[package]] @@ -1876,7 +1882,7 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width 0.2.1", + "unicode-width 0.2.0", "windows-sys 0.59.0", ] @@ -1940,9 +1946,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", @@ -1980,9 +1986,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -2023,15 +2029,14 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossterm" -version = "0.29.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ "bitflags 2.9.4", "crossterm_winapi", - "document-features", "parking_lot", - "rustix", + "rustix 0.38.44", "winapi", ] @@ -2083,12 +2088,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -2103,9 +2108,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", @@ -2125,17 +2130,18 @@ dependencies = [ "ident_case", "proc-macro2", "quote", + "serde", "strsim", "syn 2.0.99", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.11", + "darling_core 0.20.10", "quote", "syn 2.0.99", ] @@ -2253,7 +2259,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "proc-macro2", "quote", "syn 2.0.99", @@ -2269,13 +2275,34 @@ dependencies = [ "syn 2.0.99", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl 1.0.0", +] + [[package]] name = "derive_more" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "derive_more-impl", + "derive_more-impl 2.0.1", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", + "unicode-xid", ] [[package]] @@ -2355,7 +2382,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2375,15 +2402,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" -[[package]] -name = "document-features" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" -dependencies = [ - "litrs", -] - [[package]] name = "dotenv" version = "0.15.0" @@ -2398,9 +2416,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.20" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -2887,19 +2905,21 @@ dependencies = [ [[package]] name = "foundry-compilers" -version = "0.18.4" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1f8bc0a29630f1c4bbccd7a9555d72c232fef139f5ec3738fb78fff7c8992b0" +checksum = "4e953daf389ec3f8d82566cfcdadae58ca01b1bf0a7c467b2b03d447971589df" dependencies = [ "alloy-json-abi", "alloy-primitives", "auto_impl", - "derive_more", + "derive_more 1.0.0", + "dirs", "dyn-clone", "foundry-compilers-artifacts", "foundry-compilers-core", "futures-util", - "itertools 0.13.0", + "home", + "itertools 0.14.0", "path-slash", "rayon", "semver 1.0.26", @@ -2919,9 +2939,9 @@ dependencies = [ [[package]] name = "foundry-compilers-artifacts" -version = "0.18.4" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8853af381b1a06a894a09c81e1eb1a1c3bdac063830342b091ec86b773c8b99c" +checksum = "f88824bfa6a5c2d7ecd076ba232cf37532af611c764fc27bb74371a91f662c36" dependencies = [ "foundry-compilers-artifacts-solc", "foundry-compilers-artifacts-vyper", @@ -2929,9 +2949,9 @@ dependencies = [ [[package]] name = "foundry-compilers-artifacts-solc" -version = "0.18.4" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7542a600e25ad18fb8782a3314f0f204b50313b14415c30f7caff5988bf7c3c" +checksum = "55273eea0135b2d6e80d8475f660c87c855100999ce6f3e8c065e2fc55b95d7c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -2952,9 +2972,9 @@ dependencies = [ [[package]] name = "foundry-compilers-artifacts-vyper" -version = "0.18.4" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78a99e9ea726b506de49cf4efc162388a2a9968ef52ca3c25532cfaa97e77b0" +checksum = "19d0254354ec10a7fc3b5a38ea0e6d9c841c35159f9b052e0bd87769e28c00da" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -3063,7 +3083,7 @@ source = "git+https://github.com/foundry-rs/foundry?rev=5a552bb0de7126fa35170fd8 dependencies = [ "alloy-primitives", "alloy-sol-types", - "derive_more", + "derive_more 2.0.1", "foundry-common-fmt", "foundry-macros", "itertools 0.14.0", @@ -3250,6 +3270,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "fs4" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c29c30684418547d476f0b48e84f4821639119c483b1eccd566c8cd0cd05f521" +dependencies = [ + "rustix 0.38.44", + "windows-sys 0.52.0", +] + [[package]] name = "funty" version = "2.0.0" @@ -3389,10 +3419,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.13.3+wasi-0.2.2", - "wasm-bindgen", "windows-targets 0.52.6", ] @@ -3521,9 +3549,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" [[package]] name = "hex" @@ -3699,7 +3727,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 0.26.11", + "webpki-roots 0.26.8", ] [[package]] @@ -3950,9 +3978,9 @@ dependencies = [ [[package]] name = "indenter" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "index_vec" @@ -3992,7 +4020,7 @@ dependencies = [ "console", "number_prefix", "portable-atomic", - "unicode-width 0.2.1", + "unicode-width 0.2.0", "web-time", ] @@ -4092,7 +4120,7 @@ version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi 0.5.0", "libc", "windows-sys 0.59.0", ] @@ -4267,9 +4295,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.9.4", "libc", @@ -4335,13 +4363,19 @@ dependencies = [ [[package]] name = "libz-rs-sys" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221" dependencies = [ "zlib-rs", ] +[[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.9.2" @@ -4354,12 +4388,6 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" -[[package]] -name = "litrs" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" - [[package]] name = "lock_api" version = "0.4.12" @@ -4370,6 +4398,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" version = "0.4.26" @@ -4390,19 +4424,13 @@ dependencies = [ [[package]] name = "lru" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed" dependencies = [ "hashbrown 0.15.2", ] -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - [[package]] name = "macro-string" version = "0.1.4" @@ -4773,7 +4801,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 2.0.1", "thiserror 2.0.12", ] @@ -5107,9 +5135,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "portable-atomic-util" @@ -5333,7 +5361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.99", @@ -5379,8 +5407,8 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber 0.3.19", - "tycho-client 0.83.0", - "tycho-common 0.83.0", + "tycho-client", + "tycho-common", "tycho-simulation", ] @@ -5403,12 +5431,11 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", - "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", @@ -5418,19 +5445,17 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tracing", - "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", - "getrandom 0.3.1", - "lru-slab", - "rand 0.9.0", + "getrandom 0.2.15", + "rand 0.8.5", "ring", "rustc-hash", "rustls", @@ -5444,9 +5469,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", "libc", @@ -5545,9 +5570,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -5555,9 +5580,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.13.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -5580,9 +5605,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ "getrandom 0.2.15", "libredox", @@ -5887,7 +5912,7 @@ dependencies = [ "revm-primitives", "ripemd", "rug", - "secp256k1 0.31.1", + "secp256k1", "sha2 0.10.9", ] @@ -5960,23 +5985,23 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.4.0" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] name = "rtoolbox" -version = "0.0.3" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.48.0", ] [[package]] @@ -6074,6 +6099,19 @@ dependencies = [ "semver 1.0.26", ] +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + [[package]] name = "rustix" version = "1.0.1" @@ -6083,7 +6121,7 @@ dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.9.2", "windows-sys 0.59.0", ] @@ -6110,7 +6148,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.2.0", ] [[package]] @@ -6256,18 +6294,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" -dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "secp256k1-sys 0.10.1", - "serde", -] - [[package]] name = "secp256k1" version = "0.31.1" @@ -6276,16 +6302,8 @@ checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes", "rand 0.9.0", - "secp256k1-sys 0.11.0", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" -dependencies = [ - "cc", + "secp256k1-sys", + "serde", ] [[package]] @@ -6312,12 +6330,12 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ "bitflags 2.9.4", - "core-foundation 0.10.1", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -6410,9 +6428,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -6464,7 +6482,7 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "proc-macro2", "quote", "syn 2.0.99", @@ -6725,10 +6743,10 @@ dependencies = [ "anstream", "anstyle", "const-hex", - "derive_more", + "derive_more 2.0.1", "dunce", "inturn", - "itertools 0.13.0", + "itertools 0.14.0", "itoa", "match_cfg", "normalize-path", @@ -6739,7 +6757,7 @@ dependencies = [ "solar-macros", "thiserror 2.0.12", "tracing", - "unicode-width 0.2.1", + "unicode-width 0.2.0", ] [[package]] @@ -6762,7 +6780,7 @@ dependencies = [ "alloy-primitives", "bitflags 2.9.4", "bumpalo", - "itertools 0.13.0", + "itertools 0.14.0", "memchr", "num-bigint", "num-rational", @@ -6784,7 +6802,7 @@ dependencies = [ "alloy-primitives", "bitflags 2.9.4", "bumpalo", - "derive_more", + "derive_more 2.0.1", "either", "once_map", "paste", @@ -6811,7 +6829,7 @@ dependencies = [ "bon", "chrono", "const-hex", - "derive_more", + "derive_more 2.0.1", "dunce", "home", "ignore", @@ -6829,7 +6847,7 @@ dependencies = [ "tokio", "toml_edit", "uuid 1.18.1", - "zip", + "zip 4.6.0", "zip-extract", ] @@ -6999,12 +7017,13 @@ dependencies = [ [[package]] name = "svm-rs" -version = "0.5.19" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f15cc0fb280301739995e3b9f0f0dde3aecb876814f4768689f9138570cd3b" +checksum = "9a30a58b94c1ddc5f07a428d16e58e8f4c7cee9e67130cda12ed148f5ef98fff" dependencies = [ "const-hex", "dirs", + "fs4", "reqwest", "semver 1.0.26", "serde", @@ -7013,15 +7032,16 @@ dependencies = [ "tempfile", "thiserror 2.0.12", "url", - "zip", + "zip 2.4.1", ] [[package]] name = "svm-rs-builds" -version = "0.5.19" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31affc47068aeef445accc5c3d5f7fd24f9072cae0a651cef564239003c94ff8" +checksum = "ebddc0ea9fd9fb61d0de9585a99c58f87e8c14b8811726a57cc5f5b1a029585e" dependencies = [ + "build_const", "const-hex", "semver 1.0.26", "serde_json", @@ -7124,18 +7144,18 @@ dependencies = [ "fastrand", "getrandom 0.3.1", "once_cell", - "rustix", - "windows-sys 0.59.0", + "rustix 1.0.1", + "windows-sys 0.60.2", ] [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix", - "windows-sys 0.60.2", + "rustix 1.0.1", + "windows-sys 0.59.0", ] [[package]] @@ -7381,7 +7401,7 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite 0.26.2", - "webpki-roots 0.26.11", + "webpki-roots 0.26.8", ] [[package]] @@ -7404,7 +7424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", - "serde_spanned 0.6.9", + "serde_spanned 0.6.8", "toml_datetime 0.6.8", "toml_edit", ] @@ -7450,7 +7470,7 @@ checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap 2.7.1", "serde", - "serde_spanned 0.6.9", + "serde_spanned 0.6.8", "toml_datetime 0.6.8", "winnow", ] @@ -7698,34 +7718,7 @@ dependencies = [ "tracing", "tracing-appender", "tracing-subscriber 0.3.19", - "tycho-common 0.82.0", - "uuid 1.18.1", -] - -[[package]] -name = "tycho-client" -version = "0.83.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68faa54caad8f18d764acc300564b3d468e32eb63c67219cea7429a21b71cac9" -dependencies = [ - "anyhow", - "async-trait", - "chrono", - "clap", - "futures 0.3.31", - "hex", - "hyper 0.14.32", - "lru 0.12.5", - "reqwest", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-tungstenite 0.20.1", - "tracing", - "tracing-appender", - "tracing-subscriber 0.3.19", - "tycho-common 0.83.0", + "tycho-common", "uuid 1.18.1", ] @@ -7754,31 +7747,6 @@ dependencies = [ "uuid 1.18.1", ] -[[package]] -name = "tycho-common" -version = "0.83.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e031808e0cc6fe9d6402a46277464dc224c174aee40eb07122ed38bbbe2a3c65" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "chrono", - "hex", - "num-bigint", - "rand 0.8.5", - "serde", - "serde_json", - "strum 0.25.0", - "strum_macros 0.25.3", - "thiserror 1.0.69", - "tiny-keccak", - "tracing", - "typetag", - "utoipa", - "uuid 1.18.1", -] - [[package]] name = "tycho-simulation" version = "0.155.2" @@ -7815,8 +7783,8 @@ dependencies = [ "tokio-stream", "tokio-tungstenite 0.26.2", "tracing", - "tycho-client 0.82.0", - "tycho-common 0.82.0", + "tycho-client", + "tycho-common", "uuid 1.18.1", ] @@ -7954,9 +7922,9 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" @@ -8305,11 +8273,11 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.11" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ - "webpki-roots 1.0.2", + "rustls-pki-types", ] [[package]] @@ -8356,9 +8324,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ "windows-sys 0.59.0", ] @@ -8413,6 +8381,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -8440,6 +8417,21 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -8473,6 +8465,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -8485,6 +8483,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -8497,6 +8501,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -8521,6 +8531,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -8533,6 +8549,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -8545,6 +8567,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -8557,6 +8585,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -8601,9 +8635,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "ws_stream_wasm" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" dependencies = [ "async_io_stream", "futures 0.3.31", @@ -8612,7 +8646,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper", - "thiserror 2.0.12", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -8770,6 +8804,23 @@ dependencies = [ "syn 2.0.99", ] +[[package]] +name = "zip" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938cc23ac49778ac8340e366ddc422b2227ea176edb447e23fc0627608dddadd" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.7.1", + "memchr", + "thiserror 2.0.12", + "zopfli", +] + [[package]] name = "zip" version = "4.6.0" @@ -8792,23 +8843,25 @@ checksum = "7fa5b9958fd0b5b685af54f2c3fa21fca05fe295ebaf3e77b6d24d96c4174037" dependencies = [ "log", "thiserror 2.0.12", - "zip", + "zip 4.6.0", ] [[package]] name = "zlib-rs" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" +checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a" [[package]] name = "zopfli" -version = "0.8.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" dependencies = [ "bumpalo", "crc32fast", + "lockfree-object-pool", "log", + "once_cell", "simd-adler32", ] diff --git a/protocol-testing/Cargo.toml b/protocol-testing/Cargo.toml index 786e93a..a628771 100644 --- a/protocol-testing/Cargo.toml +++ b/protocol-testing/Cargo.toml @@ -8,8 +8,8 @@ miette = "7.6.0" # Logging & Tracing tracing = "0.1.37" # Tycho dependencies -tycho-common = "0.83.0" -tycho-client = "0.83.0" +tycho-common = "0.82.0" +tycho-client = "0.82.0" tycho-simulation = { path = "../../tycho-simulation", features = ["evm"] } # EVM dependencies alloy = { version = "1.0.27", features = ["arbitrary", "json", "dyn-abi", "sol-types", "contract", "provider-http"] } diff --git a/protocol-testing/README.md b/protocol-testing/README.md new file mode 100644 index 0000000..0ceb453 --- /dev/null +++ b/protocol-testing/README.md @@ -0,0 +1,144 @@ +# Protocol Testing + +Rust-based integration testing framework for Tycho protocol implementations. + +## Prerequisites + +1. **PostgreSQL Database**: Start the required PostgreSQL instance using Docker: + ```bash + docker-compose up -d + ``` + +2. **Environment Variables**: Source the environment variables: + ```bash + source .env + ``` + Or set them manually: + - `DATABASE_URL`: PostgreSQL connection string (default: `postgres://postgres:mypassword@localhost:5431/tycho_indexer_0`) + - `RPC_URL`: Ethereum RPC endpoint + - `SUBSTREAMS_API_TOKEN`: Authentication token for Substreams API + - `AUTH_API_KEY`: API key for authentication + +## Running Tests + +### Basic Usage +```bash +cargo run -- --package +``` + +### Command Line Options + +- `--package ` (required): Name of the package to test +- `--tycho-logs `: Enable tycho logs (default: true) +- `--db-url `: Postgres database URL (default: postgres://postgres:mypassword@localhost:5431/tycho_indexer_0) +- `--vm-traces `: Enable tracing during VM simulations (default: false) + +### Examples + +Run tests with default settings: +```bash +cargo run -- --package uniswap-v2 +``` + +Run tests with VM tracing enabled: +```bash +cargo run -- --package uniswap-v2 --vm-traces true +``` + +Run tests with custom database URL: +```bash +cargo run -- --package uniswap-v2 --db-url postgres://user:pass@localhost:5432/custom_db +``` + +Run tests in silent mode (disable tycho logs): +```bash +cargo run -- --package uniswap-v2 --tycho-logs false +``` + +## Logging Configuration + +The application uses `tracing` for structured logging. Control log levels using the `RUST_LOG` environment variable: + +### Log Levels +```bash +# Show test results and progress (recommended) +export RUST_LOG=info + +# Show all detailed logs including debug information +export RUST_LOG=debug + +# Show only errors (silent mode) +export RUST_LOG=error + +# Hide all logs (completely silent) +export RUST_LOG=warn +``` + +### Test Output Formatting + +The test runner outputs results similar to: + +``` +Running 2 tests ... + +-------------------------------- + +TEST 1: balancer_weighted_pool_test + +✅ Protocol component validation passed. + +✅ Token balance validation passed. + +Amount out for 0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014: calculating for tokens "BAL"/"WETH" +Spot price "BAL"/"WETH": 0.123456 + +✅ Simulation validation passed. + +✅ balancer_weighted_pool_test passed. + +-------------------------------- + +Tests finished! +RESULTS: 2/2 passed. +``` + +### Module-specific Logging +```bash +# Enable debug logs for specific modules +export RUST_LOG=protocol_testing=debug,tycho_client=info + +# Disable logs for noisy modules +export RUST_LOG=info,hyper=warn,reqwest=warn +``` + +### Running with Different Log Levels +```bash +# Standard test run with progress output +RUST_LOG=info cargo run -- --package uniswap-v2 + +# Detailed debug output +RUST_LOG=debug cargo run -- --package uniswap-v2 + +# Minimal output (errors only) +RUST_LOG=error cargo run -- --package uniswap-v2 +``` + +## Test Configuration + +Tests are configured via YAML files located in the substreams package directory: +- Test configuration: `../substreams//integration_test.tycho.yaml` +- Substreams configuration: `../substreams//substreams.yaml` + +## What the Tests Do + +1. **Component Validation**: Verifies that all expected protocol components are present in Tycho after indexing +2. **State Validation**: Compares indexed component states against expected values +3. **Balance Verification**: Validates token balances by querying the blockchain directly (can be skipped) +4. **Simulation Testing**: Runs Tycho simulation engine to verify protocol functionality + +## Troubleshooting + +- **Database Connection Issues**: Ensure PostgreSQL is running via `docker-compose up -d` +- **RPC Errors**: Verify `RPC_URL` is set and accessible +- **Missing Substreams**: Check that the package directory exists in `../substreams//` +- **Build Failures**: Ensure all dependencies are installed and environment variables are set \ No newline at end of file diff --git a/protocol-testing/src/main.rs b/protocol-testing/src/main.rs index 76a4dda..2d3c144 100644 --- a/protocol-testing/src/main.rs +++ b/protocol-testing/src/main.rs @@ -1,9 +1,9 @@ mod config; mod rpc; mod test_runner; +mod tycho_rpc; mod tycho_runner; mod utils; -mod tycho_rpc; use clap::Parser; use tracing_subscriber::EnvFilter; diff --git a/protocol-testing/src/test_runner.rs b/protocol-testing/src/test_runner.rs index dd79b57..fd41793 100644 --- a/protocol-testing/src/test_runner.rs +++ b/protocol-testing/src/test_runner.rs @@ -50,27 +50,52 @@ impl TestRunner { } pub fn run_tests(&self) -> miette::Result<()> { - info!("Running tests..."); let config_yaml_path = self .substreams_path .join("integration_test.tycho.yaml"); - info!("Config YAML: {}", config_yaml_path.display()); let figment = Figment::new().merge(Yaml::file(&config_yaml_path)); let config = figment .extract::() .into_diagnostic() .wrap_err("Failed to load test configuration:")?; - info!("Loaded test configuration:"); - info!("Protocol types: {:?}", config.protocol_type_names); - info!("Found {} tests to run", config.tests.len()); + + info!("Running {} tests ...\n", config.tests.len()); + info!("--------------------------------\n"); + + let mut failed_tests: Vec = Vec::new(); + let mut count = 1; for test in &config.tests { - if let Err(e) = self.run_test(test, &config, config.skip_balance_check) { - eprintln!("Test '{}' failed: {e}", test.name); + info!("TEST {}: {}", count, test.name); + + match self.run_test(test, &config, config.skip_balance_check) { + Ok(_) => { + info!("\n✅ {} passed.\n", test.name); + } + Err(e) => { + failed_tests.push(test.name.clone()); + info!("\n❗️ {} failed: {}\n", test.name, e); + } + } + + info!("--------------------------------\n"); + count += 1; + } + + info!( + "\nTests finished! \nRESULTS: {}/{} passed.\n", + config.tests.len() - failed_tests.len(), + config.tests.len() + ); + if !failed_tests.is_empty() { + info!("Failed tests:"); + for failed_test in &failed_tests { + info!("- {}", failed_test); } } + info!("\n"); Ok(()) } @@ -81,7 +106,6 @@ impl TestRunner { config: &IntegrationTestsConfig, skip_balance_check: bool, ) -> miette::Result<()> { - info!("Running test: {}", test.name); self.empty_database() .into_diagnostic() .wrap_err("Failed to empty the database")?; @@ -89,7 +113,6 @@ impl TestRunner { let substreams_yaml_path = self .substreams_path .join(&config.substreams_yaml_path); - debug!("Building SPKG on {:?}", substreams_yaml_path); let mut initialized_accounts = config .initialized_accounts @@ -128,8 +151,6 @@ impl TestRunner { } fn empty_database(&self) -> Result<(), Error> { - debug!("Emptying the database"); - // Remove db name from URL. This is required because we cannot drop a database that we are // currently connected to. let base_url = match self.db_url.rfind('/') { @@ -357,11 +378,11 @@ fn validate_state( for (id, state) in block_msg.states.iter() { if let Some(tokens) = pairs.get(id) { let formatted_token_str = format!("{:}/{:}", &tokens[0].symbol, &tokens[1].symbol); - println!("Calculations for pool {:?} with tokens {:?}", id, formatted_token_str); + info!("Amount out for {}: calculating for tokens {:?}", id, formatted_token_str); state .spot_price(&tokens[0], &tokens[1]) - .map(|price| println!("Spot price {:?}: {:?}", formatted_token_str, price)) - .map_err(|e| eprintln!("Error calculating spot price for Pool {:?}: {:?}", id, e)) + .map(|price| info!("Spot price {:?}: {:?}", formatted_token_str, price)) + .map_err(|e| info!("Error calculating spot price for Pool {:?}: {:?}", id, e)) .ok(); // let amount_in = // BigUint::from(1u32) * BigUint::from(10u32).pow(tokens[0].decimals as u32); @@ -377,5 +398,7 @@ fn validate_state( // e)) .ok(); } } + + info!("\n✅ Simulation validation passed.\n"); Ok(()) } diff --git a/protocol-testing/src/tycho_rpc.rs b/protocol-testing/src/tycho_rpc.rs index 37a5027..d9b0fe6 100644 --- a/protocol-testing/src/tycho_rpc.rs +++ b/protocol-testing/src/tycho_rpc.rs @@ -1,17 +1,15 @@ -use tycho_client::rpc::RPCClient; use std::{collections::HashMap, error::Error as StdError, fmt}; use tracing::info; -use tycho_client::{HttpRPCClient}; +use tycho_client::{rpc::RPCClient, HttpRPCClient}; use tycho_common::{ dto::{ Chain, PaginationParams, ProtocolComponent, ProtocolComponentsRequestBody, ResponseAccount, - ResponseProtocolState, StateRequestBody, VersionParam, + ResponseProtocolState, ResponseToken, StateRequestBody, VersionParam, }, + models::token::Token, Bytes, }; -use tycho_common::dto::ResponseToken; -use tycho_common::models::token::Token; /// Custom error type for RPC operations #[derive(Debug)] @@ -146,7 +144,9 @@ impl TychoClient { } ( token_clone.address.clone(), - token_clone.try_into().expect("Failed to convert token"), + token_clone + .try_into() + .expect("Failed to convert token"), ) }) .collect::>();