Skip to content

Emissions: index direct gauge top-ups (NotifyReward) and Redistributor NotifyRewardWithoutClaim on Base #912

Description

@FonsSicca

Source: data-quality audit of deployment 8fcf9a8 (2026-07-07). Full findings: Notion audit.

What to build

Subscribe to two emission event types that currently credit emissions outside the indexed Voter path, causing Pool.totalEmissions to undercount on Base. The Voter distribution path is wei-exact (confirmed against raw events for all 10 checkable gauges). What is missing:

  • Direct gauge top-ups. 31 Base pools show claimed greater than emissions plus redistributed minus forfeited, a residual of 2.41M AERO (~$1.62M) growing at roughly 7,000 AERO per day. The three largest gaps are exactly +1,000,000, +750,000, and +150,000 AERO, the round-number notifyRewardAmount top-ups the configuration never subscribes to.
  • One Redistributor event. A single NotifyRewardWithoutClaim for 130,000 AERO (CL-100 WETH/USDC, 2026-03-12) is unindexed. A full-Base HyperSync sweep confirms it is the only such event, so the impact is bounded.

Optimism and all leaf chains are clean.

Root cause: the config.yaml Gauge and CLGauge blocks omit NotifyReward, and the Redistributor block omits NotifyRewardWithoutClaim (present in abis/Redistributor.json).

Acceptance criteria

  • Config subscribes to NotifyReward (Gauge and CLGauge) and NotifyRewardWithoutClaim (Redistributor), with handlers crediting totalEmissions.
  • After reindex, the 2.41M AERO residual across the 31 Base pools closes and the 130k AERO Redistributor event is indexed.
  • pnpm envio codegen and the config-parity CI check pass.

Blocked by

None — can start immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions