From c4be598a46d19ef7f4938cb6ab3db88426ac4345 Mon Sep 17 00:00:00 2001 From: tvinagre Date: Wed, 30 Sep 2026 18:22:01 -0300 Subject: [PATCH 1/3] feat: support Pons hooks and Gigadex V3 on Robinhood Bump tycho-simulation and tycho-execution to 0.431.0, which adds native Pons V2 hook simulation for uniswap_v4_hooks on Robinhood. Register gigadex_v3 as a Uniswap V3 fork. Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 4 ++-- fynd-core/src/feed/protocol_registry.rs | 5 +++++ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6987cffa..67dfcbeb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7952,9 +7952,9 @@ dependencies = [ [[package]] name = "tycho-client" -version = "0.428.0" +version = "0.431.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34a5e6d5a074612023226469d193cc25d290694e27ff37df5cc5cf53cff37624" +checksum = "3e658f461dfe0ace0c07f486c121a5dd630e77cfc16ff253790d5312eb74c606" dependencies = [ "async-trait", "backoff", @@ -7982,9 +7982,9 @@ dependencies = [ [[package]] name = "tycho-common" -version = "0.428.0" +version = "0.431.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca9f2885e3ab268ce22110665e19d61a8daa28ebbf51229e11d9261d4219eb76" +checksum = "99781d3394c5244674e48b7164c6d82e328a2e2258dc65951f9e5996129eb662" dependencies = [ "anyhow", "arrayvec", @@ -8011,9 +8011,9 @@ dependencies = [ [[package]] name = "tycho-ethereum" -version = "0.428.0" +version = "0.431.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9408b9ff74741473f93bc42e6325cdc1fcea732d1b7e42c299b3fd43ab35ac" +checksum = "0569e7fe8d52b3be7cdae2fd990fc187c432a1d1df64bcfd0e86f7397c696314" dependencies = [ "alloy", "async-trait", @@ -8033,9 +8033,9 @@ dependencies = [ [[package]] name = "tycho-execution" -version = "0.428.0" +version = "0.431.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1866b093620f21a43ab37d6ba90e482ec438eee3cf6dae4330910b14a88ead7f" +checksum = "351e54d9924be9787f59209dca1065ac2b27bb6a33f3032391b179695a6a5c8d" dependencies = [ "alloy", "chrono", @@ -8057,9 +8057,9 @@ dependencies = [ [[package]] name = "tycho-simulation" -version = "0.428.0" +version = "0.431.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ad2135127428fdda149978a4b3e5ea787f285010fa899614dc15a2aaab0261" +checksum = "90175d3323526cf01946c93e824a8e1a35d1b769269a5372a8ea051753430ce5" dependencies = [ "alloy", "alloy-chains", diff --git a/Cargo.toml b/Cargo.toml index bdb24e01..362e741d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -172,8 +172,8 @@ metrics-exporter-prometheus = "0.16" metrics-util = "0.20" # Tycho -tycho-execution = ">=0.428.0" -tycho-simulation = ">=0.428.0" +tycho-execution = ">=0.431.0" +tycho-simulation = ">=0.431.0" typetag = "0.2" # Compression diff --git a/fynd-core/src/feed/protocol_registry.rs b/fynd-core/src/feed/protocol_registry.rs index a19aca8a..d9650b92 100644 --- a/fynd-core/src/feed/protocol_registry.rs +++ b/fynd-core/src/feed/protocol_registry.rs @@ -349,6 +349,9 @@ fn register_exchange( "robinswap_v3" => { builder.exchange::("robinswap_v3", tvl_filter.clone(), None) } + "gigadex_v3" => { + builder.exchange::("gigadex_v3", tvl_filter.clone(), None) + } "ramses_v3" => builder.exchange::("ramses_v3", tvl_filter.clone(), None), "pancakeswap_v3" => { builder.exchange::("pancakeswap_v3", tvl_filter.clone(), None) @@ -1039,6 +1042,8 @@ mod tests { "uniswap_v2", "ekubo_v3", "up_v3", + "uniswap_v4_hooks", + "gigadex_v3", ]; let skipped = skipped_unknown_protocols(&robinhood_protocols); assert!( From 060f3a4f9b4a8c83edc91c944d510df21e5dc233 Mon Sep 17 00:00:00 2001 From: tvinagre Date: Wed, 30 Sep 2026 18:28:49 -0300 Subject: [PATCH 2/3] style: format gigadex_v3 registration Co-Authored-By: Claude Opus 5.5 (1M context) --- fynd-core/src/feed/protocol_registry.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fynd-core/src/feed/protocol_registry.rs b/fynd-core/src/feed/protocol_registry.rs index d9650b92..5f4de746 100644 --- a/fynd-core/src/feed/protocol_registry.rs +++ b/fynd-core/src/feed/protocol_registry.rs @@ -349,9 +349,7 @@ fn register_exchange( "robinswap_v3" => { builder.exchange::("robinswap_v3", tvl_filter.clone(), None) } - "gigadex_v3" => { - builder.exchange::("gigadex_v3", tvl_filter.clone(), None) - } + "gigadex_v3" => builder.exchange::("gigadex_v3", tvl_filter.clone(), None), "ramses_v3" => builder.exchange::("ramses_v3", tvl_filter.clone(), None), "pancakeswap_v3" => { builder.exchange::("pancakeswap_v3", tvl_filter.clone(), None) From d42d7b0e39956d03d0765db5edd28ca681a20a04 Mon Sep 17 00:00:00 2001 From: tvinagre Date: Wed, 30 Sep 2026 18:55:13 -0300 Subject: [PATCH 3/3] test: update fixture counts for tycho 0.431.0 tycho-simulation 0.431.0 decodes a Uniswap V4 pool whose hook is zero or takes no part in swaps as a plain V4 pool. On 0.428.0 those pools went to the generic VM hook handler and failed to decode, since the recording has no hook contract state. The Ethereum fixture now yields 161 more uniswap_v4 components (683 -> 844); every other protocol is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) --- fynd-core/tests/fixtures/expected_outputs.json | 10 +++++----- fynd-core/tests/token_graph.rs | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fynd-core/tests/fixtures/expected_outputs.json b/fynd-core/tests/fixtures/expected_outputs.json index 9b1053d6..49124ba3 100644 --- a/fynd-core/tests/fixtures/expected_outputs.json +++ b/fynd-core/tests/fixtures/expected_outputs.json @@ -1,13 +1,13 @@ { "metadata": { "block_number": 26045981, - "num_components": 2785, - "num_tokens": 1985, + "num_components": 2946, + "num_tokens": 2003, "fynd_version": "0.110.0", "derived_data": { - "components_with_spot_prices": 2785, - "components_with_depths": 2589, - "token_prices": 1812 + "components_with_spot_prices": 2946, + "components_with_depths": 2643, + "token_prices": 1813 } }, "scenarios": [ diff --git a/fynd-core/tests/token_graph.rs b/fynd-core/tests/token_graph.rs index 8015e4d8..3b261f70 100644 --- a/fynd-core/tests/token_graph.rs +++ b/fynd-core/tests/token_graph.rs @@ -18,11 +18,11 @@ use rustc_hash::FxHashMap; use tycho_simulation::tycho_common::models::Address; /// Tokens in the snapshot, one node each. -const TOKENS: usize = 1985; +const TOKENS: usize = 2003; /// Directed token pairs, one edge each — two per pair of tokens that trade. -const EDGES: usize = 4798; +const EDGES: usize = 4998; /// Components in the snapshot, spread across those edges. -const COMPONENTS: usize = 2785; +const COMPONENTS: usize = 2946; const WETH: &str = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"; const USDC: &str = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";