diff options
| author | Adam Soltys <[email protected]> | 2024-09-19 13:04:01 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-09-19 13:04:01 -0700 |
| commit | a8dce552da00fcdd144dbc2a39d660c342d4c7b5 (patch) | |
| tree | e6d8782dd3a1d650ea36eb69cfa85536e758f2d3 /lib/nwc.ts | |
| parent | 0b2f9a963ed2503ac611eab3d8bd5b640ebe08f2 (diff) | |
| download | coinos-server-a8dce552da00fcdd144dbc2a39d660c342d4c7b5.tar.gz coinos-server-a8dce552da00fcdd144dbc2a39d660c342d4c7b5.zip | |
nwc make_invoice
Diffstat (limited to 'lib/nwc.ts')
| -rw-r--r-- | lib/nwc.ts | 43 |
1 files changed, 33 insertions, 10 deletions
@@ -7,6 +7,7 @@ import { sendInternal, sendLightning } from "$lib/payments"; import { serverPubkey } from "$lib/nostr"; import { nip04, nip19, finalizeEvent } from "nostr-tools"; import type { UnsignedEvent } from "nostr-tools"; +import { generate } from "$lib/invoices"; import ln from "$lib/ln"; let result = (result) => ({ result }); @@ -98,20 +99,42 @@ let handle = (method, params, user) => async get_info() { let { alias, blockheight, color } = await ln.getinfo(); - return { - result: { - alias, - color, - pubkey: serverPubkey, - network: "mainnet", - block_height: blockheight, - methods: ["pay_invoice", "get_balance", "get_info"], - }, - }; + return result({ + alias, + color, + pubkey: serverPubkey, + network: "mainnet", + block_height: blockheight, + methods: ["pay_invoice", "get_balance", "get_info"], + }); }, async get_balance() { let balance = await g(`balance:${user.id}`); return result({ balance }); }, + + async make_invoice() { + let { amount, description, description_hash, expiry } = params; + + let invoice = { + amount: Math.round(amount / 1000), + type: "lightning", + memo: description, + expiry, + }; + + let { hash, created: created_at } = await generate({ invoice, user }); + + return result({ + type: "incoming", + invoice: hash, + description, + description_hash, + amount, + created_at, + expires_at: created_at + expiry, + metadata: {}, + }); + }, })[method](params); |
