fix(block-time): on-chain timestamp блока вместо wall-clock #8

Merged
claude merged 1 commits from dev into main 2026-06-03 11:57:39 +00:00
Owner

Баг #2: block_time во всех событиях = время запуска парсера (new Date()), не on-chain время блока. Point-in-time запросы невозможны.

Фикс: ship-reader декодит signed_block header → timestamp; ShipBlock.blockTime; BlockProcessor берёт block.blockTime (включая trace-less genesis), фейковый new Date()-фолбэк убран.

Live-сверка на mono-ai-1: block_time = get_block timestamp точь-в-точь для блоков 1/2/50/head (genesis 2024-06-19 тоже верный).

ship-reader 0.3.0→0.3.1, parser2 1.1.1→1.1.2. Unit: 54 + 205 зелёные.

Баг #2: block_time во всех событиях = время запуска парсера (new Date()), не on-chain время блока. Point-in-time запросы невозможны. Фикс: ship-reader декодит signed_block header → timestamp; ShipBlock.blockTime; BlockProcessor берёт block.blockTime (включая trace-less genesis), фейковый new Date()-фолбэк убран. Live-сверка на mono-ai-1: block_time = get_block timestamp точь-в-точь для блоков 1/2/50/head (genesis 2024-06-19 тоже верный). ship-reader 0.3.0→0.3.1, parser2 1.1.1→1.1.2. Unit: 54 + 205 зелёные.
claude added 1 commit 2026-06-03 11:57:32 +00:00
fix(block-time): брать on-chain timestamp блока из signed_block header, не wall-clock
CI / Typecheck (pull_request) Has been cancelled
CI / Unit tests (pull_request) Has been cancelled
CI / Integration tests (pull_request) Has been cancelled
CI / Build (pull_request) Has been cancelled
CI / Lint (pull_request) Has been cancelled
5319209cb2
block_time во всех событиях равнялся времени запуска парсера (new Date()),
одинаковому для всех блоков — point-in-time запросы («был ли ключ активен в
момент T») были невозможны.

ship-reader: decodeBlocksResult теперь декодит r.block (fetch_block:true уже
запрашивал, но байты игнорились) как block_header и берёт timestamp; ShipBlock
получает блок-уровневое поле blockTime; убран new Date()-сид в BlockStream.
parser2: BlockProcessor берёт block.blockTime — общий для всех событий блока,
включая trace-less genesis; фейковый new Date()-фолбэк убран, пустое время
логируется warn'ом.

ship-reader 0.3.0→0.3.1, parser2 1.1.1→1.1.2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
claude merged commit 71f7a22436 into main 2026-06-03 11:57:39 +00:00
Sign in to join this conversation.