From e652d7c72c606de99e52c2659a4d43c1a3ba8e9f Mon Sep 17 00:00:00 2001 From: Tiago vasconcelos Date: Wed, 8 Jun 2022 14:58:41 +0100 Subject: [PATCH] reserve fee added --- lnbits/config.py | 4 +- lnbits/extensions/admin/migrations.py | 10 +++- lnbits/extensions/admin/models.py | 6 +- .../admin/templates/admin/index.html | 55 +++++++++++++++---- lnbits/settings.py | 1 - 5 files changed, 62 insertions(+), 14 deletions(-) diff --git a/lnbits/config.py b/lnbits/config.py index d07ca044e..37b700fde 100644 --- a/lnbits/config.py +++ b/lnbits/config.py @@ -3,7 +3,7 @@ import json from os import getenv, path from typing import List, Optional -from pydantic import BaseSettings, Field, validator +from pydantic import BaseSettings, Field wallets_module = importlib.import_module("lnbits.wallets") wallet_class = getattr( @@ -30,6 +30,8 @@ class Settings(BaseSettings): data_folder: str = Field(default=None, env="LNBITS_DATA_FOLDER") database_url: str = Field(default=None, env="LNBITS_DATABASE_URL") force_https: bool = Field(default=True, env="LNBITS_FORCE_HTTPS") + reserve_fee_min: int = Field(default=4000, env="LNBITS_RESERVE_FEE_MIN") + reserve_fee_pct: float = Field(default=1.0, env="LNBITS_RESERVE_FEE_PERCENT") service_fee: float = Field(default=0, env="LNBITS_SERVICE_FEE") hide_api: bool = Field(default=False, env="LNBITS_HIDE_API") denomination: str = Field(default="sats", env="LNBITS_DENOMINATION") diff --git a/lnbits/extensions/admin/migrations.py b/lnbits/extensions/admin/migrations.py index aad66f02a..f3663435c 100644 --- a/lnbits/extensions/admin/migrations.py +++ b/lnbits/extensions/admin/migrations.py @@ -32,6 +32,8 @@ async def m001_create_admin_table(db): data_folder = conf.data_folder database_url = conf.database_url force_https = conf.force_https + reserve_fee_min = conf.reserve_fee_min + reserve_fee_pct = conf.reserve_fee_pct service_fee = conf.service_fee hide_api = conf.hide_api denomination = conf.denomination @@ -56,6 +58,8 @@ async def m001_create_admin_table(db): data_folder TEXT, database_url TEXT, force_https BOOLEAN, + reserve_fee_min INT, + reserve_fee_pct REAL, service_fee REAL, hide_api BOOLEAN, denomination TEXT, @@ -81,6 +85,8 @@ async def m001_create_admin_table(db): data_folder, database_url, force_https, + reserve_fee_min, + reserve_fee_pct, service_fee, hide_api, denomination, @@ -91,7 +97,7 @@ async def m001_create_admin_table(db): theme, custom_logo, ad_space) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( user, @@ -103,6 +109,8 @@ async def m001_create_admin_table(db): data_folder, database_url, force_https, + reserve_fee_min, + reserve_fee_pct, service_fee, hide_api, denomination, diff --git a/lnbits/extensions/admin/models.py b/lnbits/extensions/admin/models.py index 3b17e720c..3d8efdcd8 100644 --- a/lnbits/extensions/admin/models.py +++ b/lnbits/extensions/admin/models.py @@ -14,6 +14,8 @@ class UpdateAdminSettings(BaseModel): funding_source: str = Query(None) # ops force_https: bool = Query(None) + reserve_fee_min: int = Query(None, ge=0) + reserve_fee_pct: float = Query(None, ge=0) service_fee: float = Query(None, ge=0) hide_api: bool = Query(None) # Change theme @@ -38,7 +40,9 @@ class Admin(BaseModel): data_folder: Optional[str] database_url: Optional[str] force_https: bool = Field(default=True) - service_fee: float = Field(default=0) + reserve_fee_min: Optional[int] + reserve_fee_pct: Optional[float] + service_fee: float = Optional[float] hide_api: bool = Field(default=False) # Change theme site_title: Optional[str] diff --git a/lnbits/extensions/admin/templates/admin/index.html b/lnbits/extensions/admin/templates/admin/index.html index d9790051e..832629bcf 100644 --- a/lnbits/extensions/admin/templates/admin/index.html +++ b/lnbits/extensions/admin/templates/admin/index.html @@ -51,16 +51,47 @@
-

- Active Funding (Requires server restart) -

- -
+
+
+

+ Active Funding + (Requires server restart) +

+ +
+
+
+

Minimum wallet reserve

+
+
+ +
+
+ +
+
+
+
+
@@ -1292,6 +1323,8 @@ disabled_ext, funding_source, force_https, + reserve_fee_min, + reserve_fee_pct, service_fee, hide_api, site_title, @@ -1311,6 +1344,8 @@ disabled_ext: disabled_ext.toString(), funding_source, force_https, + reserve_fee_min, + reserve_fee_pct, service_fee, hide_api, site_title, diff --git a/lnbits/settings.py b/lnbits/settings.py index ed5c77f7e..8e5c321a2 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -1,6 +1,5 @@ import importlib import subprocess -from email.policy import default from os import path from typing import List