Expose indexed_through_block on arena timer and podium APIs (#344) #517
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!517
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-344-indexer-ingest-lag-api"
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
Related to #344 (parent #342).
Expose
indexed_through_blockonGET /v1/arena/timersandGET /v1/arena/podiums— the latest fully ingested block from Postgreschain_pointer, alongside existing headread_block_number. When ingest trails the chain-timer poller, clients can detect lag (indexed_through_block<read_block_number) without ops-only/v1/statusfields.frontend/src/lib/indexerApi.tsapi_arena_ingest_lag_fields_smokeasserts lag visibilityINV-INDEXER-344-INGEST-LAG)Acceptance checklist
cd indexer && YIELDOMEGA_PG_TEST_URL=… cargo test --test integration_stage2 api_arena_ingest_lag_fields_smoke(via full integration)integration_stage2.rs::api_arena_ingest_lag_fields_smoke(pointer=50, head=100)cd frontend && npm run typecheckbash scripts/verify-podium-timers-anvil.shbash scripts/verify-podium-live-anvil.shcd indexer && cargo clippy --all-targets -- -D warnings && cargo testVerification for third parties
bash scripts/verify-podium-live-anvil.shor full QA stack).curl -s http://127.0.0.1:3100/v1/arena/timers | jq '{read_block_number, indexed_through_block}'curl -s http://127.0.0.1:3100/v1/arena/podiums | jq '{read_block_number, indexed_through_block}'x-schema-version≥ 2.19.0).indexed_through_blockshould be ≤read_block_number(typically equal or within a block).cd indexer && cargo test --test integration_stage2withYIELDOMEGA_PG_TEST_URLset.Security review — MR !517
Commit reviewed:
8a886e7a756844c54779fb5c637384b4fce6e298Scope:
indexed_through_blockonGET /v1/arena/timersandGET /v1/arena/podiums(schema 2.19.0); supporting types, integration test, docs.Outcome:
FINDINGS: 0medium+Summary
Reviewed the MR diff and traced data flow from
indexer_state.chain_pointerthroughindexed_through_block()into the two public arena GET handlers. No prior security-review threads on this MR.Attack-surface notes (no findings):
key = 'chain_pointer') withblock_numberparsed asu64and emitted as a decimal string viaserde_json. No injection path (SQL/shell/SSRF/deserialization).chain_pointer), not block hash or RPC metrics. Public/v1/statusalready exposesmax_indexed_block; this aligns ingest-lag visibility with arena consumers per #344.chain_pointervia these routes.Inline threads: none (no medium+ findings).
Security review: no medium+ findings on this diff.
mentioned in commit
2b5d0240a5