Files
observer/web/test
grenadeandClaude Opus 5.5 7c02840f91
ci / gate (push) Successful in 4m33s
deploy / validate (push) Skipped
deploy / build (push) Successful in 9m32s
deploy / deploy-web (push) Successful in 25s
deploy / deploy-api (push) Successful in 25s
feat: Quantus transaction page, addressed by hash, with history hashed
A transaction is addressed by its hash, which is what a wallet shows and
what the bridge writes into a NEAR mint. But chain_extrinsic.hash had
been written only since migration 0018: 4,045 of 285,708 mainnet
extrinsics had one. Links from the NEAR pages could therefore land only
on the block.

- Block page anchors: each extrinsic row has id x<index>. A link with
  that fragment scrolls to the row and marks it, and the fragment
  survives the height-to-hash redirect.
- Hash backfill (hashscan): the work list is the rows with no hash, and
  it only shrinks, because live ingest hashes everything it writes. Each
  block is read from our own node and hashed with the function the
  bridge links use. Verified against the known deposit 0xc4444afc at
  180,029/1, at about 6 ms a block. The client holds only our own
  endpoints, so the job waits when bob's node is down rather than
  walking history through a public fallback. Chains with no node of
  ours (the testnets) are not backfilled and are hashed from now on
  only.
- /quantus/tx/<hash> and GET /v1/chains/{chain}/tx/{hash}: the
  extrinsic as the block page decodes it, its events, its fee, and for a
  bridge deposit the NEAR mint that names it. A miss while the backfill
  is running says how many extrinsics are still unhashed, not that the
  transaction does not exist.
- Links from the NEAR transaction page, the Intents account page and the
  bridge deposits table now go to the transaction, and the block page's
  index cell links to it.

Closes #48

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015tyzzRVjH9AdwGtYwsH5VC
2026-10-07 16:01:47 +03:00
..