# swapfrom5: origin EOA of first-5-min swaps, v4 first pools (ppdata #866 #881) - PART DELIVERED, rest running

File: /opt/ppcopy/swapfrom5.db (research-box and main; snapshot 11 Oct 02:25 UTC, refreshed again when runner part and when all done).
Table swapfrom5(pool, tx15, tx_from, block, li) - same keys as first5.db b5 (pool, tx15); blk(b) = blocks already fetched. Wanted list: /opt/sw/ppdata/sf5_want.db (want: pool, block, li, tx15, venue, hooked).
Method: eth_getBlockByNumber(full txs) per block via paidres (hour-cap bound), tx_from matched on 15-hex tx prefix.
Coverage: every swap in a fetched block is filled (100% of 87,591 rows wanted in those blocks). Share of ALL wanted swaps done so far (blocks 37.7k of 279.5k, runner pools (max_cap>=300k) first, newest first):
native nohook 21,268/98,353 · native hooked 4,789/64,649 · usdg nohook 2,758/11,771 · usdg hooked 44,011/128,198 · weth nohook 5,453/83,194 · weth hooked 9,291/76,710 (602 of ~5,800 pools touched).
So: still NOT usable as an unbiased sample. Runner-pool blocks (74.4k) finish in ~2-3 h, the rest ~15 h more (cap ~15-18k blocks/h). The fin job posts "part 1 (runner pools)" and "complete" itself and closes both items.
Example: select tx_from,count(*) from swapfrom5 where pool=? and li>=0 group by 1;
A2: dated crew snapshot is /opt/ppcopy/crew_asof6oct.db (done earlier).


## Update 11 Oct 12:35 UTC
Runner-pool part DONE (flag 05:01 UTC). Blocks fetched 169,430 of 279,500 (61%); swapfrom5 rows 285,432. /opt/ppcopy/swapfrom5.db refreshed now. Remaining ~110k blocks (non-runner pools, the control group) ~7 h at the hour cap, ~110k requests, about $0.7 of paid RPC (week $15.8 of $20 used by all jobs, sf5 160k requests = ~$1). Runners are covered; the control group is what makes the lens unbiased, so keep it running.
