From 568a1be91fe86b814b49569e4bbbc5c233b7ee3e Mon Sep 17 00:00:00 2001 From: benarc Date: Wed, 2 Feb 2022 13:07:12 +0000 Subject: [PATCH 1/4] Adding denomination for alternative currencies --- lnbits/core/templates/core/wallet.html | 34 ++++++++++++++++++++------ lnbits/helpers.py | 1 + lnbits/settings.py | 1 + 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html index 9ca00ad50..3edfbb7e4 100644 --- a/lnbits/core/templates/core/wallet.html +++ b/lnbits/core/templates/core/wallet.html @@ -15,8 +15,8 @@

- {% raw %}{{ formattedBalance }}{% endraw %} - sat + {% raw %}{{ formattedBalance }} {% endraw %} + {{LNBITS_DENOMINATION}} {{receive.lnurl.domain}} is requesting an invoice:

- + {% endraw %} {% if LNBITS_DENOMINATION != 'sats' %} + {% else %} + {% endif %} {% raw %} +
{% raw %} -
{{ parse.invoice.fsat }} sat
+
+ {{ parse.invoice.fsat }} {{LNBITS_DENOMINATION}} +

Description: {{ parse.invoice.description }}
@@ -489,7 +504,7 @@

{{ parse.lnurlpay.domain }} is requesting {{ - parse.lnurlpay.maxSendable | msatoshiFormat }} sat + parse.lnurlpay.maxSendable | msatoshiFormat }} {{LNBITS_DENOMINATION}}
and a {{parse.lnurlpay.commentAllowed}}-char comment @@ -499,7 +514,8 @@ {{ parse.lnurlpay.targetUser || parse.lnurlpay.domain }} is requesting
between {{ parse.lnurlpay.minSendable | msatoshiFormat }} and - {{ parse.lnurlpay.maxSendable | msatoshiFormat }} sat + {{ parse.lnurlpay.maxSendable | msatoshiFormat }} + {% endraw %} {{LNBITS_DENOMINATION}} {% raw %}
and a {{parse.lnurlpay.commentAllowed}}-char comment @@ -521,7 +537,7 @@ dense v-model.number="parse.data.amount" type="number" - label="Amount (sat) *" + label="Amount ({{LNBITS_DENOMINATION}}) *" :min="parse.lnurlpay.minSendable / 1000" :max="parse.lnurlpay.maxSendable / 1000" :readonly="parse.lnurlpay.fixed" @@ -539,7 +555,9 @@

- Send satoshis + Send {{LNBITS_DENOMINATION}} Cancel diff --git a/lnbits/helpers.py b/lnbits/helpers.py index a13964119..dfd9d53de 100644 --- a/lnbits/helpers.py +++ b/lnbits/helpers.py @@ -156,6 +156,7 @@ def template_renderer(additional_folders: List = []) -> Jinja2Templates: ) ) t.env.globals["SITE_TITLE"] = settings.LNBITS_SITE_TITLE + t.env.globals["LNBITS_DENOMINATION"] = settings.LNBITS_DENOMINATION t.env.globals["SITE_TAGLINE"] = settings.LNBITS_SITE_TAGLINE t.env.globals["SITE_DESCRIPTION"] = settings.LNBITS_SITE_DESCRIPTION t.env.globals["LNBITS_THEME_OPTIONS"] = settings.LNBITS_THEME_OPTIONS diff --git a/lnbits/settings.py b/lnbits/settings.py index 1ca0c2dac..b204e28f1 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -34,6 +34,7 @@ LNBITS_DISABLED_EXTENSIONS: List[str] = env.list( ) LNBITS_SITE_TITLE = env.str("LNBITS_SITE_TITLE", default="LNbits") +LNBITS_DENOMINATION = env.str("LNBITS_DENOMINATION", default="sats") LNBITS_SITE_TAGLINE = env.str( "LNBITS_SITE_TAGLINE", default="free and open-source lightning wallet" ) From 75e78d2ab6fd6a4d965e8cadae51821a7be91658 Mon Sep 17 00:00:00 2001 From: benarc Date: Wed, 2 Feb 2022 17:28:00 +0000 Subject: [PATCH 2/4] FakeWallet own denomination now working --- lnbits/core/static/js/wallet.js | 55 ++++++++++++++------------ lnbits/core/templates/core/wallet.html | 49 ++++++++++++++++------- lnbits/static/js/components.js | 10 +++-- lnbits/templates/base.html | 2 + 4 files changed, 72 insertions(+), 44 deletions(-) diff --git a/lnbits/core/static/js/wallet.js b/lnbits/core/static/js/wallet.js index ac88549ce..8d58302bf 100644 --- a/lnbits/core/static/js/wallet.js +++ b/lnbits/core/static/js/wallet.js @@ -161,14 +161,14 @@ new Vue({ { name: 'sat', align: 'right', - label: 'Amount (sat)', + label: 'Amount (' + LNBITS_DENOMINATION + ')', field: 'sat', sortable: true }, { name: 'fee', align: 'right', - label: 'Fee (msat)', + label: 'Fee (m' + LNBITS_DENOMINATION + ')', field: 'fee' } ], @@ -191,7 +191,11 @@ new Vue({ }, computed: { formattedBalance: function () { - return LNbits.utils.formatSat(this.balance || this.g.wallet.sat) + if (LNBITS_DENOMINATION != 'sats') { + return this.balance / 100 + } else { + return LNbits.utils.formatSat(this.balance || this.g.wallet.sat) + } }, filteredPayments: function () { var q = this.paymentsTable.filter @@ -250,28 +254,27 @@ new Vue({ this.parse.data.paymentChecker = null this.parse.camera.show = false }, - updateBalance: function(credit){ + updateBalance: function (credit) { + if (LNBITS_DENOMINATION != 'sats') { + credit = credit * 100 + } LNbits.api - .request( - 'PUT', - '/api/v1/wallet/balance/' + credit, - this.g.wallet.inkey - ) - .catch(err => { - LNbits.utils.notifyApiError(err) - }) - .then(response => { - let data = response.data - if (data.status === 'ERROR') { - this.$q.notify({ - timeout: 5000, - type: 'warning', - message: `Failed to update.`, - }) - return - } - this.balance = this.balance + data.balance - }) + .request('PUT', '/api/v1/wallet/balance/' + credit, this.g.wallet.inkey) + .catch(err => { + LNbits.utils.notifyApiError(err) + }) + .then(response => { + let data = response.data + if (data.status === 'ERROR') { + this.$q.notify({ + timeout: 5000, + type: 'warning', + message: `Failed to update.` + }) + return + } + this.balance = this.balance + data.balance + }) }, closeReceiveDialog: function () { setTimeout(() => { @@ -295,7 +298,9 @@ new Vue({ }, createInvoice: function () { this.receive.status = 'loading' - + if (LNBITS_DENOMINATION != 'sats') { + this.receive.data.amount = this.receive.data.amount * 100 + } LNbits.api .createInvoice( this.g.wallet, diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html index 3edfbb7e4..189d1547f 100644 --- a/lnbits/core/templates/core/wallet.html +++ b/lnbits/core/templates/core/wallet.html @@ -35,7 +35,9 @@ v-model="scope.value" dense autofocus - type="number" + mask="#.##" + fill-mask="0" + reverse-fill-mask @keyup.enter="updateBalance(scope.value)" >