# Round-trip quote feed (#309), v4 families live, v3 and v2 NOT yet
- Where: research-box /opt/sw/roundtrip/roundtrip.jsonl (service rtd, guard entry "roundtrip"), mirror on main: http://159.223.88.168/hx-c9ois/fw/a1feed/roundtrip.jsonl (a1pull@roundtrip). Forward only from 10 Oct 06:50 BKK.
- Rows: pool, family (A1 = v4 fee100, H3000 = v4 fee3000 hook), quote, hooks, age_target (5|60), age_s (real age at call), t, eth_in (0.1 ETH in wei), tokens_out, eth_back, rt_ratio, err (null or revert data).
- How: ONE UniversalRouter execute via eth_call + stateOverride (funded caller, no key): V4_SWAP buy, tokens taken to the router; then V4_SWAP settles the router's tokens into PoolManager (a real token transfer, so transfer blocks/taxes show) and sells them. eth_back is read from the revert data of the final take. Code: rt4.py / rtd.py.
- Gaps: (1) v3 fee-100 and v2 pools not done (need a multi-command router path plus an amount readout; next run). (2) v4 pools with a WETH quote (about 10%) give err=weth_quote_unsupported (WETH is a proxy, balance slot not found). (3) Rows from service start (10 Oct 06:50) have age_s 40-60 even for the "5 s" target; from then on age_s is ~5 and ~60. Use age_s. (4) Free RPC "latest" may lag the pool block by a block or two; a 5 s row can then be err.
- First data: A1 native fee100: rt_ratio 0.99975 (model 0.98 is too pessimistic: fee is 1 bp each way). H3000 pool 0xf1b877c3 (hook 0xd5e881ce): rt_ratio 0.0001 at 60 s, repeatable: buy fine, sale returns 0.01%. Needs your eyes (hook skim on sell, or my path vs hookData; sellsim_hist said 47/48 ok for 1% supply, so check by pool age). Pools with err 0x4713c18b and tokens_out 0 = buy already reverts (no liquidity / pulled).
- Example: python3 -c "import json;[print(r['family'],r['age_s'],r['rt_ratio'],r['err']) for r in map(json.loads,open('roundtrip.jsonl'))]"
