From 810b3a1a8432adf34d91e02989a1d0ac31eb0a40 Mon Sep 17 00:00:00 2001 From: Uthpala Heenatigala Date: Fri, 6 Jan 2023 00:34:24 +0100 Subject: [PATCH] add txid and tx hex --- lnbits/extensions/deezy/crud.py | 16 ++++++++++++- lnbits/extensions/deezy/models.py | 6 +++++ .../deezy/templates/deezy/index.html | 24 +++++++++++++++++-- lnbits/extensions/deezy/views_api.py | 15 +++++++++--- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/lnbits/extensions/deezy/crud.py b/lnbits/extensions/deezy/crud.py index 94d32dd6d..d3b3f935d 100644 --- a/lnbits/extensions/deezy/crud.py +++ b/lnbits/extensions/deezy/crud.py @@ -5,7 +5,8 @@ from . import db from .models import ( Token, LnToBtcSwap, - BtcToLnSwap + BtcToLnSwap, + UpdateLnToBtcSwap ) @@ -83,6 +84,19 @@ async def save_ln_to_btc( ) +async def update_ln_to_btc(data: UpdateLnToBtcSwap) -> str: + await db.execute( + """ + UPDATE deezy.ln_to_btc_swap + SET txid = ?, tx_hex = ? + WHERE bolt11_invoice = ? + """, + (data.txid, data.tx_hex, data.bolt11_invoice), + ) + + return data.txid + + async def save_btc_to_ln( data: BtcToLnSwap, ) -> BtcToLnSwap: diff --git a/lnbits/extensions/deezy/models.py b/lnbits/extensions/deezy/models.py index 8ea6fee76..0fcc3ce88 100644 --- a/lnbits/extensions/deezy/models.py +++ b/lnbits/extensions/deezy/models.py @@ -18,6 +18,12 @@ class LnToBtcSwap(BaseModel): created_at: str = "" +class UpdateLnToBtcSwap(BaseModel): + txid: str + tx_hex: str + bolt11_invoice: str + + class BtcToLnSwap(BaseModel): ln_address: str on_chain_address: str diff --git a/lnbits/extensions/deezy/templates/deezy/index.html b/lnbits/extensions/deezy/templates/deezy/index.html index a283e7531..6dcad0382 100644 --- a/lnbits/extensions/deezy/templates/deezy/index.html +++ b/lnbits/extensions/deezy/templates/deezy/index.html @@ -287,6 +287,19 @@ this.getBtcToLn() }, methods: { + updateLnToBtc(payload) { + var self = this + return axios + .post('/deezy/api/v1/update-ln-to-btc', { + ...payload + }) + .then(function (response) { + console.log('btc to ln is update', response) + }) + .catch(function (error) { + console.log(error) + }) + }, getToken() { var self = this axios({ @@ -337,13 +350,20 @@ .get( `https://api.deezy.io/v1/swap/lookup?bolt11_invoice=${self.swapLnToBtc.response}` ) - .then(function (response) { - if (response.data.on_chain_txid || count > 4) { + .then(async function (response) { + if (response.data.on_chain_txid) { self.swapLnToBtc = { ...self.swapLnToBtc, invoicePaid: true, onchainTxId: response.data.on_chain_txid } + self.updateLnToBtc({ + txid: response.data.on_chain_txid, + tx_hex: response.data.tx_hex, + bolt11_invoice: self.swapLnToBtc.response + }).then(() => { + self.getLnToBtc() + }) clearInterval(interval) } }) diff --git a/lnbits/extensions/deezy/views_api.py b/lnbits/extensions/deezy/views_api.py index de594f89e..85741b434 100644 --- a/lnbits/extensions/deezy/views_api.py +++ b/lnbits/extensions/deezy/views_api.py @@ -7,19 +7,21 @@ # response.is_error that is its inverse) from . import deezy_ext -from . import db from .models import ( Token, LnToBtcSwap, - BtcToLnSwap + BtcToLnSwap, + UpdateLnToBtcSwap, ) + from .crud import ( get_token, get_ln_to_btc, get_btc_to_ln, save_token, save_btc_to_ln, - save_ln_to_btc + save_ln_to_btc, + update_ln_to_btc ) @@ -55,6 +57,13 @@ async def api_deezy(data: LnToBtcSwap): return response +@deezy_ext.post("/api/v1/update-ln-to-btc") +async def api_deezy(data: UpdateLnToBtcSwap): + response = await update_ln_to_btc(data) + + return response + + @deezy_ext.post("/api/v1/store-btc-to-ln") async def api_deezy(data: BtcToLnSwap): response = await save_btc_to_ln(data)