From 6fc74e06fd891baf633d8d54fa672f3f9181c16c Mon Sep 17 00:00:00 2001 From: benarc Date: Mon, 28 Sep 2020 14:05:33 +0100 Subject: [PATCH] Pulls env into /admin, then updates admin/funding DB --- lnbits/core/crud.py | 38 +- lnbits/core/migrations.py | 199 ++- lnbits/core/templates/core/admin.html | 195 +-- lnbits/core/views/api.py | 21 +- .../admin/templates/admin/index.html | 1074 +++++++++-------- 5 files changed, 806 insertions(+), 721 deletions(-) diff --git a/lnbits/core/crud.py b/lnbits/core/crud.py index c3fc09e..c9904ab 100644 --- a/lnbits/core/crud.py +++ b/lnbits/core/crud.py @@ -345,11 +345,11 @@ def get_admin( funding_source_primary, ), ) + row = g.db.fetchone("SELECT * FROM admin WHERE 1") return Admin(**row) if row else None def get_funding( - edited: Optional[str] = "", CLightningWallet: Optional[str] = '', LndRestWallet: Optional[str] = '', LndWallet: Optional[str] = '', @@ -358,16 +358,32 @@ def get_funding( LnbitsWallet: Optional[str] = '', OpenNodeWallet: Optional[str] = '', ) -> List[Funding]: - if edited: - edited.split(",") - CLightningWallet.split(",") - LndRestWallet.split(",") - LndWallet.split(",") - LntxbotWallet.split(",") - LNPayWallet.split(",") - LnbitsWallet.split(",") - OpenNodeWallet.split(",") - print(OpenNodeWallet) + sources = [CLightningWallet, LndRestWallet, LndWallet, LntxbotWallet, LNPayWallet, LnbitsWallet, OpenNodeWallet] + for source in sources: + fsource = ['1','1','1','1','1','1','1','1','1','1'] + tsource = source.split(',') + num = 0 + for ttsource in tsource: + fsource[num] = ttsource + num = num + 1 + print(fsource) + if int(fsource[7]) == 1: + g.db.execute( + """ + UPDATE funding + SET endpoint = ?, port = ?, read_key = ?, invoice_key = ?, admin_key = ?, cert = ? + WHERE backend_wallet = ? + """, + ( + fsource[0], + fsource[1], + fsource[2], + fsource[3], + fsource[4], + fsource[5], + fsource[8], + ), + ) rows = g.db.fetchall("SELECT * FROM funding") return [Funding(**row) for row in rows] diff --git a/lnbits/core/migrations.py b/lnbits/core/migrations.py index d616425..5224250 100644 --- a/lnbits/core/migrations.py +++ b/lnbits/core/migrations.py @@ -237,108 +237,105 @@ def m003_create_funding_table(db): LntxbotWallet = db.fetchall("SELECT * FROM funding WHERE backend_wallet = ?", ("LntxbotWallet",)) OpenNodeWallet = db.fetchall("SELECT * FROM funding WHERE backend_wallet = ?", ("OpenNodeWallet",)) - # If the funding source rows do not exist and there is data in env for them, return the data and put it in a row - - if getenv("CLIGHTNING_RPC") and CLightningWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint) - VALUES (?, ?, ?) - """, - (urlsafe_short_hash(), "CLightningWallet", getenv("CLIGHTNING_RPC")), - ) - if getenv("LNBITS_INVOICE_MACAROON") and LnbitsWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) - VALUES (?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "LnbitsWallet", - getenv("LNBITS_ENDPOINT"), - getenv("LNBITS_INVOICE_MACAROON"), - getenv("LNBITS_ADMIN_MACAROON"), - ), - ) - if getenv("LND_GRPC_ENDPOINT") and LndWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, port, read_key, invoice_key, admin_key, cert) - VALUES (?, ?, ?, ?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "LndWallet", - getenv("LND_GRPC_ENDPOINT"), - getenv("LND_GRPC_PORT"), - getenv("LND_READ_MACAROON"), - getenv("LND_INVOICE_MACAROON"), - getenv("LND_ADMIN_MACAROON"), - getenv("LND_CERT"), - ), - ) - if getenv("LND_REST_ENDPOINT") and LndRestWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, read_key, invoice_key, admin_key, cert) - VALUES (?, ?, ?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "LndRestWallet", - getenv("LND_REST_ENDPOINT"), - getenv("LND_REST_READ_MACAROON"), - getenv("LND_REST_INVOICE_MACAROON"), - getenv("LND_REST_ADMIN_MACAROON"), - getenv("LND_REST_CERT"), - ), - ) + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint) + VALUES (?, ?, ?) + """, + (urlsafe_short_hash(), "CLightningWallet", getenv("CLIGHTNING_RPC")), + ) - if getenv("LNPAY_INVOICE_KEY") and LNPayWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, read_key, invoice_key, admin_key, cert) - VALUES (?, ?, ?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "LNPayWallet", - getenv("LNPAY_API_ENDPOINT"), - getenv("LNPAY_READ_KEY"), - getenv("LNPAY_INVOICE_KEY"), - getenv("LNPAY_ADMIN_KEY"), - getenv("LNPAY_API_KEY"), - ), - ) + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) + VALUES (?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "LnbitsWallet", + getenv("LNBITS_ENDPOINT"), + getenv("LNBITS_INVOICE_MACAROON"), + getenv("LNBITS_ADMIN_MACAROON"), + ), + ) - if getenv("LNTXBOT_INVOICE_KEY") and LntxbotWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) - VALUES (?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "LntxbotWallet", - getenv("LNTXBOT_API_ENDPOINT"), - getenv("LNTXBOT_INVOICE_KEY"), - getenv("LNTXBOT_ADMIN_KEY"), - ), - ) + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, port, read_key, invoice_key, admin_key, cert) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "LndWallet", + getenv("LND_GRPC_ENDPOINT"), + getenv("LND_GRPC_PORT"), + getenv("LND_READ_MACAROON"), + getenv("LND_INVOICE_MACAROON"), + getenv("LND_ADMIN_MACAROON"), + getenv("LND_CERT"), + ), + ) - if getenv("OPENNODE_INVOICE_KEY") and OpenNodeWallet != None: - db.execute( - """ - INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) - VALUES (?, ?, ?, ?, ?) - """, - ( - urlsafe_short_hash(), - "OpenNodeWallet", - getenv("OPENNODE_API_ENDPOINT"), - getenv("OPENNODE_INVOICE_KEY"), - getenv("OPENNODE_ADMIN_KEY"), - ), - ) + + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, read_key, invoice_key, admin_key, cert) + VALUES (?, ?, ?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "LndRestWallet", + getenv("LND_REST_ENDPOINT"), + getenv("LND_REST_READ_MACAROON"), + getenv("LND_REST_INVOICE_MACAROON"), + getenv("LND_REST_ADMIN_MACAROON"), + getenv("LND_REST_CERT"), + ), + ) + + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, read_key, invoice_key, admin_key, cert) + VALUES (?, ?, ?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "LNPayWallet", + getenv("LNPAY_API_ENDPOINT"), + getenv("LNPAY_READ_KEY"), + getenv("LNPAY_INVOICE_KEY"), + getenv("LNPAY_ADMIN_KEY"), + getenv("LNPAY_API_KEY"), + ), + ) + + + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) + VALUES (?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "LntxbotWallet", + getenv("LNTXBOT_API_ENDPOINT"), + getenv("LNTXBOT_INVOICE_KEY"), + getenv("LNTXBOT_ADMIN_KEY"), + ), + ) + + + db.execute( + """ + INSERT INTO funding (id, backend_wallet, endpoint, invoice_key, admin_key) + VALUES (?, ?, ?, ?, ?) + """, + ( + urlsafe_short_hash(), + "OpenNodeWallet", + getenv("OPENNODE_API_ENDPOINT"), + getenv("OPENNODE_INVOICE_KEY"), + getenv("OPENNODE_ADMIN_KEY"), + ), + ) diff --git a/lnbits/core/templates/core/admin.html b/lnbits/core/templates/core/admin.html index 7f49c64..77b23c3 100644 --- a/lnbits/core/templates/core/admin.html +++ b/lnbits/core/templates/core/admin.html @@ -139,14 +139,14 @@ context %} {% block page %} @@ -167,7 +167,7 @@ context %} {% block page %}
@@ -233,7 +233,7 @@ context %} {% block page %}
@@ -306,7 +306,7 @@ context %} {% block page %}
@@ -328,8 +328,8 @@ context %} {% block page %} @@ -337,7 +337,7 @@ context %} {% block page %}
@@ -345,7 +345,7 @@ context %} {% block page %}
@@ -355,7 +355,7 @@ context %} {% block page %}
@@ -363,7 +363,7 @@ context %} {% block page %}
@@ -376,8 +376,8 @@ context %} {% block page %} @@ -385,7 +385,7 @@ context %} {% block page %}
@@ -405,7 +405,7 @@ context %} {% block page %}
@@ -418,8 +418,8 @@ context %} {% block page %} @@ -427,7 +427,7 @@ context %} {% block page %}
@@ -435,7 +435,7 @@ context %} {% block page %}
@@ -512,13 +512,14 @@ context %} {% block page %} service_fee: 0, disabled_ext: '', edited: [], - CLightningWallet: {endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - LndRestWallet:{endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - LndWallet: {endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - LntxbotWallet:{endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - LNPayWallet:{endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - LnbitsWallet:{endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, - OpenNodeWallet:{endpoint: '', port: '', invoice: '', read: '', admin: '', cert: ''}, + CLightningWallet: ['', '', '', '', '', '', '', 0, 'CLightningWallet'], + LndRestWallet: ['', '', '', '', '', '', '', 0, 'LndRestWallet'], + LndWallet: ['', '', '', '', '', '', '', 0, 'LndWallet'], + LntxbotWallet: ['', '', '', '', '', '', '', 0, 'LntxbotWallet'], + LNPayWallet: ['', '', '', '', '', '', '', 0, 'LNPayWallet'], + LnbitsWallet: ['', '', '', '', '', '', '', 0, 'LnbitsWallet'], + OpenNodeWallet: ['', '', '', '', '', '', '', 0, 'OpenNodeWallet'], + senddata: {}, }, }, @@ -555,77 +556,77 @@ context %} {% block page %} self.data.admin.funding_source_primary = '{{admin.funding_source}}' self.data.admin.disabled_ext = '{{admin.disabled_ext}}'.split(',') funding = JSON.parse('{{ funding | tojson }}') - self.data.admin.LndRestWallet.label = 'LndRestWallet' - self.data.admin.CLightningWallet.label = 'CLightningWallet' - self.data.admin.LndWallet.label = 'LndWallet' - self.data.admin.LntxbotWallet.label = 'LntxbotWallet' - self.data.admin.LNPayWallet.label = 'LNPayWallet' - self.data.admin.LnbitsWallet.label = 'LnbitsWallet' - self.data.admin.OpenNodeWallet.label = 'OpenNodeWallet' + self.data.admin.LndRestWallet[6] = 'LndRestWallet' + self.data.admin.CLightningWallet[6] = 'CLightningWallet' + self.data.admin.LndWallet[6] = 'LndWallet' + self.data.admin.LntxbotWallet[6] = 'LntxbotWallet' + self.data.admin.LNPayWallet[6] = 'LNPayWallet' + self.data.admin.LnbitsWallet[6] = 'LnbitsWallet' + self.data.admin.OpenNodeWallet[6] = 'OpenNodeWallet' var i for (i = 0; i < funding.length; i++) { if (funding[i][1] == 'CLightningWallet') { - self.data.admin.CLightningWallet.endpoint = funding[i][2] + self.data.admin.CLightningWallet[0] = funding[i][2] if (self.data.admin.funding_source_primary == 'CLightningWallet') { - self.data.admin.CLightningWallet.label = 'CLightningWallet (main funding source)' + self.data.admin.CLightningWallet[6] = 'CLightningWallet (main funding source)' } } if (funding[i][1] == 'LndRestWallet') { - self.data.admin.LndRestWallet.endpoint = funding[i][2] - self.data.admin.LndRestWallet.read = funding[i][4] - self.data.admin.LndRestWallet.invoice = funding[i][5] - self.data.admin.LndRestWallet.admin = funding[i][6] - self.data.admin.LndRestWallet.cert = funding[i][7] + self.data.admin.LndRestWallet[0] = funding[i][2] + self.data.admin.LndRestWallet[2] = funding[i][4] + self.data.admin.LndRestWallet[3] = funding[i][5] + self.data.admin.LndRestWallet[4]= funding[i][6] + self.data.admin.LndRestWallet[5] = funding[i][7] if (self.data.admin.funding_source_primary == 'LndRestWallet') { - self.data.admin.LndRestWallet.label = 'LndRestWallet (main funding source)' + self.data.admin.LndRestWallet[6] = 'LndRestWallet (main funding source)' } } if (funding[i][1] == 'LndWallet') { - self.data.admin.LndWallet.endpoint = funding[i][2] - self.data.admin.LndWallet.port = funding[i][3] - self.data.admin.LndWallet.read = funding[i][4] - self.data.admin.LndWallet.invoice = funding[i][5] - self.data.admin.LndWallet.admin = funding[i][6] - self.data.admin.LndWallet.cert = funding[i][7] + self.data.admin.LndWallet[0] = funding[i][2] //endpoint + self.data.admin.LndWallet[1] = funding[i][3] //port + self.data.admin.LndWallet[2] = funding[i][4] //read + self.data.admin.LndWallet[3] = funding[i][5] //invoice + self.data.admin.LndWallet[4] = funding[i][6] //admin + self.data.admin.LndWallet[5]= funding[i][7] //cert if (self.data.admin.funding_source_primary == 'LndWallet') { - self.data.admin.LndWallet.label = 'LndWallet (main funding source)' + self.data.admin.LndWallet[6] = 'LndWallet (main funding source)' //label } } if (funding[i][1] == 'LntxbotWallet') { - self.data.admin.LntxbotWallet.invoice = funding[i][5] - self.data.admin.LntxbotWallet.admin = funding[i][6] + self.data.admin.LntxbotWallet[3] = funding[i][5] + self.data.admin.LntxbotWallet[4] = funding[i][6] if (self.data.admin.funding_source_primary == 'LntxbotWallet') { - self.data.admin.LntxbotWallet.label = 'LntxbotWallet (main funding source)' + self.data.admin.LntxbotWallet[6] = 'LntxbotWallet (main funding source)' } } if (funding[i][1] == 'LNPayWallet') { - self.data.admin.LNPayWallet.read = funding[i][4] - self.data.admin.LNPayWallet.invoice = funding[i][5] - self.data.admin.LNPayWallet.admin = funding[i][6] - self.data.admin.LNPayWallet.cert = funding[i][7] + self.data.admin.LNPayWallet[2] = funding[i][4] + self.data.admin.LNPayWallet[3] = funding[i][5] + self.data.admin.LNPayWallet[4] = funding[i][6] + self.data.admin.LNPayWallet[5] = funding[i][7] if (self.data.admin.funding_source_primary == 'LNPayWallet') { - self.data.admin.LNPayWallet.label = 'LNPayWallet (main funding source)' + self.data.admin.LNPayWallet[6] = 'LNPayWallet (main funding source)' } } if (funding[i][1] == 'LnbitsWallet') { - self.data.admin.LnbitsWallet.endpoint = funding[i][2] - self.data.admin.LnbitsWallet.read = funding[i][4] - self.data.admin.LnbitsWallet.invoice = funding[i][5] - self.data.admin.LnbitsWallet.admin = funding[i][6] + self.data.admin.LnbitsWallet[0] = funding[i][2] + self.data.admin.LnbitsWallet[2] = funding[i][4] + self.data.admin.LnbitsWallet[3] = funding[i][5] + self.data.admin.LnbitsWallet[4] = funding[i][6] if (self.data.admin.funding_source_primary == 'LnbitsWallet') { - self.data.admin.LnbitsWallet.label = 'LnbitsWallet (main funding source)' + self.data.admin.LnbitsWallet[6] = 'LnbitsWallet (main funding source)' } } if (funding[i][1] == 'OpenNodeWallet') { - self.data.admin.OpenNodeWallet.read = funding[i][4] - self.data.admin.OpenNodeWallet.invoice = funding[i][5] - self.data.admin.OpenNodeWallet.admin = funding[i][6] + self.data.admin.OpenNodeWallet[2] = funding[i][4] + self.data.admin.OpenNodeWallet[3] = funding[i][5] + self.data.admin.OpenNodeWallet[4] = funding[i][6] if (self.data.admin.funding_source_primary == 'OpenNodeWallet') { - self.data.admin.OpenNodeWallet.label = 'OpenNodeWallet (main funding source)' + self.data.admin.OpenNodeWallet[6] = 'OpenNodeWallet (main funding source)' } } } @@ -642,14 +643,30 @@ context %} {% block page %} LaunchLNbits: function () { var self = this var data = self.data - data.admin.disabled_ext = data.admin.disabled_ext.toString() - data.admin.service_fee = parseInt(data.admin.service_fee) - data.admin.edited = data.admin.edited.toString() + data.admin.senddata.site_title = data.admin.site_title + data.admin.senddata.tagline = data.admin.tagline + data.admin.senddata.primary_color = data.admin.primary_color + data.admin.senddata.secondary_color = data.admin.secondary_color + data.admin.senddata.funding_source_primary = data.admin.funding_source_primary + data.admin.senddata.funding_source_edited = data.admin.funding_source_edited + data.admin.senddata.allowed_users = data.admin.allowed_users + data.admin.senddata.data_folder = data.admin.data_folder + data.admin.senddata.default_wallet_name = data.admin.default_wallet_name + data.admin.senddata.user = data.admin.user + data.admin.senddata.disabled_ext = data.admin.disabled_ext.toString() + data.admin.senddata.service_fee = parseInt(data.admin.service_fee) + data.admin.senddata.edited = data.admin.edited.toString() + data.admin.senddata.CLightningWallet = data.admin.CLightningWallet.toString() + data.admin.senddata.LndRestWallet = data.admin.LndRestWallet.toString() + data.admin.senddata.LndWallet = data.admin.LndWallet.toString() + data.admin.senddata.LntxbotWallet = data.admin.LntxbotWallet.toString() + data.admin.senddata.LNPayWallet = data.admin.LNPayWallet.toString() + data.admin.senddata.LnbitsWallet = data.admin.LnbitsWallet.toString() + data.admin.senddata.OpenNodeWallet = data.admin.OpenNodeWallet.toString() LNbits.api - .request('POST', '/api/v1/admin', 'wallet.inkey', data.admin) + .request('POST', '/api/v1/admin', 'wallet.inkey', data.admin.senddata) .then(function (response) { - console.log(response.data) - window.location.href = '/wallet?usr=' + response.data[0] + window.location.href = '/wallet?usr=' + response.data.admin[0] }) .catch(function (error) { LNbits.utils.notifyApiError(error) diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py index 7a1f826..b64fd53 100644 --- a/lnbits/core/views/api.py +++ b/lnbits/core/views/api.py @@ -5,7 +5,7 @@ from binascii import unhexlify from lnbits import bolt11 from lnbits.core import core_app from lnbits.core.services import create_invoice, pay_invoice -from lnbits.core.crud import delete_expired_invoices, get_admin, get_account +from lnbits.core.crud import delete_expired_invoices, get_admin, get_account, get_funding from lnbits.decorators import api_check_wallet_key, api_validate_post_request from lnbits.settings import WALLET, LNBITS_ADMIN_USERS @@ -139,18 +139,16 @@ def api_payment(payment_hash): "disabled_ext": {"type": "string", "empty": False, "required": True}, "service_fee": {"type": "integer", "min": 0, "max": 90, "required": True}, "funding_source_primary": {"type": "string", "empty": False, "required": True}, - "edited": {"type": "string", "required": True}, - "CLightningWallet": {"type": "list", "required": True}, - "LndRestWallet": {"type": "list", "required": True}, - "LndWallet": {"type": "list", "required": True}, - "LNPayWallet": {"type": "list", "required": True}, - "LntxbotWallet": {"type": "list", "required": True}, - "LnbitsWallet": {"type": "list", "required": True}, - "OpenNodeWallet": {"type": "list", "required": True}, + "CLightningWallet": {"type": "string", "required": True}, + "LndRestWallet": {"type": "string", "required": True}, + "LndWallet": {"type": "string", "required": True}, + "LNPayWallet": {"type": "string", "required": True}, + "LntxbotWallet": {"type": "string", "required": True}, + "LnbitsWallet": {"type": "string", "required": True}, + "OpenNodeWallet": {"type": "string", "required": True}, } ) def api_admin(): - print(g.data) admin = get_admin(None) if admin.user != None and admin.user != g.data["user"]: @@ -160,4 +158,5 @@ def api_admin(): if not account: return jsonify({"message": "Admin doesnt exist and neither do you!"}), HTTPStatus.FORBIDDEN admin = get_admin(**g.data) - return jsonify(admin) + funding = get_funding(g.data['CLightningWallet'],g.data['LndRestWallet'],g.data['LndWallet'],g.data['LNPayWallet'],g.data['LntxbotWallet'],g.data['LnbitsWallet'],g.data['OpenNodeWallet']) + return jsonify({"admin": admin, "funding":funding}) diff --git a/lnbits/extensions/admin/templates/admin/index.html b/lnbits/extensions/admin/templates/admin/index.html index 74d74ec..10888e5 100644 --- a/lnbits/extensions/admin/templates/admin/index.html +++ b/lnbits/extensions/admin/templates/admin/index.html @@ -12,442 +12,466 @@
- - -
Branding
-
-
- -
-
- -
-
- - -
-
- - - -
-
- - - -
- -
Service Settings
-
-
- -
-
- -
-
-
-
- -
-
- -
- -
Funding Sources
- - - - + - - +
Branding
+
+
- - - - - - - -
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
- - - - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
- - - - -
-
- -
-
- -
-
-
-
-
- - - - -
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
-
- - - - -
-
- -
-
-
-
-
- -
-
- -
-
-
-
-
- - - - -
-
- -
-
+
+
+ +
+
+
+
+ + + +
+
+ + + +
+
+ +
Service settings
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ Funding source information (at least one required)
*if installed through RaspiBlitz, MyNode, etc, details + should be filled in for you
+
+ + + + + -
-
-
-
-
-
-
+ + + + + + + +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+ + + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+ + + + +
+
+ +
+
+ +
+
+
+
+
+ + + + +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+ + + + +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+
+
+ + + + +
+
+ +
+
+ +
+
+
+
+
+ + +
+ + +
+ +
+
+ outline + color="grey" + type="a" + href="https://github.com/lnbits/lnbits" + target="_blank" + rel="noopener" + >View project in GitHub + outline + color="grey" + type="a" + href="https://lnbits.com/paywall/GAqKguK5S8f6w5VNjS9DfK" + target="_blank" + rel="noopener" + >Donate
-
+
@@ -508,28 +532,33 @@ new Vue({ el: '#vue', mixins: [windowMixin], - data: function () { + data: function () { return { - wallet: { - data:{} - }, + wallet: {data: {}}, cancel: {}, data: { - admin: {}, - clightning: {endpoint: ''}, - lndrest: {endpoint: '', invoice: '', read: '', admin: '', cert: ''}, - lndgrpc: { - endpoint: '', - port: '', - invoice: '', - read: '', - admin: '', - cert: '' - }, - lntxbot: {invoice: '', admin: ''}, - lnpay: {endpoint: '', invoice: '', read: '', admin: '', cert: ''}, - lnbits: {endpoint: '', invoice: '', read: '', admin: ''}, - opennode: {invoice: '', read: '', admin: ''} + funding_source: ['CLightningWallet', 'LndRestWallet', 'LndWallet', 'LntxbotWallet', 'LNPayWallet', 'LnbitsWallet', 'OpenNodeWallet'], + + admin: { + site_title: 'LNbits', + tagline: 'Free and open source wallet system', + primary_color:'#FF00FF', + secondary_color:'#FF00FF', + funding_source_primary: '', + funding_source_edited: '', + service_fee: 0, + disabled_ext: '', + edited: [], + CLightningWallet: ['', '', '', '', '', '', '', 0, 'CLightningWallet'], + LndRestWallet: ['', '', '', '', '', '', '', 0, 'LndRestWallet'], + LndWallet: ['', '', '', '', '', '', '', 0, 'LndWallet'], + LntxbotWallet: ['', '', '', '', '', '', '', 0, 'LntxbotWallet'], + LNPayWallet: ['', '', '', '', '', '', '', 0, 'LNPayWallet'], + LnbitsWallet: ['', '', '', '', '', '', '', 0, 'LnbitsWallet'], + OpenNodeWallet: ['', '', '', '', '', '', '', 0, 'OpenNodeWallet'], + senddata: {}, + }, + }, options: [ @@ -547,6 +576,11 @@ }, created: function () { var self = this + + + if (usr != null) { + self.cancel.on = true + } self.data.admin.user = '{{ admin_user }}' self.data.admin.allowed_users = '' self.data.admin.site_title = '{{admin.site_title}}' @@ -556,96 +590,86 @@ self.data.admin.service_fee = parseInt('{{admin.service_fee}}') self.data.admin.default_wallet_name = '{{admin.default_wallet_name}}' self.data.admin.data_folder = '{{admin.data_folder}}' + self.data.admin.funding_source_primary = '{{admin.funding_source}}' self.data.admin.disabled_ext = '{{admin.disabled_ext}}'.split(',') - - if (usr != null) { - self.cancel.on = true - } funding = JSON.parse('{{ funding | tojson }}') - self.data.lndrest.label = 'LND REST' - self.data.clightning.label = 'CLightning GRPC' - self.data.lndgrpc.label = 'LND GRPC' - self.data.lntxbot.label = 'LNTXBOT' - self.data.lnpay.label = 'LNpay' - self.data.lnbits.label = 'LNbits' - self.data.opennode.label = 'Opennode' + self.data.admin.LndRestWallet[6] = 'LndRestWallet' + self.data.admin.CLightningWallet[6] = 'CLightningWallet' + self.data.admin.LndWallet[6] = 'LndWallet' + self.data.admin.LntxbotWallet[6] = 'LntxbotWallet' + self.data.admin.LNPayWallet[6] = 'LNPayWallet' + self.data.admin.LnbitsWallet[6] = 'LnbitsWallet' + self.data.admin.OpenNodeWallet[6] = 'OpenNodeWallet' var i for (i = 0; i < funding.length; i++) { if (funding[i][1] == 'CLightningWallet') { - self.data.clightning.endpoint = funding[i][2] - if (funding[i][8] == 1) { - self.data.clightning.label = 'CLightning GRPC (main funding source)' - self.funding_source.name = funding[i][1] + self.data.admin.CLightningWallet[0] = funding[i][2] + if (self.data.admin.funding_source_primary == 'CLightningWallet') { + self.data.admin.CLightningWallet[6] = 'CLightningWallet (main funding source)' } } if (funding[i][1] == 'LndRestWallet') { - self.data.lndrest.endpoint = funding[i][2] - self.data.lndrest.read = funding[i][4] - self.data.lndrest.invoice = funding[i][5] - self.data.lndrest.admin = funding[i][6] - self.data.lndrest.cert = funding[i][7] - if (funding[i][8] == 1) { - self.data.lndrest.label = 'LND REST (main funding source)' - self.funding_source.name = funding[i][1] + self.data.admin.LndRestWallet[0] = funding[i][2] + self.data.admin.LndRestWallet[2] = funding[i][4] + self.data.admin.LndRestWallet[3] = funding[i][5] + self.data.admin.LndRestWallet[4]= funding[i][6] + self.data.admin.LndRestWallet[5] = funding[i][7] + if (self.data.admin.funding_source_primary == 'LndRestWallet') { + self.data.admin.LndRestWallet[6] = 'LndRestWallet (main funding source)' } } if (funding[i][1] == 'LndWallet') { - self.data.lndgrpc.endpoint = funding[i][2] - self.data.lndgrpc.port = funding[i][3] - self.data.lndgrpc.read = funding[i][4] - self.data.lndgrpc.invoice = funding[i][5] - self.data.lndgrpc.admin = funding[i][6] - self.data.lndgrpc.cert = funding[i][7] - if (funding[i][8] == 1) { - self.data.lndgrpc.label = 'LND GRPC (main funding source)' - self.funding_source.name = funding[i][1] + self.data.admin.LndWallet[0] = funding[i][2] //endpoint + self.data.admin.LndWallet[1] = funding[i][3] //port + self.data.admin.LndWallet[2] = funding[i][4] //read + self.data.admin.LndWallet[3] = funding[i][5] //invoice + self.data.admin.LndWallet[4] = funding[i][6] //admin + self.data.admin.LndWallet[5]= funding[i][7] //cert + if (self.data.admin.funding_source_primary == 'LndWallet') { + self.data.admin.LndWallet[6] = 'LndWallet (main funding source)' //label } } if (funding[i][1] == 'LntxbotWallet') { - self.data.lntxbot.invoice = funding[i][5] - self.data.lntxbot.admin = funding[i][6] + self.data.admin.LntxbotWallet[3] = funding[i][5] + self.data.admin.LntxbotWallet[4] = funding[i][6] - if (funding[i][8] == 1) { - self.data.lntxbot.label = 'LNTXBOT (main funding source)' - self.funding_source.name = funding[i][1] + if (self.data.admin.funding_source_primary == 'LntxbotWallet') { + self.data.admin.LntxbotWallet[6] = 'LntxbotWallet (main funding source)' } } if (funding[i][1] == 'LNPayWallet') { - self.data.lnpay.read = funding[i][4] - self.data.lnpay.invoice = funding[i][5] - self.data.lnpay.admin = funding[i][6] - self.data.lnpay.cert = funding[i][7] - - if (funding[i][8] == 1) { - self.data.lnpay.label = 'LNpay (main funding source)' - self.funding_source.name = funding[i][1] + self.data.admin.LNPayWallet[2] = funding[i][4] + self.data.admin.LNPayWallet[3] = funding[i][5] + self.data.admin.LNPayWallet[4] = funding[i][6] + self.data.admin.LNPayWallet[5] = funding[i][7] + + if (self.data.admin.funding_source_primary == 'LNPayWallet') { + self.data.admin.LNPayWallet[6] = 'LNPayWallet (main funding source)' } } if (funding[i][1] == 'LnbitsWallet') { - self.data.lnbits.endpoint = funding[i][2] - self.data.lnbits.read = funding[i][4] - self.data.lnbits.invoice = funding[i][5] - self.data.lnbits.admin = funding[i][6] - - if (funding[i][8] == 1) { - self.data.lnbits.label = 'LNbits (main funding source)' - self.funding_source.name = funding[i][1] + self.data.admin.LnbitsWallet[0] = funding[i][2] + self.data.admin.LnbitsWallet[2] = funding[i][4] + self.data.admin.LnbitsWallet[3] = funding[i][5] + self.data.admin.LnbitsWallet[4] = funding[i][6] + + if (self.data.admin.funding_source_primary == 'LnbitsWallet') { + self.data.admin.LnbitsWallet[6] = 'LnbitsWallet (main funding source)' } } if (funding[i][1] == 'OpenNodeWallet') { - self.data.opennode.read = funding[i][4] - self.data.opennode.invoice = funding[i][5] - self.data.opennode.admin = funding[i][6] + self.data.admin.OpenNodeWallet[2] = funding[i][4] + self.data.admin.OpenNodeWallet[3] = funding[i][5] + self.data.admin.OpenNodeWallet[4] = funding[i][6] - if (funding[i][8] == 1) { - self.data.opennode.label = 'Opennode (main funding source)' - self.funding_source.name = funding[i][1] + if (self.data.admin.funding_source_primary == 'OpenNodeWallet') { + self.data.admin.OpenNodeWallet[6] = 'OpenNodeWallet (main funding source)' } } } }, methods: { - topupWallet: function () { + topupWallet: function () { var self = this LNbits.api .request('POST', '/admin/api/v1/admin/' + self.wallet.id, self.g.user.wallets[0].adminkey, self.wallet.data ) @@ -662,17 +686,43 @@ .catch(function (error) { LNbits.utils.notifyApiError(error) }) - }, + }, + + createWallet: function () { + LNbits.href.createWallet(this.walletName) + }, + addSource: function (source) { + var self = this + self.data.admin.edited.push(source) + console.log(self.data.admin.edited) + }, LaunchLNbits: function () { var self = this var data = self.data - data.admin.disabled_ext = data.admin.disabled_ext.toString() - console.log(data.admin.disabled_ext) + data.admin.senddata.site_title = data.admin.site_title + data.admin.senddata.tagline = data.admin.tagline + data.admin.senddata.primary_color = data.admin.primary_color + data.admin.senddata.secondary_color = data.admin.secondary_color + data.admin.senddata.funding_source_primary = data.admin.funding_source_primary + data.admin.senddata.funding_source_edited = data.admin.funding_source_edited + data.admin.senddata.allowed_users = data.admin.allowed_users + data.admin.senddata.data_folder = data.admin.data_folder + data.admin.senddata.default_wallet_name = data.admin.default_wallet_name + data.admin.senddata.user = data.admin.user + data.admin.senddata.disabled_ext = data.admin.disabled_ext.toString() + data.admin.senddata.service_fee = parseInt(data.admin.service_fee) + data.admin.senddata.edited = data.admin.edited.toString() + data.admin.senddata.CLightningWallet = data.admin.CLightningWallet.toString() + data.admin.senddata.LndRestWallet = data.admin.LndRestWallet.toString() + data.admin.senddata.LndWallet = data.admin.LndWallet.toString() + data.admin.senddata.LntxbotWallet = data.admin.LntxbotWallet.toString() + data.admin.senddata.LNPayWallet = data.admin.LNPayWallet.toString() + data.admin.senddata.LnbitsWallet = data.admin.LnbitsWallet.toString() + data.admin.senddata.OpenNodeWallet = data.admin.OpenNodeWallet.toString() LNbits.api - .request('POST', '/api/v1/admin', 'wallet.inkey', data.admin) + .request('POST', '/api/v1/admin', 'wallet.inkey', data.admin.senddata) .then(function (response) { - console.log(response.data) - window.location.href = '/wallet?usr=' + response.data[0] + window.location.href = '/wallet?usr=' + response.data.admin[0] }) .catch(function (error) { LNbits.utils.notifyApiError(error) @@ -693,5 +743,11 @@ } } }) + + + {% endblock %} + + +