mirror of
https://github.com/lnbits/lnbits.git
synced 2026-08-13 12:42:47 +02:00
restore quick settle
This commit is contained in:
parent
493d6a821d
commit
32ed9ade52
2 changed files with 35 additions and 19 deletions
|
|
@ -88,11 +88,7 @@ class SparkL2Wallet(Wallet):
|
|||
await self._check_sidecar_mnemonic()
|
||||
return StatusResponse("Spark sidecar mnemonic not set", 0)
|
||||
if status == "recovering":
|
||||
incoming_sats = int(res.get("incoming_sats") or 0)
|
||||
return StatusResponse(
|
||||
f"Spark wallet recovering; {incoming_sats} sats incoming.",
|
||||
0,
|
||||
)
|
||||
return StatusResponse(None, 0)
|
||||
if status != "ready":
|
||||
return StatusResponse(
|
||||
f"Spark sidecar is not ready: {status or 'unknown'}.", 0
|
||||
|
|
@ -247,7 +243,7 @@ class SparkL2Wallet(Wallet):
|
|||
preimage = res.get("preimage")
|
||||
if preimage and self._preimage_matches_payment_hash(preimage, checking_id):
|
||||
if fee_msat is None:
|
||||
logger.error(
|
||||
logger.warning(
|
||||
"Spark sidecar returned a successful payment without a fee."
|
||||
)
|
||||
return PaymentPendingStatus()
|
||||
|
|
@ -266,7 +262,7 @@ class SparkL2Wallet(Wallet):
|
|||
mapped = self._map_payment_status(status)
|
||||
if mapped.success:
|
||||
if fee_msat is None:
|
||||
logger.error(
|
||||
logger.warning(
|
||||
"Spark sidecar returned a successful payment without a fee."
|
||||
)
|
||||
return PaymentPendingStatus()
|
||||
|
|
@ -364,8 +360,18 @@ class SparkL2Wallet(Wallet):
|
|||
await asyncio.sleep(5)
|
||||
|
||||
def _map_invoice_status(self, status: str) -> PaymentStatus:
|
||||
success = {"TRANSFER_COMPLETED"}
|
||||
failed = {"TRANSFER_FAILED"}
|
||||
success = {
|
||||
"LIGHTNING_PAYMENT_RECEIVED",
|
||||
"TRANSFER_COMPLETED",
|
||||
"PAYMENT_PREIMAGE_RECOVERED",
|
||||
}
|
||||
failed = {
|
||||
"TRANSFER_FAILED",
|
||||
"PAYMENT_PREIMAGE_RECOVERING_FAILED",
|
||||
"REFUND_SIGNING_FAILED",
|
||||
"REFUND_SIGNING_COMMITMENTS_QUERYING_FAILED",
|
||||
"TRANSFER_CREATION_FAILED",
|
||||
}
|
||||
if status in success:
|
||||
return PaymentSuccessStatus()
|
||||
if status in failed:
|
||||
|
|
@ -373,8 +379,18 @@ class SparkL2Wallet(Wallet):
|
|||
return PaymentPendingStatus()
|
||||
|
||||
def _map_payment_status(self, status: str) -> PaymentStatus:
|
||||
success = {"TRANSFER_COMPLETED"}
|
||||
failed = {"TRANSFER_FAILED"}
|
||||
success = {
|
||||
"LIGHTNING_PAYMENT_SUCCEEDED",
|
||||
"TRANSFER_COMPLETED",
|
||||
"PREIMAGE_PROVIDED",
|
||||
}
|
||||
failed = {
|
||||
"LIGHTNING_PAYMENT_FAILED",
|
||||
"TRANSFER_FAILED",
|
||||
"PREIMAGE_PROVIDING_FAILED",
|
||||
"USER_TRANSFER_VALIDATION_FAILED",
|
||||
"USER_SWAP_RETURN_FAILED",
|
||||
}
|
||||
if status in success:
|
||||
return PaymentSuccessStatus()
|
||||
if status in failed:
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ async def test_status_returns_stable_available_balance(mocker: MockerFixture):
|
|||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_status_rejects_recovering_balance(mocker: MockerFixture):
|
||||
async def test_status_accepts_recovering_balance_as_zero(mocker: MockerFixture):
|
||||
wallet = object.__new__(SparkL2Wallet)
|
||||
mocker.patch.object(
|
||||
wallet,
|
||||
|
|
@ -51,7 +51,7 @@ async def test_status_rejects_recovering_balance(mocker: MockerFixture):
|
|||
|
||||
status = await wallet.status()
|
||||
|
||||
assert status.error_message == "Spark wallet recovering; 658672 sats incoming."
|
||||
assert status.error_message is None
|
||||
assert status.balance_msat == 0
|
||||
|
||||
|
||||
|
|
@ -207,20 +207,20 @@ async def test_pay_invoice_rejects_invalid_bolt11_before_sidecar(
|
|||
request.assert_not_awaited()
|
||||
|
||||
|
||||
def test_payment_status_waits_for_transfer_settlement():
|
||||
def test_payment_status_accepts_spark_success_states():
|
||||
wallet = object.__new__(SparkL2Wallet)
|
||||
|
||||
assert wallet._map_payment_status("LIGHTNING_PAYMENT_SUCCEEDED").pending
|
||||
assert wallet._map_payment_status("PREIMAGE_PROVIDED").pending
|
||||
assert wallet._map_payment_status("LIGHTNING_PAYMENT_SUCCEEDED").success
|
||||
assert wallet._map_payment_status("PREIMAGE_PROVIDED").success
|
||||
assert wallet._map_payment_status("TRANSFER_COMPLETED").success
|
||||
assert wallet._map_payment_status("TRANSFER_FAILED").failed
|
||||
|
||||
|
||||
def test_invoice_status_waits_for_transfer_settlement():
|
||||
def test_invoice_status_accepts_spark_receive_success_states():
|
||||
wallet = object.__new__(SparkL2Wallet)
|
||||
|
||||
assert wallet._map_invoice_status("LIGHTNING_PAYMENT_RECEIVED").pending
|
||||
assert wallet._map_invoice_status("PAYMENT_PREIMAGE_RECOVERED").pending
|
||||
assert wallet._map_invoice_status("LIGHTNING_PAYMENT_RECEIVED").success
|
||||
assert wallet._map_invoice_status("PAYMENT_PREIMAGE_RECOVERED").success
|
||||
assert wallet._map_invoice_status("TRANSFER_COMPLETED").success
|
||||
assert wallet._map_invoice_status("TRANSFER_FAILED").failed
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue