optional primary_mint_unit setting for special msat only mints

This commit is contained in:
Shroominic
2025-11-03 13:53:44 +08:00
parent 1b6188b130
commit 0c3beba74f
2 changed files with 7 additions and 3 deletions
+1
View File
@@ -39,6 +39,7 @@ class Settings(BaseSettings):
cashu_mints: list[str] = Field(default_factory=list, env="CASHU_MINTS")
receive_ln_address: str = Field(default="", env="RECEIVE_LN_ADDRESS")
primary_mint: str = Field(default="", env="PRIMARY_MINT_URL")
primary_mint_unit: str = Field(default="sat", env="PRIMARY_MINT_UNIT")
# Pricing
# Default behavior: derive pricing from MODELS
+6 -3
View File
@@ -83,9 +83,12 @@ async def swap_to_primary_mint(
raise ValueError("Invalid unit")
estimated_fee_sat = math.ceil(max(amount_msat // 1000 * 0.01, 2))
amount_msat_after_fee = amount_msat - estimated_fee_sat * 1000
primary_wallet = await get_wallet(settings.primary_mint, "sat")
primary_wallet = await get_wallet(settings.primary_mint, settings.primary_mint_unit)
minted_amount = int(amount_msat_after_fee // 1000)
if settings.primary_mint_unit == "sat":
minted_amount = int(amount_msat_after_fee // 1000)
else:
minted_amount = int(amount_msat_after_fee)
mint_quote = await primary_wallet.request_mint(minted_amount)
melt_quote = await token_wallet.melt_quote(mint_quote.request)
@@ -97,7 +100,7 @@ async def swap_to_primary_mint(
)
_ = await primary_wallet.mint(minted_amount, quote_id=mint_quote.quote)
return int(minted_amount), "sat", settings.primary_mint
return int(minted_amount), settings.primary_mint_unit, settings.primary_mint
async def credit_balance(