Verify #362: WarBow viewer-summary flag timer indexer supplement #535
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!535
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-362-verify-warbow-flag-supplement"
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
Verification of GitLab #362 found the viewer-summary
FLAG:line was implemented inArenaWarbowHeroPanelbut never appeared in indexer-first play (VITE_INDEXER_URLset):coreReadRowsFromArenaTimerszeroedwarbowPendingFlagOwner/warbowPendingFlagPlantAtbecauseGET /v1/arena/timersomits planted-flag fields.This MR adds targeted onchain supplement reads (
arenaV2WarbowFlagSupplementContracts) when indexer-first Arena v2 is active, merges them intouseArenaSaleSession, and documents the invariant.Verification checklist
warbow-hero-viewer-summary-flagvisible withFLAG: MM:SS until claim, synced with Flag subcardArenaWarbowHeroPanel.test.tsx— omits line whenshowClaimFlagControlfalse00:02:12matched subcardSilence ends in 00:02:12warbow-hero-flag-silence-countdown+ claim CTA still rendernpm run typecheckcd frontend && npm run typechecknpm run lintcd frontend && npm run lintArenaWarbowHeroPanel.test.tsxcd frontend && npm test -- ArenaWarbowHeroPanel.test.tsxcd frontend && npm test -- arenaV2SaleSessionBridge.test.ts indexerFirstDisplay.test.tscd frontend && npm testArenaSimplePage.test.tsx7 failures pre-existing onmain(react-query mock /shouldShowLevelLockrename); unrelated to #362Test plan
start-qa-local-full-stack.sh) + preview build with mock walletSecurity review — MR !535
Commit reviewed:
e7c87b44c7482b1f97d85e52dc10b5a8b534c4a5Scope: Frontend indexer-first WarBow flag supplement (
arenaV2WarbowFlagSupplementContracts,mapArenaV2WarbowFlagSupplementRows,useArenaSaleSessionmerge), docs/invariant updates, unit tests.Outcome:
FINDINGS: 0medium+Security review: no medium+ findings on this diff.
Review summary
Traced attacker-controlled inputs through the changed paths:
eth_calls against configuredtimeArena(warbowPendingFlagOwner,warbowPendingFlagPlantAt,WARBOW_FLAG_CLAIM_BP,WARBOW_FLAG_SILENCE_SEC). Enabled only whentc && indexerOn && isArenaV2;refetchInterval: false(one-shot, not recurring polling). Contract address comes from build-timeaddresses.timeArena, not user input.mapArenaV2WarbowFlagSupplementRowstolerates partial failures; merged fields feed existingderiveWarbowClaimFlagFields, which requires matching wallet +plantAt > 0before exposing claim UI.submitClaimWarBowFlagstill calls parameterlessclaimWarBowFlag; onchainTimeArenaenforcesmsg.sender == warbowPendingFlagOwnerand silence viaWARBOW_FLAG_SILENCE_SEC. A hostile RPC could only mislead display/gating; the transaction reverts onchain without transferring value.FLAG:summary line rendersformatCountdownoutput only; owner address is not injected into DOM from supplement data.Checked prior MR discussions: none present.
Inline threads: none (no medium+ findings).
mentioned in commit
667f2f370a