263fd917ac
Device-reported balances (e.g. Trust Wallet after a sweep) could carry negative values that were stored verbatim by coinAttributesFromBalance (only is_numeric was checked). BTC/ETH/BSC/SOL are not auto-refreshed after ingest (only Tron is), so the negative persisted in the DB and rendered in the UI. Clamp negatives to 0 at ingest and in formatAmount so stale device-reported negatives never display. Co-authored-by: Cursor <cursoragent@cursor.com>