From 023a1a088eb37d1b1e070ebca383fc9830ece912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Thu, 30 Nov 2023 09:36:10 +0100 Subject: [PATCH] feat: add currency amount to lnurl/lnaddress payments closes #2135 --- lnbits/core/models.py | 1 + lnbits/core/templates/core/wallet.html | 187 ++++++++++++++----------- lnbits/core/views/api.py | 16 ++- lnbits/static/js/base.js | 6 +- lnbits/static/js/wallet.js | 12 +- 5 files changed, 132 insertions(+), 90 deletions(-) diff --git a/lnbits/core/models.py b/lnbits/core/models.py index eef54e307..67b1ff5f3 100644 --- a/lnbits/core/models.py +++ b/lnbits/core/models.py @@ -368,6 +368,7 @@ class CreateLnurl(BaseModel): amount: int comment: Optional[str] = None description: Optional[str] = None + unit: Optional[str] = None class CreateInvoice(BaseModel): diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html index aca0e16f5..f737a73a3 100644 --- a/lnbits/core/templates/core/wallet.html +++ b/lnbits/core/templates/core/wallet.html @@ -35,7 +35,7 @@ >

- {% raw %}{{ formattedBalance }} {% endraw %} + {{LNBITS_DENOMINATION}} - - {% raw %} - {% endraw %} @@ -356,7 +359,7 @@
{{ SITE_TITLE }} Wallet: - {{ wallet.name }} + {{wallet.name}}
@@ -511,16 +514,15 @@ - {% raw %}

- {{receive.lnurl.domain}} is requesting an invoice: + is requesting an invoice:

- {% endraw %} {% if LNBITS_DENOMINATION != 'sats' %} + {% if LNBITS_DENOMINATION != 'sats' %} - {% raw %}
- - {{$t('withdraw_from')}} {{receive.lnurl.domain}} - +
- {% endraw %}
-
- {% raw %} {{ parseFloat(String(parse.invoice.fsat).replaceAll(",", - "")) / 100 }} {% endraw %} {{LNBITS_DENOMINATION}} {% raw %} -
-
- {{ parse.invoice.fsat }}{% endraw %} {{LNBITS_DENOMINATION}} {% - raw %} -
+
+

- : {{ - parse.invoice.description }}
- Expire date: {{ parse.invoice.expireDate }}
- Hash: {{ parse.invoice.hash }} + + +
+ Expire date: + +
+ Hash: +

- {% endraw %}
- {% raw %}

- Authenticate with {{ parse.lnurlauth.domain }}? + Authenticate with ?

For every website and for every LNbits wallet, a new keypair will be deterministically generated so your identity can't be tied to your LNbits wallet or linked across websites. No other - data will be shared with {{ parse.lnurlauth.domain }}. + data will be shared with + . +

+

+ Your public key for is:

-

Your public key for {{ parse.lnurlauth.domain }} is:

- {{ parse.lnurlauth.pubkey }} +

- Login +
- {% endraw %}
- {% raw %}

- {{ parse.lnurlpay.domain }} is requesting {{ - parse.lnurlpay.maxSendable | msatoshiFormat }} - {{LNBITS_DENOMINATION}} + is requesting + +
- and a {{parse.lnurlpay.commentAllowed}}-char comment + and a + -char + comment

- {{ parse.lnurlpay.targetUser || parse.lnurlpay.domain }} + is requesting
between - {{ parse.lnurlpay.minSendable | msatoshiFormat }} and - {{ parse.lnurlpay.maxSendable | msatoshiFormat }} - {% endraw %} {{LNBITS_DENOMINATION}} {% raw %} + and + +
- and a {{parse.lnurlpay.commentAllowed}}-char comment + and a + -char + comment

-

- {{ parse.lnurlpay.description }} -

+

- {% endraw %} + +
- {% raw %}
- Send {{LNBITS_DENOMINATION}} + Send
- {% endraw %}
payment.pending) !== -1 } }, - filters: { + methods: { msatoshiFormat: function (value) { return LNbits.utils.formatSat(value / 1000) - } - }, - methods: { + }, paymentTableRowKey: function (row) { return row.payment_hash + row.amount }, @@ -639,7 +638,8 @@ new Vue({ this.parse.lnurlpay.description_hash, this.parse.data.amount * 1000, this.parse.lnurlpay.description.slice(0, 120), - this.parse.data.comment + this.parse.data.comment, + this.parse.data.unit ) .then(response => { this.parse.show = false