A 5-currency basket (USD / EUR / JPY / CHF / SGD) on the same instruction, against today's route through USDC on real Uniswap v4 pools. Numbers are from the latest fork run and move with the market.
$1,000
$10,000
$50,000
JPY→SGD and JPY→CHF, which have no pool at all, fill directly within 0.2% of the live cross rate.
forge test --match-contract FxEvidenceEthereumTest -vv
01
Stale price past the freshness limit
every wallet refuses to quote
02
Wallet over-committed across strategies
drops out, routing falls back
03
Maker value at the oracle
never decreases (fuzzed)
04
Round trip by a taker
always costs the taker
05
Third-party liquidity / exact-output
rejected
06
Hook float runs dry
clean revert; permissionless sweep refills
Also asserted: after a wallet is knocked off target, the helpful direction is cheaper than the harmful one, and routing rotates to the next wallet as the cheapest one rebalances.