diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py index 7a2bbbe6..c33e874c 100644 --- a/lnbits/core/views/api.py +++ b/lnbits/core/views/api.py @@ -5,7 +5,7 @@ import json import time from http import HTTPStatus from io import BytesIO -from typing import Dict, List, Optional, Tuple, Union +from typing import Dict, Optional, Tuple, Union from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse import httpx @@ -17,7 +17,7 @@ from loguru import logger from pydantic import BaseModel from pydantic.fields import Field from sse_starlette.sse import EventSourceResponse -from starlette.responses import HTMLResponse, StreamingResponse +from starlette.responses import StreamingResponse from lnbits import bolt11, lnurl from lnbits.core.models import Payment, Wallet @@ -34,7 +34,6 @@ from lnbits.utils.exchange_rates import ( fiat_amount_as_satoshis, satoshis_amount_as_fiat, ) - from .. import core_app, db from ..crud import ( create_payment, diff --git a/lnbits/core/views/generic.py b/lnbits/core/views/generic.py index 31a7b030..fcc0365b 100644 --- a/lnbits/core/views/generic.py +++ b/lnbits/core/views/generic.py @@ -22,8 +22,6 @@ from lnbits.settings import ( LNBITS_SITE_TITLE, SERVICE_FEE, ) - -from ...helpers import get_valid_extensions from ..crud import ( create_account, create_wallet, @@ -34,6 +32,7 @@ from ..crud import ( update_user_extension, ) from ..services import pay_invoice, redeem_lnurl_withdraw +from ...helpers import get_valid_extensions core_html_routes: APIRouter = APIRouter(tags=["Core NON-API Website Routes"]) diff --git a/lnbits/core/views/public_api.py b/lnbits/core/views/public_api.py index 2d2cdd66..465693d9 100644 --- a/lnbits/core/views/public_api.py +++ b/lnbits/core/views/public_api.py @@ -6,10 +6,8 @@ from urllib.parse import urlparse from fastapi import HTTPException from loguru import logger from starlette.requests import Request -from starlette.responses import HTMLResponse from lnbits import bolt11 - from .. import core_app from ..crud import get_standalone_payment from ..tasks import api_invoice_listeners diff --git a/lnbits/extensions/gerty/views_api.py b/lnbits/extensions/gerty/views_api.py index 39a0581f..d14639ee 100644 --- a/lnbits/extensions/gerty/views_api.py +++ b/lnbits/extensions/gerty/views_api.py @@ -395,14 +395,7 @@ async def get_mempool_recommended_fees(gerty): if isinstance(gerty.mempool_endpoint, str): async with httpx.AsyncClient() as client: r = await client.get(gerty.mempool_endpoint + "/api/v1/fees/recommended") - logger.debug('fees') - logger.debug(r) - return { - # "high": r.fastestFee, - # "medium": r.halfHourFee, - # "low": r.hourFee, - # "none": r.economyFee, - } + return r.json() async def get_mempool_stat(stat_slug: str, gerty): @@ -420,8 +413,41 @@ async def get_mempool_stat(stat_slug: str, gerty): elif ( stat_slug == "mempool_recommended_fees" ): + y_offset = 60 fees = await get_mempool_recommended_fees(gerty) - logger.debug(fees) + pos_y = 80 + y_offset + text.append(get_text_item_dict("mempool.space", 40, 160, pos_y)) + pos_y = 180 + y_offset + text.append(get_text_item_dict("Recommended Tx Fees", 20, 240, pos_y)) + + pos_y = 280 + y_offset + text.append(get_text_item_dict("{0}".format("No Priority"), 15, 30, pos_y)) + text.append(get_text_item_dict("{0}".format("Low Priority"), 15, 235, pos_y)) + text.append(get_text_item_dict("{0}".format("Medium Priority"), 15, 460, pos_y)) + text.append(get_text_item_dict("{0}".format("High Priority"), 15, 750, pos_y)) + + pos_y = 340 + y_offset + font_size = 15 + fee_append = "/vB" + fee_rate = fees["economyFee"] + text.append(get_text_item_dict( + "{0} {1}{2}".format(format_number(fee_rate), ("sat" if fee_rate == 1 else "sats"), fee_append), font_size, + 30, pos_y)) + + fee_rate = fees["hourFee"] + text.append(get_text_item_dict( + "{0} {1}{2}".format(format_number(fee_rate), ("sat" if fee_rate == 1 else "sats"), fee_append), font_size, + 235, pos_y)) + + fee_rate = fees["halfHourFee"] + text.append(get_text_item_dict( + "{0} {1}{2}".format(format_number(fee_rate), ("sat" if fee_rate == 1 else "sats"), fee_append), font_size, + 460, pos_y)) + + fee_rate = fees["fastestFee"] + text.append(get_text_item_dict( + "{0} {1}{2}".format(format_number(fee_rate), ("sat" if fee_rate == 1 else "sats"), fee_append), font_size, + 750, pos_y)) return text def get_date_suffix(dayNumber): diff --git a/tests/conftest.py b/tests/conftest.py index 1e719c76..fd8d4d42 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,13 +1,11 @@ import asyncio -from typing import Tuple import pytest_asyncio from httpx import AsyncClient from lnbits.app import create_app from lnbits.commands import migrate_databases -from lnbits.core.crud import create_account, create_wallet, get_wallet -from lnbits.core.models import BalanceCheck, Payment, User, Wallet +from lnbits.core.crud import create_account, create_wallet from lnbits.core.views.api import CreateInvoiceData, api_payments_create_invoice from lnbits.db import Database from lnbits.settings import HOST, PORT diff --git a/tests/core/views/test_api.py b/tests/core/views/test_api.py index e0f6b576..81468fd1 100644 --- a/tests/core/views/test_api.py +++ b/tests/core/views/test_api.py @@ -1,18 +1,12 @@ import hashlib -from binascii import hexlify import pytest -import pytest_asyncio from lnbits import bolt11 -from lnbits.core.crud import get_wallet from lnbits.core.views.api import ( - CreateInvoiceData, api_payment, - api_payments_create_invoice, ) from lnbits.settings import wallet_class - from ...helpers import get_random_invoice_data, is_regtest diff --git a/tests/core/views/test_generic.py b/tests/core/views/test_generic.py index 4300b78b..ac25e1e7 100644 --- a/tests/core/views/test_generic.py +++ b/tests/core/views/test_generic.py @@ -1,7 +1,4 @@ import pytest -import pytest_asyncio - -from tests.conftest import client @pytest.mark.asyncio diff --git a/tests/core/views/test_public_api.py b/tests/core/views/test_public_api.py index 6ebaeabd..144cd161 100644 --- a/tests/core/views/test_public_api.py +++ b/tests/core/views/test_public_api.py @@ -1,7 +1,4 @@ import pytest -import pytest_asyncio - -from lnbits.core.crud import get_wallet # check if the client is working diff --git a/tests/extensions/bleskomat/conftest.py b/tests/extensions/bleskomat/conftest.py index 13be2b57..595ba6b8 100644 --- a/tests/extensions/bleskomat/conftest.py +++ b/tests/extensions/bleskomat/conftest.py @@ -1,7 +1,6 @@ import json import secrets -import pytest import pytest_asyncio from lnbits.core.crud import create_account, create_wallet diff --git a/tests/extensions/bleskomat/test_lnurl_api.py b/tests/extensions/bleskomat/test_lnurl_api.py index 3f723266..1fc4ea3e 100644 --- a/tests/extensions/bleskomat/test_lnurl_api.py +++ b/tests/extensions/bleskomat/test_lnurl_api.py @@ -1,7 +1,6 @@ import secrets import pytest -import pytest_asyncio from lnbits.core.crud import get_wallet from lnbits.extensions.bleskomat.crud import get_bleskomat_lnurl @@ -10,8 +9,6 @@ from lnbits.extensions.bleskomat.helpers import ( query_to_signing_payload, ) from lnbits.settings import HOST, PORT -from tests.conftest import client -from tests.extensions.bleskomat.conftest import bleskomat, lnurl from tests.helpers import credit_wallet, is_regtest from tests.mocks import WALLET diff --git a/tests/extensions/boltz/conftest.py b/tests/extensions/boltz/conftest.py index b9ef7887..1bd1c638 100644 --- a/tests/extensions/boltz/conftest.py +++ b/tests/extensions/boltz/conftest.py @@ -1,17 +1,9 @@ -import asyncio -import json -import secrets - -import pytest import pytest_asyncio -from lnbits.core.crud import create_account, create_wallet, get_wallet -from lnbits.extensions.boltz.boltz import create_reverse_swap, create_swap +from lnbits.extensions.boltz.boltz import create_reverse_swap from lnbits.extensions.boltz.models import ( CreateReverseSubmarineSwap, - CreateSubmarineSwap, ) -from tests.mocks import WALLET @pytest_asyncio.fixture(scope="session") diff --git a/tests/extensions/boltz/test_api.py b/tests/extensions/boltz/test_api.py index 90ce6ec1..2d64fc40 100644 --- a/tests/extensions/boltz/test_api.py +++ b/tests/extensions/boltz/test_api.py @@ -1,7 +1,6 @@ import pytest -import pytest_asyncio -from tests.helpers import is_fake, is_regtest +from tests.helpers import is_fake @pytest.mark.asyncio diff --git a/tests/extensions/boltz/test_swap.py b/tests/extensions/boltz/test_swap.py index ab5954ac..f1a820ca 100644 --- a/tests/extensions/boltz/test_swap.py +++ b/tests/extensions/boltz/test_swap.py @@ -1,17 +1,10 @@ -import asyncio - import pytest -import pytest_asyncio -from lnbits.extensions.boltz.boltz import create_reverse_swap, create_swap from lnbits.extensions.boltz.crud import ( create_reverse_submarine_swap, - create_submarine_swap, get_reverse_submarine_swap, - get_submarine_swap, ) -from tests.extensions.boltz.conftest import reverse_swap -from tests.helpers import is_fake, is_regtest +from tests.helpers import is_fake @pytest.mark.asyncio diff --git a/tests/extensions/invoices/conftest.py b/tests/extensions/invoices/conftest.py index 09ac42ec..277368d6 100644 --- a/tests/extensions/invoices/conftest.py +++ b/tests/extensions/invoices/conftest.py @@ -1,4 +1,3 @@ -import pytest import pytest_asyncio from lnbits.core.crud import create_account, create_wallet diff --git a/tests/extensions/invoices/test_invoices_api.py b/tests/extensions/invoices/test_invoices_api.py index eaadd07b..5661673e 100644 --- a/tests/extensions/invoices/test_invoices_api.py +++ b/tests/extensions/invoices/test_invoices_api.py @@ -1,12 +1,4 @@ import pytest -import pytest_asyncio -from loguru import logger - -from lnbits.core.crud import get_wallet -from tests.conftest import adminkey_headers_from, client, invoice -from tests.extensions.invoices.conftest import accounting_invoice, invoices_wallet -from tests.helpers import credit_wallet -from tests.mocks import WALLET @pytest.mark.asyncio diff --git a/tests/mocks.py b/tests/mocks.py index 3fc0efae..7e2df4f7 100644 --- a/tests/mocks.py +++ b/tests/mocks.py @@ -4,7 +4,6 @@ from lnbits import bolt11 from lnbits.settings import WALLET from lnbits.wallets.base import PaymentResponse, PaymentStatus, StatusResponse from lnbits.wallets.fake import FakeWallet - from .helpers import get_random_string, is_fake