mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-23 03:34:19 +01:00
keyset working
This commit is contained in:
74
cashu/core/crud.py
Normal file
74
cashu/core/crud.py
Normal file
@@ -0,0 +1,74 @@
|
||||
from typing import Optional
|
||||
|
||||
from cashu.core.base import Keyset, KeyBase
|
||||
from cashu.core.db import Connection, Database
|
||||
|
||||
|
||||
async def store_keyset(
|
||||
keyset: Keyset,
|
||||
mint_url: str,
|
||||
db: Database,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
|
||||
await (conn or db).execute(
|
||||
"""
|
||||
INSERT INTO keysets
|
||||
(id, mint_url, valid_from, valid_to, first_seen, active)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
keyset.id,
|
||||
mint_url,
|
||||
keyset.valid_from,
|
||||
keyset.valid_to,
|
||||
keyset.first_seen,
|
||||
True,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
async def get_keyset(
|
||||
id: str = None,
|
||||
mint_url: str = None,
|
||||
db: Database = None,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
clauses = []
|
||||
values = []
|
||||
clauses.append("active = ?")
|
||||
values.append(True)
|
||||
if id:
|
||||
clauses.append("id = ?")
|
||||
values.append(id)
|
||||
if mint_url:
|
||||
clauses.append("mint_url = ?")
|
||||
values.append(mint_url)
|
||||
where = ""
|
||||
if clauses:
|
||||
where = f"WHERE {' AND '.join(clauses)}"
|
||||
|
||||
row = await (conn or db).fetchone(
|
||||
f"""
|
||||
SELECT * from keysets
|
||||
{where}
|
||||
""",
|
||||
tuple(values),
|
||||
)
|
||||
return Keyset.from_row(row)
|
||||
|
||||
|
||||
async def store_mint_pubkey(
|
||||
key: KeyBase,
|
||||
db: Database,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
|
||||
await (conn or db).execute(
|
||||
"""
|
||||
INSERT INTO mint_pubkeys
|
||||
(id, amount, pubkey)
|
||||
VALUES (?, ?, ?)
|
||||
""",
|
||||
(key.id, key.amount, key.pubkey),
|
||||
)
|
||||
Reference in New Issue
Block a user