diff --git a/lnbits/extensions/withdraw/crud.py b/lnbits/extensions/withdraw/crud.py
index 0d24aae27..b8cabf1b4 100644
--- a/lnbits/extensions/withdraw/crud.py
+++ b/lnbits/extensions/withdraw/crud.py
@@ -55,31 +55,26 @@ def create_withdraw_link(
usescsv,
),
)
- return get_withdraw_link(link_id, uses)
+ return get_withdraw_link(link_id, 0)
-def get_withdraw_link(link_id: str, num=None) -> Optional[WithdrawLink]:
+def get_withdraw_link(link_id: str, num=0) -> Optional[WithdrawLink]:
with open_ext_db("withdraw") as db:
row = db.fetchone("SELECT * FROM withdraw_link WHERE id = ?", (link_id,))
- link = []
- for item in row:
- link.append(item)
- tohash = row["id"] + row["unique_hash"] + str(num)
- link.append(shortuuid.uuid(name=tohash))
+ link = []
+ for item in row:
+ link.append(item)
+ link.append(num)
return WithdrawLink._make(link)
-def get_withdraw_link_by_hash(unique_hash: str, num=None) -> Optional[WithdrawLink]:
+def get_withdraw_link_by_hash(unique_hash: str, num=0) -> Optional[WithdrawLink]:
with open_ext_db("withdraw") as db:
row = db.fetchone("SELECT * FROM withdraw_link WHERE unique_hash = ?", (unique_hash,))
link = []
for item in row:
link.append(item)
- if not num:
- link.append("")
- return WithdrawLink._make(link)
- tohash = row["id"] + row["unique_hash"] + str(num)
- link.append(shortuuid.uuid(name=tohash))
+ link.append(num)
return WithdrawLink._make(link)
diff --git a/lnbits/extensions/withdraw/models.py b/lnbits/extensions/withdraw/models.py
index 37ec57227..5af8cdebc 100644
--- a/lnbits/extensions/withdraw/models.py
+++ b/lnbits/extensions/withdraw/models.py
@@ -2,7 +2,7 @@ from flask import url_for
from lnurl import Lnurl, LnurlWithdrawResponse, encode as lnurl_encode
from sqlite3 import Row
from typing import NamedTuple
-
+import shortuuid # type: ignore
from lnbits.settings import FORCE_HTTPS
@@ -20,13 +20,13 @@ class WithdrawLink(NamedTuple):
open_time: int
used: int
usescsv: str
- multihash: str
+ number: int
@classmethod
def from_row(cls, row: Row) -> "WithdrawLink":
data = dict(row)
data["is_unique"] = bool(data["is_unique"])
- data["multihash"] = ""
+ data["number"] = 0
return cls(**data)
@property
@@ -36,9 +36,11 @@ class WithdrawLink(NamedTuple):
@property
def lnurl(self) -> Lnurl:
scheme = "https" if FORCE_HTTPS else None
- print(self.is_unique)
if self.is_unique:
- url = url_for("withdraw.api_lnurl_multi_response", unique_hash=self.unique_hash, id_unique_hash=self.multihash, _external=True, _scheme=scheme)
+ usescssv = self.usescsv.split(",")
+ tohash = self.id + self.unique_hash + usescssv[self.number]
+ multihash = shortuuid.uuid(name=tohash)
+ url = url_for("withdraw.api_lnurl_multi_response", unique_hash=self.unique_hash, id_unique_hash=multihash, _external=True, _scheme=scheme)
else:
url = url_for("withdraw.api_lnurl_response", unique_hash=self.unique_hash, _external=True, _scheme=scheme)
@@ -49,7 +51,6 @@ class WithdrawLink(NamedTuple):
scheme = "https" if FORCE_HTTPS else None
url = url_for("withdraw.api_lnurl_callback", unique_hash=self.unique_hash, _external=True, _scheme=scheme)
- print(url)
return LnurlWithdrawResponse(
callback=url,
k1=self.k1,
diff --git a/lnbits/extensions/withdraw/static/js/index.js b/lnbits/extensions/withdraw/static/js/index.js
index 9d041fb53..6e9371c23 100644
--- a/lnbits/extensions/withdraw/static/js/index.js
+++ b/lnbits/extensions/withdraw/static/js/index.js
@@ -113,7 +113,10 @@ new Vue({
},
openQrCodeDialog: function (linkId) {
var link = _.findWhere(this.withdrawLinks, {id: linkId})
+
this.qrCodeDialog.data = _.clone(link)
+ console.log(this.qrCodeDialog.data)
+ this.qrCodeDialog.data.url = window.location.hostname
this.qrCodeDialog.show = true
},
openUpdateDialog: function (linkId) {
diff --git a/lnbits/extensions/withdraw/templates/withdraw/display.html b/lnbits/extensions/withdraw/templates/withdraw/display.html
index 9915346d8..05dce0211 100644
--- a/lnbits/extensions/withdraw/templates/withdraw/display.html
+++ b/lnbits/extensions/withdraw/templates/withdraw/display.html
@@ -7,10 +7,10 @@
{% if link.is_spent %}