multiple keysets per mint

This commit is contained in:
callebtc
2022-10-08 19:25:03 +02:00
parent a54ca6e656
commit 244ea4a343
10 changed files with 328 additions and 114 deletions

View File

@@ -1,74 +1,74 @@
from typing import Optional
# from typing import Optional
from cashu.core.base import KeyBase, Keyset
from cashu.core.db import Connection, Database
# from cashu.core.base import KeyBase, Keyset
# from cashu.core.db import Connection, Database
async def store_keyset(
keyset: Keyset,
mint_url: str = None,
db: Database = None,
conn: Optional[Connection] = None,
):
# async def store_keyset(
# keyset: Keyset,
# mint_url: str = None,
# db: Database = None,
# 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 or keyset.mint_url,
keyset.valid_from,
keyset.valid_to,
keyset.first_seen,
True,
),
)
# await (conn or db).execute(
# """
# INSERT INTO keysets
# (id, mint_url, valid_from, valid_to, first_seen, active)
# VALUES (?, ?, ?, ?, ?, ?)
# """,
# (
# keyset.id,
# mint_url or keyset.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)}"
# 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) if row is not None else None
# row = await (conn or db).fetchone(
# f"""
# SELECT * from keysets
# {where}
# """,
# tuple(values),
# )
# return Keyset.from_row(row) if row is not None else None
async def store_mint_pubkey(
key: KeyBase,
db: Database,
conn: Optional[Connection] = None,
):
# 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),
)
# await (conn or db).execute(
# """
# INSERT INTO mint_pubkeys
# (id, amount, pubkey)
# VALUES (?, ?, ?)
# """,
# (key.id, key.amount, key.pubkey),
# )