feat(affiliates): add gas rebate 69 and 70 for June 2026#4960
Conversation
💡 Codex Reviewhttps://github.com/UMAprotocol/protocol/blob/5d176224d6751cb18156c826d579e4b9019d908a/packages/affiliates/gas-rebate/rebates/Rebate_69.audit.md#L44 For votes whose reveal landed at the start of June but whose commit was before ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
5d17622 to
36d1e02
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 36d1e0287c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| maxBlockLookBack, | ||
| transactionConcurrency, | ||
| maxPriorityFee, | ||
| commitLookbackBlocks, |
There was a problem hiding this comment.
Record commit lookback in the audit config
When COMMIT_LOOKBACK_BLOCKS is overridden, the payout can change because this value is now passed into the calculator, but the monthly audit's effectiveConfig still omits it. That leaves committed rebate artifacts (and later correction/audit reruns if the default changes) without the policy parameter needed to reproduce why boundary commits were or were not recovered; include the resolved lookback value in MonthlyAuditReportConfig/Markdown alongside the other effective parameters.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 100fe2c — commitLookbackBlocks is now recorded in the monthly audit effectiveConfig and rendered in the Markdown (Commit lookback blocks: 50000), alongside the other effective parameters.
Commits were only refunded when their matching eligible reveal fell inside the same monthly block range. Votes committed near the end of a month but revealed at the start of the next (a reveal phase straddling midnight of the 1st) had their commit gas reimbursed by neither payout: the reveal month never saw the commit, and the commit month never matched it to an in-range reveal. Scan a configurable lookback window (COMMIT_LOOKBACK_BLOCKS, default 50000) before fromBlock to recover the commit transaction for such reveals. A commit transaction is skipped when any vote it commits was eligibly revealed before fromBlock, so transactions already reimbursed by the previous month are never double paid. reveal_missing_commit anomalies now fire only for commits absent from the lookback window. Adds a boundaryCommitEventsRecovered audit metric and records the resolved commit lookback in the monthly audit effective config so committed artifacts remain reproducible.
36d1e02 to
1cd1a7b
Compare
|
Re: the cross-month commit gas finding — fixed in 100fe2c. The calculator now recovers the commit transaction for eligible reveals whose commit landed before For rebate 69 this recovered 18,265 boundary commit transactions (total payout 4.893278 → 5.094695 ETH). The audit reports validation passed with 0 anomalies. |
1cd1a7b to
bd2acd3
Compare
bd2acd3 to
d1ced48
Compare
…s rebate Load an optional address exclusion list (EXCLUSION_LIST_PATH, default gas-rebate/exclusions/rebate-exclusions.json) and drop transactions sent from those addresses from the payout, so delegate voters can be excluded. Set IGNORE_EXCLUSION_LIST=true to skip it entirely, used for the portion of a month before the exclusion policy takes effect. The list is kept private (gitignored); the monthly audit records only its SHA-256, size, and the excluded voter/rebate totals, so payouts stay reproducible without publishing the addresses.
Split June at the reveal-phase boundary on 2026-06-16 00:00 UTC: rebate 69 covers 2026-06-01..15 with no exclusions, and rebate 70 covers 2026-06-16..30 with the delegate exclusion list applied.
d1ced48 to
5a656f1
Compare
Summary
Fix cross-month commit gas reimbursement in the VotingV2 gas rebate script, add an optional delegate exclusion list, and add the June 2026 payout split into two rebates at the point the exclusion policy takes effect.
Fix: cross-month commit gas
Commits were reimbursed only when their eligible reveal fell inside the same monthly block range, so votes committed at the end of a month but revealed at the start of the next had their commit gas reimbursed by neither payout. The calculator now scans a lookback window (
COMMIT_LOOKBACK_BLOCKS, default 50000) beforefromBlockto recover those commit transactions, skipping any transaction whose votes were eligibly revealed beforefromBlockso nothing the previous month already paid is double counted.Feature: delegate exclusion list
Optional address list (
EXCLUSION_LIST_PATH, defaultgas-rebate/exclusions/rebate-exclusions.json); transactions sent from those addresses are dropped from the payout.IGNORE_EXCLUSION_LIST=trueskips it. The list is kept private (gitignored) — the audit records only its SHA-256, size, and the excluded voter/rebate totals, so payouts stay reproducible without publishing the addresses.June 2026 (split at the 2026-06-16 00:00 UTC reveal-phase boundary)
The delegate exclusion policy starts mid-month, so June is paid as two rebates split on a voting-round boundary (no round is split across the two):
Both audits report validation passed and 0 anomalies. Ranges are contiguous and cover the full month.
Validation
yarn test-local(affiliates) — calculator unit tests: boundary recovery, previous-month double-pay guard, out-of-window anomaly, and exclusion filtering.tsc --noEmitclean.