Fix NUT-17 settings entry for NUT-06 (#587)

* Fix NUT-17 settings entry for NUT-06

* Wallet: fix mint info deserialization
This commit is contained in:
callebtc
2024-07-16 17:38:19 +02:00
committed by GitHub
parent 21f339ca2b
commit c6f236494f
2 changed files with 11 additions and 8 deletions

View File

@@ -76,12 +76,14 @@ class LedgerFeatures(SupportsBackends):
# specify which websocket features are supported # specify which websocket features are supported
# these two are supported by default # these two are supported by default
websocket_features: List[Dict[str, Union[str, List[str]]]] = [] websocket_features: Dict[str, List[Dict[str, Union[str, List[str]]]]] = {
"supported": []
}
# we check the backend to see if "bolt11_mint_quote" is supported as well # we check the backend to see if "bolt11_mint_quote" is supported as well
for method, unit_dict in self.backends.items(): for method, unit_dict in self.backends.items():
if method == Method["bolt11"]: if method == Method["bolt11"]:
for unit in unit_dict.keys(): for unit in unit_dict.keys():
websocket_features.append( websocket_features["supported"].append(
{ {
"method": method.name, "method": method.name,
"unit": unit.name, "unit": unit.name,
@@ -90,11 +92,11 @@ class LedgerFeatures(SupportsBackends):
) )
if unit_dict[unit].supports_incoming_payment_stream: if unit_dict[unit].supports_incoming_payment_stream:
supported_features: List[str] = list( supported_features: List[str] = list(
websocket_features[-1]["commands"] websocket_features["supported"][-1]["commands"]
)
websocket_features["supported"][-1]["commands"] = (
supported_features + ["bolt11_mint_quote"]
) )
websocket_features[-1]["commands"] = supported_features + [
"bolt11_mint_quote"
]
if websocket_features: if websocket_features:
mint_features[WEBSOCKETS_NUT] = websocket_features mint_features[WEBSOCKETS_NUT] = websocket_features

View File

@@ -43,9 +43,10 @@ class MintInfo(BaseModel):
if not self.nuts or not self.supports_nut(WEBSOCKETS_NUT): if not self.nuts or not self.supports_nut(WEBSOCKETS_NUT):
return False return False
websocket_settings = self.nuts[WEBSOCKETS_NUT] websocket_settings = self.nuts[WEBSOCKETS_NUT]
if not websocket_settings: if not websocket_settings or "supported" not in websocket_settings:
return False return False
for entry in websocket_settings: websocket_supported = websocket_settings["supported"]
for entry in websocket_supported:
if entry["method"] == method.name and entry["unit"] == unit.name: if entry["method"] == method.name and entry["unit"] == unit.name:
if "bolt11_mint_quote" in entry["commands"]: if "bolt11_mint_quote" in entry["commands"]:
return True return True