From 26ef124f970b13a757926e889508a4a2d9160911 Mon Sep 17 00:00:00 2001 From: benthecarman Date: Tue, 15 Aug 2023 18:32:16 -0500 Subject: [PATCH] Handle amount in lnurl pay --- src/routes/Send.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/routes/Send.tsx b/src/routes/Send.tsx index 25e2620..0cd1b5d 100644 --- a/src/routes/Send.tsx +++ b/src/routes/Send.tsx @@ -208,6 +208,7 @@ export default function Send() { // These can be derived from the "destination" signal or set by the user const [amountSats, setAmountSats] = createSignal(0n); + const [isAmtEditable, setIsAmtEditable] = createSignal(true); const [source, setSource] = createSignal("lightning"); // These can only be derived from the "destination" signal @@ -232,6 +233,7 @@ export default function Send() { function clearAll() { setDestination(undefined); setAmountSats(0n); + setIsAmtEditable(true); setSource("lightning"); setInvoice(undefined); setAddress(undefined); @@ -320,8 +322,10 @@ export default function Send() { state.mutiny_wallet ?.decode_invoice(source.invoice) .then((invoice) => { - if (invoice?.amount_sats) + if (invoice?.amount_sats) { setAmountSats(invoice.amount_sats); + setIsAmtEditable(false); + } setInvoice(invoice); setSource("lightning"); }); @@ -334,7 +338,12 @@ export default function Send() { ?.decode_lnurl(source.lnurl) .then((lnurlParams) => { if (lnurlParams.tag === "payRequest") { - setAmountSats(source.amount_sats || 0n); + if (lnurlParams.min == lnurlParams.max) { + setAmountSats(lnurlParams.min / 1000n); + setIsAmtEditable(false); + } else { + setAmountSats(source.amount_sats || 0n); + } setLnurlp(source.lnurl); setSource("lightning"); } @@ -690,7 +699,7 @@ export default function Send() { amountSats={amountSats().toString()} setAmountSats={setAmountSats} fee={feeEstimate()?.toString()} - isAmountEditable={!invoice()?.amount_sats} + isAmountEditable={isAmtEditable()} maxAmountSats={maxAmountSats()} skipWarnings={true} />