mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-21 19:14:19 +01:00
comments
This commit is contained in:
@@ -49,9 +49,11 @@ class Ledger:
|
|||||||
|
|
||||||
async def init_keysets(self):
|
async def init_keysets(self):
|
||||||
"""Loads all past keysets and stores the active one if not already in db"""
|
"""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(
|
self.keyset = MintKeyset(
|
||||||
seed=self.master_key, derivation_path=self.derivation_path
|
seed=self.master_key, derivation_path=self.derivation_path
|
||||||
)
|
)
|
||||||
|
# check if current keyset is stored in db and store if not
|
||||||
current_keyset_local: List[MintKeyset] = await get_keyset(
|
current_keyset_local: List[MintKeyset] = await get_keyset(
|
||||||
id=self.keyset.id, db=self.db
|
id=self.keyset.id, db=self.db
|
||||||
)
|
)
|
||||||
@@ -59,12 +61,15 @@ class Ledger:
|
|||||||
logger.debug(f"Storing keyset {self.keyset.id}")
|
logger.debug(f"Storing keyset {self.keyset.id}")
|
||||||
await store_keyset(keyset=self.keyset, db=self.db)
|
await store_keyset(keyset=self.keyset, db=self.db)
|
||||||
|
|
||||||
# get all past keysets
|
# load all past keysets from db
|
||||||
|
# this needs two steps because the types of tmp_keysets and the argument of MintKeysets() are different
|
||||||
tmp_keysets: List[MintKeyset] = await get_keyset(db=self.db)
|
tmp_keysets: List[MintKeyset] = await get_keyset(db=self.db)
|
||||||
self.keysets = MintKeysets(tmp_keysets)
|
self.keysets = MintKeysets(tmp_keysets)
|
||||||
logger.debug(f"Keysets {self.keysets.keysets}")
|
logger.debug(f"Keysets {self.keysets.keysets}")
|
||||||
|
# generate all derived keys from stored derivation paths of past keysets
|
||||||
for _, v in self.keysets.keysets.items():
|
for _, v in self.keysets.keysets.items():
|
||||||
v.generate_keys(self.master_key)
|
v.generate_keys(self.master_key)
|
||||||
|
|
||||||
if len(self.keysets.keysets):
|
if len(self.keysets.keysets):
|
||||||
logger.debug(f"Loaded {len(self.keysets.keysets)} keysets from db.")
|
logger.debug(f"Loaded {len(self.keysets.keysets)} keysets from db.")
|
||||||
|
|
||||||
@@ -106,6 +111,7 @@ class Ledger:
|
|||||||
if not proof.id:
|
if not proof.id:
|
||||||
secret_key = self.keyset.private_keys[proof.amount]
|
secret_key = self.keyset.private_keys[proof.amount]
|
||||||
else:
|
else:
|
||||||
|
# use the appropriate active keyset for this proof.id
|
||||||
secret_key = self.keysets.keysets[proof.id].private_keys[proof.amount]
|
secret_key = self.keysets.keysets[proof.id].private_keys[proof.amount]
|
||||||
|
|
||||||
C = PublicKey(bytes.fromhex(proof.C), raw=True)
|
C = PublicKey(bytes.fromhex(proof.C), raw=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user