Receive: Switch payment to pending state when lockup is in the mempool (#301)

* feat: switch to pending state when receive lockup is in the mempool

* rebasing

* fix: move socket update logic to sub-crate

* Update payments query, to avoid duplicate Receive Swaps

This can happen if the app is stopped before the temporary lockup tx is removed from the DB. The Receive Swap would then forever result in two payments in list_payments.

* Add comments to clarify use of temp lockup txid

* Re-generate flutter bridge bindings

* feat: set Payment `tx_id` as optional and change `list_payments` logic

* fix: debug typo

* fix: undo `remove_temporary_tx` changes

* fix: switch to full join rather than manual filtering

* fix: bindings

* fix: improve error handling when tx data is not present

* fix: RN bindings

* fix: exclude Created receives from the list

* fix: fixing nits

* Re-generate FRB bindings

---------

Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>
This commit is contained in:
yse
2024-06-12 22:44:31 +02:00
committed by GitHub
parent 31e2ab44af
commit 2b64708e36
21 changed files with 194 additions and 136 deletions

View File

@@ -245,8 +245,7 @@ enum Network {
///
/// By default, this is an onchain tx. It may represent a swap, if swap metadata is available.
class Payment {
/// The tx ID of the onchain transaction
final String txId;
final String? txId;
/// The swap ID, if any swap is associated with this payment
final String? swapId;
@@ -296,7 +295,7 @@ class Payment {
final PaymentState status;
const Payment({
required this.txId,
this.txId,
this.swapId,
required this.timestamp,
required this.amountSat,