mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-24 03:54:21 +01:00
Merge pull request #72 from cashubtc/mint/multimint
Mint: endpoint get pubkeys for keyset
This commit is contained in:
@@ -57,12 +57,12 @@ class Ledger:
|
||||
seed=self.master_key, derivation_path=derivation_path, version=VERSION
|
||||
)
|
||||
# check if current keyset is stored in db and store if not
|
||||
logger.debug(f"Loading keyset {keyset.id} from db.")
|
||||
logger.trace(f"Loading keyset {keyset.id} from db.")
|
||||
tmp_keyset_local: List[MintKeyset] = await self.crud.get_keyset(
|
||||
id=keyset.id, db=self.db
|
||||
)
|
||||
if not len(tmp_keyset_local) and autosave:
|
||||
logger.debug(f"Storing keyset {keyset.id}.")
|
||||
logger.trace(f"Storing keyset {keyset.id}.")
|
||||
await self.crud.store_keyset(keyset=keyset, db=self.db)
|
||||
|
||||
# store the new keyset in the current keysets
|
||||
@@ -74,10 +74,10 @@ class Ledger:
|
||||
# load all past keysets from db
|
||||
tmp_keysets: List[MintKeyset] = await self.crud.get_keyset(db=self.db)
|
||||
self.keysets = MintKeysets(tmp_keysets)
|
||||
logger.debug(f"Loading {len(self.keysets.keysets)} keysets form db.")
|
||||
logger.trace(f"Loading {len(self.keysets.keysets)} keysets form db.")
|
||||
# generate all derived keys from stored derivation paths of past keysets
|
||||
for _, v in self.keysets.keysets.items():
|
||||
logger.debug(f"Generating keys for keyset {v.id}")
|
||||
logger.trace(f"Generating keys for keyset {v.id}")
|
||||
v.generate_keys(self.master_key)
|
||||
# load the current keyset
|
||||
self.keyset = await self.load_keyset(self.derivation_path, autosave)
|
||||
|
||||
@@ -23,11 +23,23 @@ router: APIRouter = APIRouter()
|
||||
|
||||
@router.get("/keys")
|
||||
async def keys() -> dict[int, str]:
|
||||
"""Get the public keys of the mint"""
|
||||
"""Get the public keys of the mint of the newest keyset"""
|
||||
keyset = ledger.get_keyset()
|
||||
return keyset
|
||||
|
||||
|
||||
@router.get("/keys/{idBase64Urlsafe}")
|
||||
async def keyset_keys(idBase64Urlsafe: str) -> dict[int, str]:
|
||||
"""
|
||||
Get the public keys of the mint of a specificy keyset id.
|
||||
The id is encoded in base64_urlsafe and needs to be converted back to
|
||||
normal base64 before it can be processed.
|
||||
"""
|
||||
id = idBase64Urlsafe.replace("-", "+").replace("_", "/")
|
||||
keyset = ledger.get_keyset(keyset_id=id)
|
||||
return keyset
|
||||
|
||||
|
||||
@router.get("/keysets")
|
||||
async def keysets() -> dict[str, list[str]]:
|
||||
"""Get all active keysets of the mint"""
|
||||
|
||||
Reference in New Issue
Block a user