From 15ec97b9f778a5b022eb9197a744002028304ddf Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Tue, 9 Sep 2025 22:30:42 +0200 Subject: [PATCH] add description to NUT-04 method options (#783) * add description to NUT-04 method options * add option --- cashu/core/models.py | 6 +++++- cashu/mint/features.py | 5 ++++- tests/mint/test_mint_api.py | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cashu/core/models.py b/cashu/core/models.py index ca73e81..911a633 100644 --- a/cashu/core/models.py +++ b/cashu/core/models.py @@ -18,12 +18,16 @@ from .settings import settings # ------- API: INFO ------- +class MintMethodBolt11OptionSetting(BaseModel): + description: Optional[bool] = None + + class MintMethodSetting(BaseModel): method: str unit: str min_amount: Optional[int] = None max_amount: Optional[int] = None - description: Optional[bool] = None + options: Optional[MintMethodBolt11OptionSetting] = None class MeltMethodSetting(BaseModel): diff --git a/cashu/mint/features.py b/cashu/mint/features.py index aa85372..7c74a67 100644 --- a/cashu/mint/features.py +++ b/cashu/mint/features.py @@ -6,6 +6,7 @@ from ..core.models import ( MeltMethodSetting, MintInfoContact, MintInfoProtectedEndpoint, + MintMethodBolt11OptionSetting, MintMethodSetting, ) from ..core.nuts.nuts import ( @@ -85,8 +86,10 @@ class LedgerFeatures(SupportsBackends, SupportsPubkey): if settings.mint_max_mint_bolt11_sat: mint_setting.max_amount = settings.mint_max_mint_bolt11_sat mint_setting.min_amount = 0 + mint_setting.options = MintMethodBolt11OptionSetting( + description=unit_dict[unit].supports_description + ) mint_method_settings.append(mint_setting) - mint_setting.description = unit_dict[unit].supports_description melt_method_settings: List[MeltMethodSetting] = [] for method, unit_dict in self.backends.items(): for unit in unit_dict.keys(): diff --git a/tests/mint/test_mint_api.py b/tests/mint/test_mint_api.py index bbf7df4..deb6b80 100644 --- a/tests/mint/test_mint_api.py +++ b/tests/mint/test_mint_api.py @@ -52,6 +52,8 @@ async def test_info(ledger: Ledger): setting = MintMethodSetting.parse_obj(info.nuts[MINT_NUT]["methods"][0]) assert setting.method == "bolt11" assert setting.unit == "sat" + assert setting.options + assert setting.options.description is True @pytest.mark.asyncio