From a54914e267881230f1490f7cd09b6c8e1be2b62e Mon Sep 17 00:00:00 2001 From: pavanjoshi914 Date: Fri, 10 Jan 2025 13:37:20 +0530 Subject: [PATCH] feat: update sorting --- src/common/utils/helpers.ts | 12 +++++-- .../background-script/connectors/lawallet.ts | 20 ++++++----- .../background-script/connectors/lndhub.ts | 34 +++++++++---------- 3 files changed, 36 insertions(+), 30 deletions(-) diff --git a/src/common/utils/helpers.ts b/src/common/utils/helpers.ts index b54e97d3c3..161dab873a 100644 --- a/src/common/utils/helpers.ts +++ b/src/common/utils/helpers.ts @@ -63,13 +63,19 @@ export async function poll({ return new Promise(executePoll); } +function hasSettleDate( + transaction: ConnectorTransaction +): transaction is ConnectorTransaction & { settleDate: number } { + return transaction.settleDate !== null; +} + export function mergeTransactions( invoices: ConnectorTransaction[], payments: ConnectorTransaction[] ): ConnectorTransaction[] { - const mergedTransactions = [...invoices, ...payments].sort((a, b) => { - return (b.settleDate ?? 0) - (a.settleDate ?? 0); - }); + const mergedTransactions = [...invoices, ...payments] + .filter(hasSettleDate) + .sort((a, b) => b.settleDate - a.settleDate); return mergedTransactions; } diff --git a/src/extension/background-script/connectors/lawallet.ts b/src/extension/background-script/connectors/lawallet.ts index a5cfa9ac75..a489d0616a 100644 --- a/src/extension/background-script/connectors/lawallet.ts +++ b/src/extension/background-script/connectors/lawallet.ts @@ -112,12 +112,14 @@ export default class LaWallet implements Connector { } ); - const transactions = _transactions.map((event) => { - return { - ...event, - kind: event.kind as EventKind, - }; - }) as Event[]; + const transactions: Event[] = _transactions + .map((event) => { + return { + ...event, + kind: event.kind as EventKind, + }; + }) + .sort((a, b) => b.created_at - a.created_at); const parsedTransactions: ConnectorTransaction[] = await Promise.all( transactions.map( @@ -127,9 +129,9 @@ export default class LaWallet implements Connector { return { data: { - transactions: parsedTransactions - .sort((a, b) => (b.settleDate ?? 0) - (a.settleDate ?? 0)) - .filter((transaction) => transaction.settled), + transactions: parsedTransactions.filter( + (transaction) => transaction.settled + ), }, }; } diff --git a/src/extension/background-script/connectors/lndhub.ts b/src/extension/background-script/connectors/lndhub.ts index bc5bff1463..24243e599d 100644 --- a/src/extension/background-script/connectors/lndhub.ts +++ b/src/extension/background-script/connectors/lndhub.ts @@ -105,24 +105,22 @@ export default class LndHub implements Connector { }[] >("GET", "/getuserinvoices", undefined); - const invoices: ConnectorTransaction[] = data - .map( - (invoice, index): ConnectorTransaction => ({ - custom_records: invoice.custom_records, - id: `${invoice.payment_request}-${index}`, - memo: invoice.description, - preimage: "", // lndhub doesn't support preimage (yet) - payment_hash: invoice.payment_hash, - settled: invoice.ispaid, - settleDate: invoice.timestamp * 1000, - creationDate: invoice.timestamp * 1000, - totalAmount: invoice.amt, - type: "received", - }) - ) - .sort((a, b) => { - return (b.settleDate ?? 0) - (a.settleDate ?? 0); - }); + data.sort((a, b) => b.timestamp - a.timestamp); + + const invoices: ConnectorTransaction[] = data.map( + (invoice, index): ConnectorTransaction => ({ + custom_records: invoice.custom_records, + id: `${invoice.payment_request}-${index}`, + memo: invoice.description, + preimage: "", // lndhub doesn't support preimage (yet) + payment_hash: invoice.payment_hash, + settled: invoice.ispaid, + settleDate: invoice.timestamp * 1000, + creationDate: invoice.timestamp * 1000, + totalAmount: invoice.amt, + type: "received", + }) + ); return invoices; }