mirror of
https://github.com/aljazceru/nutshell.git
synced 2026-01-11 04:34:20 +01:00
keyset with version
This commit is contained in:
@@ -238,6 +238,7 @@ class MintKeyset:
|
||||
valid_to: Union[str, None] = None
|
||||
first_seen: Union[str, None] = None
|
||||
active: bool = True
|
||||
version: Union[str, None] = None
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -248,6 +249,7 @@ class MintKeyset:
|
||||
active=None,
|
||||
seed: Union[None, str] = None,
|
||||
derivation_path: str = None,
|
||||
version: str = None,
|
||||
):
|
||||
self.derivation_path = derivation_path
|
||||
self.id = id
|
||||
@@ -255,6 +257,7 @@ class MintKeyset:
|
||||
self.valid_to = valid_to
|
||||
self.first_seen = first_seen
|
||||
self.active = active
|
||||
self.version = version
|
||||
# generate keys from seed
|
||||
if seed:
|
||||
self.generate_keys(seed)
|
||||
@@ -275,6 +278,7 @@ class MintKeyset:
|
||||
valid_to=row[3],
|
||||
first_seen=row[4],
|
||||
active=row[5],
|
||||
version=row[6],
|
||||
)
|
||||
|
||||
def get_keybase(self):
|
||||
|
||||
@@ -114,7 +114,6 @@ async def update_lightning_invoice(
|
||||
|
||||
async def store_keyset(
|
||||
keyset: MintKeyset,
|
||||
mint_url: str = None,
|
||||
db: Database = None,
|
||||
conn: Optional[Connection] = None,
|
||||
):
|
||||
@@ -122,8 +121,8 @@ async def store_keyset(
|
||||
await (conn or db).execute(
|
||||
"""
|
||||
INSERT INTO keysets
|
||||
(id, derivation_path, valid_from, valid_to, first_seen, active)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
(id, derivation_path, valid_from, valid_to, first_seen, active, version)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
keyset.id,
|
||||
@@ -132,6 +131,7 @@ async def store_keyset(
|
||||
keyset.valid_to,
|
||||
keyset.first_seen,
|
||||
True,
|
||||
keyset.version,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ from cashu.core.db import Database
|
||||
from cashu.core.helpers import fee_reserve, sum_proofs
|
||||
from cashu.core.script import verify_script
|
||||
from cashu.core.secp import PublicKey
|
||||
from cashu.core.settings import LIGHTNING, MAX_ORDER
|
||||
from cashu.core.settings import LIGHTNING, MAX_ORDER, VERSION
|
||||
from cashu.core.split import amount_split
|
||||
from cashu.lightning import WALLET
|
||||
from cashu.mint.crud import (
|
||||
@@ -54,7 +54,7 @@ class Ledger:
|
||||
"""Loads all past keysets and stores the active one if not already in db"""
|
||||
# generate current keyset from seed and current derivation path
|
||||
self.keyset = MintKeyset(
|
||||
seed=self.master_key, derivation_path=self.derivation_path
|
||||
seed=self.master_key, derivation_path=self.derivation_path, version=VERSION
|
||||
)
|
||||
# check if current keyset is stored in db and store if not
|
||||
logger.debug(f"Loading keyset {self.keyset.id} from db.")
|
||||
@@ -118,7 +118,10 @@ class Ledger:
|
||||
|
||||
# backwards compatibility with old hash_to_curve
|
||||
# old clients do not send a version
|
||||
if not context.get("client-version"):
|
||||
if (
|
||||
not context.get("client-version")
|
||||
or not self.keysets.keysets[proof.id].version
|
||||
):
|
||||
return legacy.verify_pre_0_3_3(secret_key, C, proof.secret)
|
||||
return b_dhke.verify(secret_key, C, proof.secret)
|
||||
|
||||
|
||||
@@ -118,3 +118,10 @@ async def m003_mint_keysets(db: Database):
|
||||
);
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
async def m004_keysets_add_version(db: Database):
|
||||
"""
|
||||
Column that remembers with which version
|
||||
"""
|
||||
await db.execute("ALTER TABLE keysets ADD COLUMN version TEXT")
|
||||
|
||||
Reference in New Issue
Block a user