diff options
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts b/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts index a070eea50..424715efa 100644 --- a/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts +++ b/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts @@ -29,6 +29,7 @@ import { TalerError, TalerErrorCode, TalerPreciseTimestamp, + TalerProtocolTimestamp, TalerProtocolViolationError, TalerUriAction, TransactionAction, @@ -479,8 +480,11 @@ async function processPeerPushDebitReady( resp, codecForExchangePurseStatus(), ); + const mergeTimestamp = purseStatus.merge_timestamp; logger.info(`got purse status ${purseStatus}`); - if (purseStatus.merge_timestamp) { + if (!mergeTimestamp || TalerProtocolTimestamp.isNever(mergeTimestamp)) { + return { ready: false }; + } else { await transitionPeerPushDebitTransaction( ws, peerPushInitiation.pursePub, @@ -505,10 +509,12 @@ async function processPeerPushDebitReady( return { ready: true, }; + } else { + logger.warn(`unexpected HTTP status for purse: ${resp.status}`); + return { + ready: false, + }; } - return { - ready: false, - }; }); logger.trace( "returning early from peer-push-debit for long-polling in background", |