A quick maintenance release on top of 4.0.7 — API query fixes, an indexing routing fix, sync-accounts UX, and a security override for ws.
Fixes
get_actionssort=ascaccepts mixed date/block bounds (#174). A block-number bound combined with an ISO-date bound no longer returns400 Invalid time value; each bound is classified independently (positive integer →block_num, else →@timestamp), in v1 and v2. Also hardened: strict integer classification (a date withoutTis no longer misread as a block number) and thesort=ascrecency window now applies to any dateafterbound. Block-number bounds remain the supported way to query ranges older thanmax_asc_window_days.get_tokensmissing balances (#170):sync accountsnow resolves a contract's transfer struct via the action's declaredtype, so contracts using a non-transferstruct name are no longer skipped.ds_pooldropped traces for unassigned contracts (#169): an off-by-one routed unassigned contracts to a non-existent queue underds_pool_size: 1; they now route tods_pool:1.hyp-control indexer stopno longer fails withInvalid URL: ws://localhost:undefined/localon pre-4.0 configs missingcontrol_port(now defaults to 7002).
Improvements
- Accurate
sync accountslive progress (#171): continuously-moving "holders scanned" / "balances" counters and current-contract display instead of a stuck0/1.
Security
ws— Uninitialized memory disclosure (medium): pinnedwsto8.20.1across the dependency tree viaoverrides(transitive deps still resolved < 8.20.1).
Maintenance
nodemailer8.0.7 → 8.0.10,ioredis5.10.1 → 5.11.0,@types/node25.5.0 → 25.9.1; CI now runs Build & Test ondev.
Upgrade note: after upgrading, re-run
./hyp-control sync accounts <chain>(orsync all) to backfill token contracts that the previous detection bug skipped.
Full details in CHANGELOG.md.