Skip to content

bsv-wallet-postgres 0.4.0

Choose a tag to compare

@sgbett sgbett released this 12 Apr 21:53
· 565 commits to master since this release

0.4.0 — 2026-04-12

Added

  • BSV::Wallet::SolidQueueAdapter — PostgreSQL-backed async broadcast queue implementing the BroadcastQueue interface
  • Migration 006: wallet_broadcast_jobs table with FOR UPDATE SKIP LOCKED polling support
  • Background worker thread broadcasts transactions and promotes/rolls back wallet state
  • Recovery on restart via stale locked_at detection
  • Idempotent enqueue on duplicate txid (crash recovery)
  • MAX_ATTEMPTS enforcement (5) prevents infinite retry loops
  • Guard refuses MemoryStore attachment

Fixed

  • Migration timestamps use timestamptz (matching migration 004 pattern)
  • start() check-and-set is atomic under mutex (prevents TOCTOU double-spawn)
  • Deserialization failures mark job as failed immediately (no tight retry loop)