Log-only accounting — two ways to get it wrong
naive AIngest every Transfer: 3 rows become holdings — inventing 1 phantom position the wallet held for a single block.
naive BOnly the two legs touching the wallet, booked gross — inflating both revenue and expense, and naming the router as the counterparty instead of the market.