@@ -420,12 +420,6 @@ class IndexedDBStorage {
420420
421421 const payment = cursor . value ;
422422
423- // Apply filters
424- if ( ! this . _matchesFilters ( payment , request ) ) {
425- cursor . continue ( ) ;
426- return ;
427- }
428-
429423 if ( skipped < actualOffset ) {
430424 skipped ++ ;
431425 cursor . continue ( ) ;
@@ -440,6 +434,12 @@ class IndexedDBStorage {
440434 payment ,
441435 metadata
442436 ) ;
437+
438+ // Apply filters
439+ if ( ! this . _matchesFilters ( paymentWithMetadata , request ) ) {
440+ cursor . continue ( ) ;
441+ return ;
442+ }
443443
444444 // Fetch lnurl receive metadata if it's a lightning payment
445445 this . _fetchLnurlReceiveMetadata ( paymentWithMetadata , lnurlReceiveMetadataStore )
@@ -457,8 +457,11 @@ class IndexedDBStorage {
457457 } ;
458458 metadataRequest . onerror = ( ) => {
459459 // Continue without metadata if it fails
460- payments . push ( payment ) ;
461- count ++ ;
460+ if ( this . _matchesFilters ( payment , request ) ) {
461+ payments . push ( payment ) ;
462+ count ++ ;
463+ }
464+
462465 cursor . continue ( ) ;
463466 } ;
464467 } ;
@@ -1586,42 +1589,44 @@ class IndexedDBStorage {
15861589 }
15871590 }
15881591
1589- // If this is a Lightning payment and we have metadata
1590- if ( metadata && details && details . type == "lightning" ) {
1591- if ( metadata . lnurlDescription && ! details . description ) {
1592- details . description = metadata . lnurlDescription ;
1593- }
1594- // If lnurlPayInfo exists, parse and add to details
1595- if ( metadata . lnurlPayInfo ) {
1596- try {
1597- details . lnurlPayInfo = JSON . parse ( metadata . lnurlPayInfo ) ;
1598- } catch ( e ) {
1599- throw new StorageError (
1600- `Failed to parse lnurlPayInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1601- e
1602- ) ;
1592+ if ( metadata && details ) {
1593+ if ( details . type == "lightning" ) {
1594+ if ( metadata . lnurlDescription && ! details . description ) {
1595+ details . description = metadata . lnurlDescription ;
16031596 }
1604- }
1605- // If lnurlWithdrawInfo exists, parse and add to details
1606- if ( metadata . lnurlWithdrawInfo ) {
1607- try {
1608- details . lnurlWithdrawInfo = JSON . parse ( metadata . lnurlWithdrawInfo ) ;
1609- } catch ( e ) {
1610- throw new StorageError (
1611- `Failed to parse lnurlWithdrawInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1612- e
1613- ) ;
1597+ // If lnurlPayInfo exists, parse and add to details
1598+ if ( metadata . lnurlPayInfo ) {
1599+ try {
1600+ details . lnurlPayInfo = JSON . parse ( metadata . lnurlPayInfo ) ;
1601+ } catch ( e ) {
1602+ throw new StorageError (
1603+ `Failed to parse lnurlPayInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1604+ e
1605+ ) ;
1606+ }
16141607 }
1615- }
1616- // If transferRefundInfo exists, parse and add to details
1617- if ( metadata . transferRefundInfo ) {
1618- try {
1619- details . transferRefundInfo = JSON . parse ( metadata . transferRefundInfo ) ;
1620- } catch ( e ) {
1621- throw new StorageError (
1622- `Failed to parse transferRefundInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1623- e
1624- ) ;
1608+ // If lnurlWithdrawInfo exists, parse and add to details
1609+ if ( metadata . lnurlWithdrawInfo ) {
1610+ try {
1611+ details . lnurlWithdrawInfo = JSON . parse ( metadata . lnurlWithdrawInfo ) ;
1612+ } catch ( e ) {
1613+ throw new StorageError (
1614+ `Failed to parse lnurlWithdrawInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1615+ e
1616+ ) ;
1617+ }
1618+ }
1619+ } else if ( details . type == "spark" || details . type == "token" ) {
1620+ // If transferRefundInfo exists, parse and add to details
1621+ if ( metadata . transferRefundInfo ) {
1622+ try {
1623+ details . transferRefundInfo = JSON . parse ( metadata . transferRefundInfo ) ;
1624+ } catch ( e ) {
1625+ throw new StorageError (
1626+ `Failed to parse transferRefundInfo JSON for payment ${ payment . id } : ${ e . message } ` ,
1627+ e
1628+ ) ;
1629+ }
16251630 }
16261631 }
16271632 }
0 commit comments