From e5644ec4f6fb740e84d711f81adfb6c7ca9b0dd8 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Mon, 5 Sep 2022 11:47:27 +0100 Subject: [PATCH 01/12] show a dismissable notification after payment succeed --- .../extensions/tpos/templates/tpos/tpos.html | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/tpos/templates/tpos/tpos.html b/lnbits/extensions/tpos/templates/tpos/tpos.html index 98334e55..40da0068 100644 --- a/lnbits/extensions/tpos/templates/tpos/tpos.html +++ b/lnbits/extensions/tpos/templates/tpos/tpos.html @@ -253,7 +253,7 @@ name="check" transition-show="fade" class="text-light-green" - style="font-size: 40em" + style="font-size: min(90vw, 40em)" > @@ -413,9 +413,19 @@ dialog.show = false self.complete.show = true - setTimeout(function () { - self.complete.show = false - }, 5000) + self.$q.notify({ + type: 'positive', + message: 'Sats received, thanks!', + icon: 'thumb_up', + timeout: 0, + actions: [ + { + label: 'Dismiss', + color: 'white', + handler: () => (self.complete.show = false) + } + ] + }) } }) }, 3000) From ddc3ec7e2f52a75bd674f7aa1635b2bb8795674e Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Mon, 5 Sep 2022 11:55:24 +0100 Subject: [PATCH 02/12] add a tooltip and label for adding tip options --- lnbits/extensions/tpos/templates/tpos/index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lnbits/extensions/tpos/templates/tpos/index.html b/lnbits/extensions/tpos/templates/tpos/index.html index edbb2aa8..3c4fa24f 100644 --- a/lnbits/extensions/tpos/templates/tpos/index.html +++ b/lnbits/extensions/tpos/templates/tpos/index.html @@ -138,8 +138,9 @@ hide-dropdown-icon input-debounce="0" new-value-mode="add-unique" - label="Tip % Options" - > + label="Tip % Options (hit enter to add values)" + >Hit enter to add values
Date: Mon, 5 Sep 2022 12:54:37 +0100 Subject: [PATCH 03/12] update event data on ticket sold --- lnbits/extensions/events/crud.py | 45 ++++++++++---------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/lnbits/extensions/events/crud.py b/lnbits/extensions/events/crud.py index 4cc86ac4..12cc7327 100644 --- a/lnbits/extensions/events/crud.py +++ b/lnbits/extensions/events/crud.py @@ -19,42 +19,25 @@ async def create_ticket( (payment_hash, wallet, event, name, email, False, True), ) + # UPDATE EVENT DATA ON SOLD TICKET + eventdata = await get_event(event) + assert eventdata, "Couldn't get event from ticket being paid" + sold = eventdata.sold + 1 + amount_tickets = eventdata.amount_tickets - 1 + await db.execute( + """ + UPDATE events.events + SET sold = ?, amount_tickets = ? + WHERE id = ? + """, + (sold, amount_tickets, event), + ) + ticket = await get_ticket(payment_hash) assert ticket, "Newly created ticket couldn't be retrieved" return ticket -async def set_ticket_paid(payment_hash: str) -> Tickets: - row = await db.fetchone("SELECT * FROM events.ticket WHERE id = ?", (payment_hash,)) - if row[6] != True: - await db.execute( - """ - UPDATE events.ticket - SET paid = true - WHERE id = ? - """, - (payment_hash,), - ) - - eventdata = await get_event(row[2]) - assert eventdata, "Couldn't get event from ticket being paid" - - sold = eventdata.sold + 1 - amount_tickets = eventdata.amount_tickets - 1 - await db.execute( - """ - UPDATE events.events - SET sold = ?, amount_tickets = ? - WHERE id = ? - """, - (sold, amount_tickets, row[2]), - ) - - ticket = await get_ticket(payment_hash) - assert ticket, "Newly updated ticket couldn't be retrieved" - return ticket - - async def get_ticket(payment_hash: str) -> Optional[Tickets]: row = await db.fetchone("SELECT * FROM events.ticket WHERE id = ?", (payment_hash,)) return Tickets(**row) if row else None From dc6098e1ca77aaf2150d1a96fd0f370893441eaa Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Mon, 5 Sep 2022 12:56:40 +0100 Subject: [PATCH 04/12] remove call to set ticket paid --- lnbits/extensions/events/views_api.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lnbits/extensions/events/views_api.py b/lnbits/extensions/events/views_api.py index 56e6b06c..9cb18f04 100644 --- a/lnbits/extensions/events/views_api.py +++ b/lnbits/extensions/events/views_api.py @@ -24,7 +24,6 @@ from .crud import ( get_ticket, get_tickets, reg_ticket, - set_ticket_paid, update_event, ) From 01773160753abcdfdb1b6771f93a4326dd8f4672 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 7 Sep 2022 16:39:08 +0100 Subject: [PATCH 05/12] display NFC button on supported and fix null tip options --- lnbits/extensions/tpos/templates/tpos/tpos.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/tpos/templates/tpos/tpos.html b/lnbits/extensions/tpos/templates/tpos/tpos.html index 40da0068..bcd312e3 100644 --- a/lnbits/extensions/tpos/templates/tpos/tpos.html +++ b/lnbits/extensions/tpos/templates/tpos/tpos.html @@ -175,6 +175,7 @@ {% endraw %} From d1eb0b0c4d1552b62089fbb1941934c4a717ae94 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 7 Sep 2022 16:43:47 +0100 Subject: [PATCH 06/12] rollback on removing NFC button --- lnbits/extensions/tpos/templates/tpos/tpos.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/lnbits/extensions/tpos/templates/tpos/tpos.html b/lnbits/extensions/tpos/templates/tpos/tpos.html index bcd312e3..f88a8f7a 100644 --- a/lnbits/extensions/tpos/templates/tpos/tpos.html +++ b/lnbits/extensions/tpos/templates/tpos/tpos.html @@ -175,7 +175,6 @@ {% endraw %} From fad040edf19513a1453f25ebe9bc752fe5f90e83 Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Mon, 12 Sep 2022 08:49:12 +0100 Subject: [PATCH 07/12] remove toast - click checkmark to dismiss --- lnbits/extensions/tpos/templates/tpos/tpos.html | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/lnbits/extensions/tpos/templates/tpos/tpos.html b/lnbits/extensions/tpos/templates/tpos/tpos.html index f88a8f7a..ad04b3be 100644 --- a/lnbits/extensions/tpos/templates/tpos/tpos.html +++ b/lnbits/extensions/tpos/templates/tpos/tpos.html @@ -414,19 +414,6 @@ dialog.show = false self.complete.show = true - self.$q.notify({ - type: 'positive', - message: 'Sats received, thanks!', - icon: 'thumb_up', - timeout: 0, - actions: [ - { - label: 'Dismiss', - color: 'white', - handler: () => (self.complete.show = false) - } - ] - }) } }) }, 3000) From 8c75ea600fd0a6c14e07207690c515d64cdb18ca Mon Sep 17 00:00:00 2001 From: Gene Takavic <80261724+iWarpBTC@users.noreply.github.com> Date: Mon, 12 Sep 2022 10:17:45 +0200 Subject: [PATCH 08/12] fix for uppercase QR --- lnbits/core/static/js/wallet.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnbits/core/static/js/wallet.js b/lnbits/core/static/js/wallet.js index 1c417eaf..e62c1a6d 100644 --- a/lnbits/core/static/js/wallet.js +++ b/lnbits/core/static/js/wallet.js @@ -369,9 +369,9 @@ new Vue({ decodeRequest: function () { this.parse.show = true let req = this.parse.data.request.toLowerCase() - if (this.parse.data.request.startsWith('lightning:')) { + if (this.parse.data.request.toLowerCase().startsWith('lightning:')) { this.parse.data.request = this.parse.data.request.slice(10) - } else if (this.parse.data.request.startsWith('lnurl:')) { + } else if (this.parse.data.request.toLowerCase().startsWith('lnurl:')) { this.parse.data.request = this.parse.data.request.slice(6) } else if (req.indexOf('lightning=lnurl1') !== -1) { this.parse.data.request = this.parse.data.request From b8531f9e0e707dd604fb61e093371abad68ba736 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 12 Sep 2022 12:32:03 +0200 Subject: [PATCH 09/12] Change message about login functionality According to the README, Lnbits is already at 0.9. Claiming a feature will be added in 0.2 doesn't make sense. --- lnbits/core/templates/core/wallet.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html index bd2668d1..bccdc2b4 100644 --- a/lnbits/core/templates/core/wallet.html +++ b/lnbits/core/templates/core/wallet.html @@ -711,7 +711,7 @@
Warning

- Login functionality to be released in v0.2, for now, + Login functionality to be released in a future update, for now, make sure you bookmark this page for future access to your wallet Date: Tue, 13 Sep 2022 16:24:30 +0300 Subject: [PATCH 10/12] feat: add link for `hardware-wallet` browser flash --- .../templates/watchonly/_api_docs.html | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html b/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html index db0811f5..ba52c4fa 100644 --- a/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html +++ b/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html @@ -3,23 +3,36 @@

Onchain Wallet (watch-only) extension uses mempool.space
For use with "account Extended Public Key" - https://iancoleman.io/bip39/ + https://iancoleman.io/bip39/ +
+ Flash binaries + directly from browser
Created by, - Ben Arc (using, Embit
)

- Swagger REST API Documentation

From 232d50baaa03c29da712c4158f7635853ad3f1bb Mon Sep 17 00:00:00 2001 From: calle <93376500+callebtc@users.noreply.github.com> Date: Thu, 15 Sep 2022 14:48:59 +0300 Subject: [PATCH 11/12] Fix: tasks.py reuse db connection for invoice deletion (#971) * check if wallet exists * check wallet existence in key check * reuse db connection for payment deletion --- lnbits/core/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lnbits/core/models.py b/lnbits/core/models.py index 219380c8..216acafd 100644 --- a/lnbits/core/models.py +++ b/lnbits/core/models.py @@ -174,7 +174,7 @@ class Payment(BaseModel): logger.warning( f"Deleting outgoing failed payment {self.checking_id}: {status}" ) - await self.delete() + await self.delete(conn) elif not status.pending: logger.info( f"Marking '{'in' if self.is_in else 'out'}' {self.checking_id} as not pending anymore: {status}" @@ -182,10 +182,10 @@ class Payment(BaseModel): await self.update_status(status, conn=conn) return status - async def delete(self) -> None: + async def delete(self, conn: Optional[Connection] = None) -> None: from .crud import delete_payment - await delete_payment(self.checking_id) + await delete_payment(self.checking_id, conn=conn) class BalanceCheck(BaseModel): From e7a6e86e7add238dce56f438aab491893e329a7e Mon Sep 17 00:00:00 2001 From: calle <93376500+callebtc@users.noreply.github.com> Date: Sun, 18 Sep 2022 16:27:03 +0300 Subject: [PATCH 12/12] Fix/duplicate payments (#973) * check if wallet exists * check wallet existence in key check * fix duplicate removal --- lnbits/core/crud.py | 9 +++++++++ lnbits/core/services.py | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lnbits/core/crud.py b/lnbits/core/crud.py index 4122f902..ecc27a9c 100644 --- a/lnbits/core/crud.py +++ b/lnbits/core/crud.py @@ -452,6 +452,15 @@ async def delete_payment(checking_id: str, conn: Optional[Connection] = None) -> ) +async def delete_wallet_payment( + checking_id: str, wallet_id: str, conn: Optional[Connection] = None +) -> None: + await (conn or db).execute( + "DELETE FROM apipayments WHERE checking_id = ? AND wallet = ?", + (checking_id, wallet_id), + ) + + async def check_internal( payment_hash: str, conn: Optional[Connection] = None ) -> Optional[str]: diff --git a/lnbits/core/services.py b/lnbits/core/services.py index a6e0b43a..10693f4b 100644 --- a/lnbits/core/services.py +++ b/lnbits/core/services.py @@ -28,7 +28,7 @@ from . import db from .crud import ( check_internal, create_payment, - delete_payment, + delete_wallet_payment, get_wallet, get_wallet_payment, update_payment_details, @@ -221,7 +221,7 @@ async def pay_invoice( logger.warning(f"backend sent payment failure") async with db.connect() as conn: logger.debug(f"deleting temporary payment {temp_id}") - await delete_payment(temp_id, conn=conn) + await delete_wallet_payment(temp_id, wallet_id, conn=conn) raise PaymentFailure( f"payment failed: {payment.error_message}" or "payment failed, but backend didn't give us an error message"