Serve wallet level history in profile modal via indexer (#336) #509
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!509
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-336-wallet-level-history"
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 wallet progression Level history to the participant profile modal (#336).
GET /v1/arena/wallet/{address}/statsnow includeslevel_history— five entries (level"1"…"5",reached_atUTC ISO-8601 ornull). Level 1 = earliestidx_arena_buy; levels 2–5 = earliestidx_arena_level_uppernew_level.WalletProfileLevelHistorySectioninWalletProfileModal— local-time display, em dash for unknown milestones, progression tier short labels fromarenaProgression.ts.INV-INDEXER-336-WALLET-LEVEL-HISTORY, cross-links in indexer design, arena-views, play skill, manual QA.Acceptance checklist
cd indexer && cargo test arena_wallet_stats_level_historycd frontend && npm test -- WalletProfileModalSectionsWalletProfileModalSections.test.tsxlevel history caseintegration_stage2::arena_wallet_stats_level_history_and_reorgcd indexer && cargo clippy --all-targets -- -D warnings && cargo testcd frontend && npm run typecheck && npm run lint && npm testbash scripts/verify-wallet-profile-anvil.shThird-party verification
bash scripts/bootstrap-cloud-postgres-native.shexport PATH="$HOME/.foundry/bin:$PATH" && bash scripts/verify-wallet-profile-anvil.shcurl -sf http://127.0.0.1:3103/v1/arena/wallet/<buyer>/stats | jq '.level_history'Related
Security review — MR !509
Commit reviewed:
9c75cd22bd99b14f2f1d5ef153bbaa7aca9ad8d1(base3d6d3b21)Scope: Wallet
level_historyonGET /v1/arena/wallet/{address}/stats(indexer SQL aggregations overidx_arena_buy/idx_arena_level_up), frontendWalletProfileLevelHistorySection+ formatters, optimistic stats stub, integration/reorg test, docs/smoke script.Method: Traced attacker-controlled inputs (
{address}path param, indexer JSONlevel_history[]) to sinks (parameterized SQL, React text rendering). Compared new queries and UI paths to existing wallet-stats controls (#329 address gate, reorg rollback, public read-only API).Outcome:
FINDINGS: 0medium+No inline threads — nothing to block on.
Areas reviewed (no issues)
walletas$1; no string concatenation.StatRowrenderslevel/ formatted timestamps as React text nodes;formatWalletProfileIso8601returns locale string or em dash.MINaggregates per stats request; bounded 5-rowlevel_historyfrom server.Label:
block:securitynot applied.mentioned in commit
8452c43484