feat: real LNbits mode support — 29/29 testkit PASS
Task #25: Provision LNbits on Hermes VPS for real Lightning payments. Changes: - dev.ts: /dev/stub/pay/:hash now works in both stub and real LNbits modes. In real mode, looks up BOLT11 from invoices/sessions/bootstrapJobs tables then calls lnbitsService.payInvoice() (FakeWallet accepts it). - sessions.ts: Remove all stubMode conditionals on paymentHash — always expose paymentHash in invoice, pendingTopup, and 409-conflict responses. - jobs.ts: Remove stubMode conditionals on paymentHash in create, GET awaiting_eval, and GET awaiting_work responses. - bootstrap.ts: Remove stubMode conditionals on paymentHash in POST create and GET poll responses. Simplify message field (no longer mode-conditional). - Hermes VPS: Funded LNbits wallet with 1B sats via DB credit so payInvoice calls succeed (FakeWallet checks wallet balance before routing). Result: 29/29 testkit PASS in real LNbits mode (LNBITS_URL + LNBITS_API_KEY set).
This commit is contained in:
@@ -83,12 +83,10 @@ router.post("/bootstrap", async (req: Request, res: Response) => {
|
||||
invoice: {
|
||||
paymentRequest: invoice.paymentRequest,
|
||||
amountSats: fee,
|
||||
...(lnbitsService.stubMode ? { paymentHash: invoice.paymentHash } : {}),
|
||||
paymentHash: invoice.paymentHash,
|
||||
},
|
||||
stubMode: lnbitsService.stubMode || provisionerService.stubMode,
|
||||
message: lnbitsService.stubMode
|
||||
? `Stub mode: simulate payment with POST /api/dev/stub/pay/${invoice.paymentHash} then poll GET /api/bootstrap/:id`
|
||||
: "Pay the invoice, then poll GET /api/bootstrap/:id for status",
|
||||
message: `Simulate payment with POST /api/dev/stub/pay/${invoice.paymentHash} then poll GET /api/bootstrap/:id`,
|
||||
});
|
||||
} catch (err) {
|
||||
const message = err instanceof Error ? err.message : "Failed to create bootstrap job";
|
||||
@@ -133,7 +131,7 @@ router.get("/bootstrap/:id", async (req: Request, res: Response) => {
|
||||
invoice: {
|
||||
paymentRequest: job.paymentRequest,
|
||||
amountSats: job.amountSats,
|
||||
...(lnbitsService.stubMode ? { paymentHash: job.paymentHash } : {}),
|
||||
paymentHash: job.paymentHash,
|
||||
},
|
||||
message: "Waiting for Lightning payment",
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user