6 Commits

Author SHA1 Message Date
Felipe Novaes F Rocha
4ec899ec6d feat: handle unknown ops and proofs without halting ingestion
The chain contains op types the explorer has no serializer for (e.g.
ChannelSetKeys, opcode 16), and a single such transaction aborted the
entire backfill. Same approach as #19, adapted to the current tx format:
unrecognized opcodes and proof variants (e.g. the NoProof unit variant)
fall back to an UnknownOp/UnknownSignature pair that preserves the raw
data verbatim. Typed support can be added incrementally; known ops keep
their strict proof-type checks.

Also adds a typed ChannelSetKeys serializer (opcode 16), shaped from a
real op captured on the chain (fixture included) — its DB model already
existed, but with List[bytes] keys, which break the JSON column's utf-8
encoding; changed to HexBytes like every other byte field.
2026-06-12 16:23:04 -03:00
Felipe Novaes F Rocha
6945f45f4a fix: parse the current node wire format
Recent nodes changed the wire format in three ways that broke block
ingestion (serializers raised on every block, so the DB never populated):

- cryptarchia/info wraps its fields under "cryptarchia_info" and reports
  mode as an object ({"Started": "Online"}). Normalize before validating.
- Byte fields (inscriptions, Ed25519 signatures, Groth16 pi_a/pi_b/pi_c)
  arrive as hex strings instead of int arrays. Accept both encodings via
  BytesFromHexOrIntArray, since the encoding has drifted between releases.
- mantle_tx now carries its canonical hash and dropped the gas price
  fields. Prefer the node-provided hash (a locally computed JSON hash does
  not match the chain's real tx hash) and default gas prices to 0.

Tested with a real block fixture captured from a node.
2026-06-12 14:59:40 -03:00
Alejandro Cabeza Romero
9b56a4c8d8
Lints and prettify. 2026-03-09 11:28:46 +00:00
David Rusu
8e5ec0647c follow chain through forks 2026-02-17 10:10:47 +04:00
David Rusu
d0e105388d make frontend fork aware 2026-02-16 19:10:21 +04:00
David Rusu
fffa100d09 avoid having to specify PYTHONPATH when running with uv 2026-02-16 18:40:30 +04:00