Log-only accounting — two ways to get it wrong
naive AIngest every Transfer: 10 rows become holdings — inventing 8 phantom positions 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.