Contracts: Independent podium timers (Streak, Time Booster, WarBow) + epoch settlement #247
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega#247
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Independent podium timers and per-podium epoch settlement. Parent epic: #238.
Relevant files
contracts/src/TimeArena.solcontracts/src/libraries/TimeMath.solTimeCurve.sol_updateTopThreeMonotonic, streak/booster logic)Acceptance criteria
rollPodiumEpoch(category)):Verification checklist
marked as related to #238
mentioned in issue #238
Implementation summary
podiumDeadline[4],podiumEpoch[4],rollPodiumEpoch, 4:2:1 payouts viaPodiumVaults.payPodiumWinners, seed roll.docs/product/arena-v2.md.Acceptance criteria
rollPodiumEpochsettlementlastBuyEpochVerification checklist
test_roll_podium_after_expiryin TimeArena.t.solmentioned in commit
2a5e5d6c60Verification complete (agent)
Verified GitLab #247 on
main(71837e1) via worktreeissue/247-podium-timers-verify.What was verified
Onchain (
TimeArena.sol):podiumDeadline[4]+podiumEpoch[4]storage_extendOtherPodiumTimers+ Last Buy path)rollPodiumEpoch(category)after expiry: snapshot top-3, 4:2:1 payout viaArenaPodiumSettlement+PodiumVaults.payPodiumWinners, seed→active roll, per-category epoch bump, score clearlastBuyEpoch(CHARM/CRED); other podium rolls do notForge (36/36
TimeArenaTestpass):test_multi_podium_deadline_extend— all four timers extend togethertest_roll_podium_after_expiry— epoch bump on rolltest_podium_timers_diverge_after_single_roll— Booster/Streak/WarBow diverge from Last Buy after single-category rolltest_podium_epochs_independent_after_skewed_rolls— unequal epoch counters after skewed rollstest_roll_podium_settlement_pays_and_clears_scores— winners paid, live scores clearedtest_last_buy_epoch_on_hard_reset_not_on_other_podium_roll— CRED/CHARM epoch semanticstest_roll_podium_reverts_while_timer_live— guard while timer liveDocs / crosslinks added:
INV-TIME-ARENA-PODIUM-DIVERGE,INV-TIME-ARENA-PODIUM-EPOCH-INDEP,INV-TIME-ARENA-LAST-BUY-EPOCHdocs/product/arena-v2.md,docs/product/time-arena.mdskills/play-time-arena-doub/SKILL.md, guardrails skill §6dManual verification checklist
cd contracts && FOUNDRY_PROFILE=ci forge test --match-contract TimeArenaTest/arenareflect independent deadlines (indexerGET /v1/arena/timers)rollPodiumEpoch(1)and confirmPodiumEpochRolled+ pool payout on AnvillastBuyEpochbut Streak/Booster/WarBow rolls do notAll automated acceptance criteria from the issue body pass. Closing.
mentioned in issue #271
marked as related to #271
mentioned in issue #273
mentioned in issue #300
mentioned in issue #330