#!/usr/bin/env node /** * Smoke local settlement BTC rails after rebuild. * Usage: node scripts/deployment/smoke-btc-settlement.mjs * Env: SETTLEMENT_URL (default http://127.0.0.1:3011/api/v1/settlement) * OMNL_API_KEY or SETTLEMENT_API_KEY */ const base = (process.env.SETTLEMENT_URL || 'http://127.0.0.1:3011/api/v1/settlement').replace( /\/$/, '', ); const key = process.env.OMNL_API_KEY || process.env.SETTLEMENT_API_KEY || ''; async function get(path) { const res = await fetch(`${base}${path}`, { headers: { Authorization: `Bearer ${key}`, Accept: 'application/json' }, }); const text = await res.text(); let body; try { body = JSON.parse(text); } catch { body = text; } return { status: res.status, body }; } const health = await get('/health'); const ledger = await get('/btc/ledger'); const settlements = await get('/btc/settlements?limit=10'); const settledSats = ledger.body?.mintQueue?.settledSats ?? 0; const ok = health.status === 200 && ledger.status === 200 && settlements.status === 200 && Number(settledSats) >= 100_000_000_000; console.log( JSON.stringify( { base, health: health.status, ledger: ledger.status, settlements: settlements.status, custodyHo12015: ledger.body?.gl?.custodyHo12015, settledSats, settlementCount: ledger.body?.mintQueue?.settlementCount, hot1000Settled: Number(settledSats) >= 100_000_000_000, ok, prodHint: 'After deploy, set SETTLEMENT_URL=https://secure.omdnl.org/settlement and re-run this smoke', }, null, 2, ), ); process.exit(ok ? 0 : 1);