diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/ecash.ts | 23 | ||||
| -rw-r--r-- | lib/invoices.ts | 4 |
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/ecash.ts b/lib/ecash.ts index 7c44bec0..1a214b46 100644 --- a/lib/ecash.ts +++ b/lib/ecash.ts @@ -6,11 +6,16 @@ import { CashuMint, CashuWallet, MintQuoteState, + PaymentRequest, + PaymentRequestTransport, + PaymentRequestTransportType, getDecodedToken, getEncodedToken, getEncodedTokenV4, } from "@cashu/cashu-ts"; +import { v4 } from "uuid"; +const { URL } = process.env; const m = new CashuMint(config.mintUrl); const w = new CashuWallet(m); @@ -92,3 +97,21 @@ export async function init(amount = 100000) { console.log(e); } } + +export function request(uuid, amount, memo) { + const target = `${URL}/ecash/${uuid}`; + const tags = [["n", "17"]]; + + const { POST: type } = PaymentRequestTransportType; + const transport = [{ type, target, tags }]; + const unit = "sat"; + + return new PaymentRequest( + transport, + uuid, + amount, + unit, + config.mintUrl, + memo, + ).toEncodedRequest(); +} diff --git a/lib/invoices.ts b/lib/invoices.ts index 30ae8402..5e59fd83 100644 --- a/lib/invoices.ts +++ b/lib/invoices.ts @@ -1,5 +1,6 @@ import config from "$config"; import { db, g, s } from "$lib/db"; +import { request } from "$lib/ecash"; import ln from "$lib/ln"; import { types } from "$lib/payments"; import { emit } from "$lib/sockets"; @@ -101,6 +102,9 @@ export const generate = async ({ invoice, user }) => { text = bip21(hash, invoice); } else if (type === types.internal) { hash = id; + } else if (type === types.ecash) { + hash = id; + text = request(id, amount, memo); } else { fail(`unrecognized type ${type}`); } |
