mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-21 02:54:20 +01:00
initial commit
This commit is contained in:
69
wallet/crud.py
Normal file
69
wallet/crud.py
Normal file
@@ -0,0 +1,69 @@
|
||||
import secrets
|
||||
from typing import Optional
|
||||
from core.db import Connection, Database
|
||||
|
||||
# from wallet import db
|
||||
from wallet.models import Proof
|
||||
|
||||
|
||||
async def store_proof(
|
||||
proof: Proof,
|
||||
db: Database,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
|
||||
await (conn or db).execute(
|
||||
"""
|
||||
INSERT INTO proofs
|
||||
(amount, C_x, C_y, secret)
|
||||
VALUES (?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
proof["amount"],
|
||||
str(proof["C"]["x"]),
|
||||
str(proof["C"]["y"]),
|
||||
str(proof["secret"]),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
async def get_proofs(
|
||||
db: Database,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
|
||||
rows = await (conn or db).fetchall(
|
||||
"""
|
||||
SELECT * from proofs
|
||||
"""
|
||||
)
|
||||
return [Proof.from_row(r) for r in rows]
|
||||
|
||||
|
||||
async def invalidate_proof(
|
||||
proof: dict,
|
||||
db: Database,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
|
||||
await (conn or db).execute(
|
||||
f"""
|
||||
DELETE FROM proofs
|
||||
WHERE secret = ?
|
||||
""",
|
||||
str(proof["secret"]),
|
||||
)
|
||||
|
||||
await (conn or db).execute(
|
||||
"""
|
||||
INSERT INTO proofs_used
|
||||
(amount, C_x, C_y, secret)
|
||||
VALUES (?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
proof["amount"],
|
||||
str(proof["C"]["x"]),
|
||||
str(proof["C"]["y"]),
|
||||
str(proof["secret"]),
|
||||
),
|
||||
)
|
||||
Reference in New Issue
Block a user