Merge pull request #476 from mrbitcoiner/main

2% reserve only for external payments
This commit is contained in:
Arc
2021-12-30 17:11:37 +00:00
committed by GitHub

View File

@@ -95,9 +95,7 @@ async def pay_invoice(
if max_sat and invoice.amount_msat > max_sat * 1000: if max_sat and invoice.amount_msat > max_sat * 1000:
raise ValueError("Amount in invoice is too high.") raise ValueError("Amount in invoice is too high.")
wallet = await get_wallet(wallet_id, conn=conn) wallet = await get_wallet(wallet_id, conn=conn)
if invoice.amount_msat > wallet.balance_msat - (wallet.balance_msat / 100 * 2):
raise PermissionError("LNbits requires you keep at least 2% reserve to cover potential routing fees.")
# put all parameters that don't change here # put all parameters that don't change here
PaymentKwargs = TypedDict( PaymentKwargs = TypedDict(
@@ -141,11 +139,17 @@ async def pay_invoice(
**payment_kwargs, **payment_kwargs,
) )
# do the balance check # do the balance check if internal payment
wallet = await get_wallet(wallet_id, conn=conn) if internal_checking_id:
assert wallet wallet = await get_wallet(wallet_id, conn=conn)
if wallet.balance_msat < 0: assert wallet
raise PermissionError("Insufficient balance.") if wallet.balance_msat < 0:
raise PermissionError("Insufficient balance.")
# do the balance check if external payment
else:
if invoice.amount_msat > wallet.balance_msat - (wallet.balance_msat / 100 * 2):
raise PermissionError("LNbits requires you keep at least 2% reserve to cover potential routing fees.")
if internal_checking_id: if internal_checking_id:
# mark the invoice from the other side as not pending anymore # mark the invoice from the other side as not pending anymore