Transition E2E: epoch roll, leaderboard refresh, claim state (#350) #526
No reviewers
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!526
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-350-transition-e2e"
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?
Summary
Adds indexer-first Playwright E2E coverage for gap-analysis #342 P2 #10 (#350):
frontend/e2e/anvil-arena-06-transitions.spec.ts— Time Booster timer expiry →rollPodiumEpoch→ epoch increment + cleared leaderboard; Last Buy hard reset → claim-readyarena-charm-cred-claim.arenaE2eHelpers.ts(warp past podium deadline, roll epoch, indexer sync waits, level-2 cast setup).INV-FRONTEND-342-TRANSITION-E2Ein invariants +docs/testing/e2e-anvil.md; cross-link inskills/play-active-time-arena/SKILL.md.Picked up automatically by
e2e/anvil-arena-*.spec.tswhenYIELDOMEGA_E2E_INDEXER=1.Acceptance checklist
YIELDOMEGA_E2E_INDEXER=1 YIELDOMEGA_DEPLOY_NO_COOLDOWN=1 PLAYWRIGHT_SPECS="e2e/anvil-arena-06-transitions.spec.ts" bash scripts/e2e-anvil.sharena-timer-expired-pending-rollorarena-timer-settling, roll CTA, post-rollEPOCH 1cornerdocs/testing/e2e-anvil.md§350 +INV-FRONTEND-342-TRANSITION-E2Ecd frontend && CI=1 npm run test:e2e -- --workers=5 e2e/anvil-arena-06-transitions.spec.ts(after stack up)workers: 1per #87Verification checklist (third parties)
bash scripts/bootstrap-cloud-postgres-native.sh && bash scripts/verify-cloud-postgres.shYIELDOMEGA_E2E_INDEXER=1 YIELDOMEGA_DEPLOY_NO_COOLDOWN=1 bash scripts/e2e-anvil.sh— full indexer-first Anvil suite including new speccd frontend && CI=1 npm run test:e2e -- --workers=5 e2e/anvil-arena-06-transitions.spec.tsbash scripts/verify-podium-live-anvil.sh— PASScd frontend && npm run typecheck && npm run lint— PASSBlockers
None.
Security review — MR !526
Commit reviewed:
a73b57751864684921e1f64d690f72070e85f895Scope: Transition E2E for podium epoch roll, leaderboard refresh, and claim-ready state (#350).
Files in diff:
frontend/e2e/anvil-arena-06-transitions.spec.ts(new Playwright spec)frontend/e2e/arenaE2eHelpers.ts(Anvil cast/RPC/indexer poll helpers, level-up dismiss)docs/testing/e2e-anvil.md,docs/testing/invariants-and-business-logic.md,skills/play-active-time-arena/SKILL.md(documentation only)Outcome:
FINDINGS: 0medium+Summary: Security review: no medium+ findings on this diff.
No smart-contract, indexer API, or production frontend (
src/) changes are included. Added code is Playwright E2E harness code gated byANVIL_E2E=1andANVIL_E2E_INDEXER=1, running only against local Anvil + indexer in CI/dev.Reviewed attack surfaces (none exploitable at medium+ severity):
rollPodiumEpoch,buy, and Anvil time-warp via local RPC against a dev-only Anvil instance with unlocked Foundry account #0. No production chain exposure.execSync/ shell (anvilCastCall,anvilCastSend)VITE_*written bye2e-anvil.sh). Call-site args are test constants or numeric indices. Attacker would need CI/env compromise — outside application trust boundary; test-only code not shipped to users.fetchtoVITE_RPC_URL/VITE_INDEXER_URL)127.0.0.1. No user-controlled URL composition.Inline findings: none posted (zero medium+ issues).
mentioned in commit
1a4150f4af