Skip to content

fix: unlock dates ignore leap years#72

Merged
rootulp merged 1 commit into
mainfrom
rp/leap-year-unlock-dates
Jul 2, 2026
Merged

fix: unlock dates ignore leap years#72
rootulp merged 1 commit into
mainfrom
rp/leap-year-unlock-dates

Conversation

@rootulp

@rootulp rootulp commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Closes #35

Vesting accounts unlock N * 365 days after TGE, not N calendar years, because vesting account end times do not account for the leap day on February 29th, 2024. Verified against the vesting accounts in the mainnet genesis file:

Accounts End time (UTC) Days after TGE
231 delayed vesting accounts October 30th, 2024 14:00 365
195 continuous vesting accounts October 30th, 2025 14:00 730
20 continuous vesting accounts October 30th, 2026 14:00 1095

Changes

  • Compute twoYearsAfterTGE, threeYearsAfterTGE, and fourYearsAfterTGE as N * 365 days after TGE and resolve the TODO from fix: year one unlock date #34.
  • Add TestUnlockDates to pin all four unlock dates to October 30th.
  • Update supply test expectations for the shifted dates. The vesting curves are now continuous at the year boundaries (e.g. ecosystem circulating is exactly 50% at year two and 75% at year three).

🤖 Generated with Claude Code

Vesting accounts unlock N * 365 days after TGE, not N calendar years,
because vesting account end times do not account for the leap day on
February 29th, 2024. Verified against vesting account end times in the
mainnet genesis file: delayed vesting accounts end October 30th, 2024
and continuous vesting accounts end October 30th, 2025 or 2026.

Closes #35

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@rootulp rootulp self-assigned this Jul 2, 2026
@rootulp rootulp requested review from ninabarbakadze and rach-id July 2, 2026 18:23
@rootulp rootulp enabled auto-merge July 2, 2026 18:23
@rootulp rootulp merged commit 256b798 into main Jul 2, 2026
7 checks passed
@rootulp rootulp deleted the rp/leap-year-unlock-dates branch July 2, 2026 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unlock dates don't account for leap years

2 participants