From ef5aee92d6e521e2e48c8237ed5fb4a45acb7fcc Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sun, 8 Sep 2024 15:00:32 +0200 Subject: [PATCH] NUT-06: add icon URL (#604) * mint info icon * Update cashu/core/models.py Co-authored-by: Pavol Rusnak * Update cashu/mint/router.py Co-authored-by: Pavol Rusnak * Update cashu/wallet/mint_info.py Co-authored-by: Pavol Rusnak * fix setting --------- Co-authored-by: Pavol Rusnak --- cashu/core/models.py | 1 + cashu/core/settings.py | 3 +++ cashu/mint/router.py | 1 + cashu/wallet/mint_info.py | 1 + cashu/wallet/v1_api.py | 2 +- cashu/wallet/wallet.py | 1 + 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cashu/core/models.py b/cashu/core/models.py index e4b1879..4f3c8f3 100644 --- a/cashu/core/models.py +++ b/cashu/core/models.py @@ -38,6 +38,7 @@ class GetInfoResponse(BaseModel): description_long: Optional[str] = None contact: Optional[List[MintInfoContact]] = None motd: Optional[str] = None + icon_url: Optional[str] = None time: Optional[int] = None nuts: Optional[Dict[int, Any]] = None diff --git a/cashu/core/settings.py b/cashu/core/settings.py index 5104cf1..e7cf5d0 100644 --- a/cashu/core/settings.py +++ b/cashu/core/settings.py @@ -144,6 +144,7 @@ class MintInformation(CashuSettings): mint_info_description_long: str = Field(default=None) mint_info_contact: List[List[str]] = Field(default=[]) mint_info_motd: str = Field(default=None) + mint_info_icon_url: str = Field(default=None) class WalletSettings(CashuSettings): @@ -201,11 +202,13 @@ class LndRestFundingSource(MintSettings): mint_lnd_rest_invoice_macaroon: Optional[str] = Field(default=None) mint_lnd_enable_mpp: bool = Field(default=False) + class LndRPCFundingSource(MintSettings): mint_lnd_rpc_endpoint: Optional[str] = Field(default=None) mint_lnd_rpc_cert: Optional[str] = Field(default=None) mint_lnd_rpc_macaroon: Optional[str] = Field(default=None) + class CLNRestFundingSource(MintSettings): mint_clnrest_url: Optional[str] = Field(default=None) mint_clnrest_cert: Optional[str] = Field(default=None) diff --git a/cashu/mint/router.py b/cashu/mint/router.py index d3d9761..1c40a33 100644 --- a/cashu/mint/router.py +++ b/cashu/mint/router.py @@ -56,6 +56,7 @@ async def info() -> GetInfoResponse: description_long=settings.mint_info_description_long, contact=contact_info, nuts=mint_features, + icon_url=settings.mint_info_icon_url, motd=settings.mint_info_motd, time=int(time.time()), ) diff --git a/cashu/wallet/mint_info.py b/cashu/wallet/mint_info.py index 37fe072..ccd0008 100644 --- a/cashu/wallet/mint_info.py +++ b/cashu/wallet/mint_info.py @@ -15,6 +15,7 @@ class MintInfo(BaseModel): description_long: Optional[str] contact: Optional[List[MintInfoContact]] motd: Optional[str] + icon_url: Optional[str] time: Optional[int] nuts: Optional[Dict[int, Any]] diff --git a/cashu/wallet/v1_api.py b/cashu/wallet/v1_api.py index d5d9ce5..e68c556 100644 --- a/cashu/wallet/v1_api.py +++ b/cashu/wallet/v1_api.py @@ -295,7 +295,7 @@ class LedgerAPI(LedgerAPIDeprecated, object): Raises: Exception: If the mint request fails """ - logger.trace("Requesting mint: GET /v1/mint/bolt11") + logger.trace("Requesting mint: POST /v1/mint/bolt11") payload = PostMintQuoteRequest(unit=unit.name, amount=amount) resp = await self.httpx.post( join(self.url, "/v1/mint/quote/bolt11"), json=payload.dict() diff --git a/cashu/wallet/wallet.py b/cashu/wallet/wallet.py index 30bb878..4cc7ae0 100644 --- a/cashu/wallet/wallet.py +++ b/cashu/wallet/wallet.py @@ -107,6 +107,7 @@ class Wallet( self.proofs: List[Proof] = [] self.name = name self.unit = Unit[unit] + url = url.rstrip("/") super().__init__(url=url, db=self.db) logger.debug("Wallet initialized")