mirror of
https://github.com/luxfi/dex.git
synced 2026-09-24 00:26:31 +00:00
Both came out as an empty list, so WETH/USDC on Ethereum — one of the deepest pools in existence — was reported as "no venue here holds this pair" whenever its RPC was down. That sends a reader looking for liquidity instead of at their endpoint, which is the same mistake as blaming the pair for an exact-output request and blaming an upstream registry for our own chain. The venues already distinguished the two answers: no liquidity is (nil, nil), a chain they could not reach is (nil, err). QueryAllVenues discarded both. It now returns the reason, and only when EVERY arm it asked failed — one arm down while another answers is a quote, not an outage. It also stops returning the routing label, which named V4_NATIVE for a V3 pool on somebody else's chain and was read by one test assertion and nothing else. Underneath, EVMClient marks the answers it never received: a connection failure, a 5xx, a 429, a body that is not JSON-RPC. A contract answering by REVERTING stays what it always was — this pool does not exist — because three of the four V3 fee tiers revert on most pairs and that is the ordinary case. Measured with chain 1 pointed at a closed port: chain 1 answers 502 naming the dial error, 96369 still quotes 997001483075056712, a pair with no pool still answers 404, and /providers stays 200 so one dark chain does not take a pod out of its own Service. Co-authored-by: Hanzo Dev <[email protected]>