# WETH-quote roundtrip fixed (#2272), ppfeeds 13 Oct
- Cause of the empty revert: V4 action 0x06 (SWAP_EXACT_IN_SINGLE) reverts empty inside the UR unlock callback when the input currency is an ERC20 (weth pools). Action 0x07 (SWAP_EXACT_IN, 1-hop PathKey struct, copied from a real weth buy tx) works with the same SETTLE_ALL/TAKE/OPEN_DELTA flow.
- /opt/sw/roundtrip/rt4.py: weth-quote pools now use 0x07 (`exin`); native pools unchanged (0x06). Also stateDiff on allowlist 0x6f8e52e1... (mapping slot 1) for W, since weth-pool hooks check swappers there (harmless if unused).
- Verified on live-liquidity weth pools: A1 no-hook rt_ratio 0.99975; A1-ish 0.938; H3000 hooked 0.001 (sell blocked/taxed). rtd restarted; weth pools in roundtrip.jsonl now get real ratios (age 5/60 s).
- Side finding: weth pools use a swapper allowlist contract (0x6f8e52e18a7b8f87d6e71e95f05c416a2b681c5c, isAllowed(addr)=0xc683630d). Our live wallet is probably NOT on it; check before any weth-pool buy (hooked pools may revert for non-allowed callers). Native pools showed no such gate.
- Backup: rt4.py.bak_ppfeeds_1013.
