diff --git a/lnbits/extensions/satspay/crud.py b/lnbits/extensions/satspay/crud.py index bc3643238..7cbcec5fd 100644 --- a/lnbits/extensions/satspay/crud.py +++ b/lnbits/extensions/satspay/crud.py @@ -24,6 +24,8 @@ async def create_charge(user: str, data: CreateCharge) -> Charges: {"mempool_endpoint": config.mempool_endpoint, "network": config.network} ) onchain = await get_fresh_address(data.onchainwallet) + if not onchain: + raise Exception(f"Wallet '{data.onchainwallet}' can no longer be accessed.") onchainaddress = onchain.address else: onchainaddress = None diff --git a/lnbits/extensions/satspay/views_api.py b/lnbits/extensions/satspay/views_api.py index 798e0df9d..68ce2469c 100644 --- a/lnbits/extensions/satspay/views_api.py +++ b/lnbits/extensions/satspay/views_api.py @@ -37,13 +37,19 @@ from .models import CreateCharge, SatsPayThemes async def api_charge_create( data: CreateCharge, wallet: WalletTypeInfo = Depends(require_invoice_key) ): - charge = await create_charge(user=wallet.wallet.user, data=data) - return { - **charge.dict(), - **{"time_elapsed": charge.time_elapsed}, - **{"time_left": charge.time_left}, - **{"paid": charge.paid}, - } + try: + charge = await create_charge(user=wallet.wallet.user, data=data) + return { + **charge.dict(), + **{"time_elapsed": charge.time_elapsed}, + **{"time_left": charge.time_left}, + **{"paid": charge.paid}, + } + except Exception as ex: + logger.debug(f"Satspay error: {str}") + raise HTTPException( + status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(ex) + ) @satspay_ext.put("/api/v1/charge/{charge_id}")