diff --git a/lnbits/extensions/deezy/crud.py b/lnbits/extensions/deezy/crud.py index 69630610..94d32dd6 100644 --- a/lnbits/extensions/deezy/crud.py +++ b/lnbits/extensions/deezy/crud.py @@ -4,11 +4,27 @@ from typing import List from . import db from .models import ( Token, + LnToBtcSwap, + BtcToLnSwap ) -""" -Get Deezy Token -""" + +async def get_ln_to_btc() -> List[LnToBtcSwap]: + + rows = await db.fetchall( + f"SELECT * FROM deezy.ln_to_btc_swap ORDER BY created_at DESC", + ) + + return [LnToBtcSwap(**row) for row in rows] + + +async def get_btc_to_ln() -> List[BtcToLnSwap]: + + rows = await db.fetchall( + f"SELECT * FROM deezy.btc_to_ln_swap ORDER BY created_at DESC", + ) + + return [BtcToLnSwap(**row) for row in rows] async def get_token() -> Token: @@ -36,3 +52,57 @@ async def save_token( ), ) return data + + +async def save_ln_to_btc( + data: LnToBtcSwap, +) -> LnToBtcSwap: + + await db.execute( + """ + INSERT INTO deezy.ln_to_btc_swap ( + amount_sats, + on_chain_address, + on_chain_sats_per_vbyte, + bolt11_invoice, + fee_sats, + txid, + tx_hex + ) + VALUES (?,?,?,?,?,?,?) + """, + ( + data.amount_sats, + data.on_chain_address, + data.on_chain_sats_per_vbyte, + data.bolt11_invoice, + data.fee_sats, + data.txid, + data.tx_hex, + ), + ) + + +async def save_btc_to_ln( + data: BtcToLnSwap, +) -> BtcToLnSwap: + + await db.execute( + """ + INSERT INTO deezy.btc_to_ln_swap ( + ln_address, + on_chain_address, + secret_access_key, + commitment, + signature + ) + VALUES (?,?,?,?,?) + """, + ( + data.ln_address, + data.on_chain_address, + data.secret_access_key, + data.commitment, + data.signature, + ), + ) diff --git a/lnbits/extensions/deezy/models.py b/lnbits/extensions/deezy/models.py index 751191f0..8ea6fee7 100644 --- a/lnbits/extensions/deezy/models.py +++ b/lnbits/extensions/deezy/models.py @@ -1,6 +1,27 @@ +from typing import Optional from pydantic.main import BaseModel from sqlalchemy.engine import base # type: ignore class Token(BaseModel): deezy_token: str + + +class LnToBtcSwap(BaseModel): + amount_sats: int + on_chain_address: str + on_chain_sats_per_vbyte: int + bolt11_invoice: str + fee_sats: int + txid: str = "" + tx_hex: str = "" + created_at: str = "" + + +class BtcToLnSwap(BaseModel): + ln_address: str + on_chain_address: str + secret_access_key: str + commitment: str + signature: str + created_at: str = "" diff --git a/lnbits/extensions/deezy/templates/deezy/index.html b/lnbits/extensions/deezy/templates/deezy/index.html index 5c2f9ae4..a283e753 100644 --- a/lnbits/extensions/deezy/templates/deezy/index.html +++ b/lnbits/extensions/deezy/templates/deezy/index.html @@ -213,7 +213,7 @@ -