Skip to content

Repository files navigation

lnreceipt

Generate a Lightning payment receipt from a BOLT11 or BOLT12 (lni1…) invoice and its 32-byte payment preimage. Invoice details and the payment proof are processed locally in the browser. Shared links include both the invoice and preimage.

BOLT12 receipts display the invoice amount, description, creation date, payment hash, and signing public key. The invoice signature is verified using the BOLT12 specification before displaying the receipt. Uppercase invoices and + continuation separators are supported. Offers (lno1…) and invoice requests (lnr1…) are not payment invoices; use the resulting lni1… invoice. Expired invoices can still be used to verify historical payments.

Recommended IDE Setup

VSCode + Volar (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Run Unit Tests with Vitest

npm run test:unit       # single run
npm run test:unit:dev   # watch mode

Run End-to-End Tests with Playwright

npx playwright install chromium   # first time only
npm run test:e2e                  # headless run (builds and serves the app automatically)
npm run test:e2e:dev              # interactive UI mode

Lint with ESLint

npm run lint