diff options
author | Sebastian <sebasjm@gmail.com> | 2024-06-17 15:55:01 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-06-17 15:55:01 -0300 |
commit | b62e86aec6041cba287f0f455ffe5c9a50eaac75 (patch) | |
tree | 772fc10cb7b25aca3296e1863c632fdcf1e993a7 /packages/taler-wallet-core | |
parent | 9ec1704bb8f99750ea2564946306dc08798b5132 (diff) | |
download | wallet-core-b62e86aec6041cba287f0f455ffe5c9a50eaac75.tar.xz |
do not check on initiate, check on confirm
Diffstat (limited to 'packages/taler-wallet-core')
-rw-r--r-- | packages/taler-wallet-core/src/pay-peer-push-credit.ts | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/packages/taler-wallet-core/src/pay-peer-push-credit.ts b/packages/taler-wallet-core/src/pay-peer-push-credit.ts index 5a1bfbdbd..14f32b545 100644 --- a/packages/taler-wallet-core/src/pay-peer-push-credit.ts +++ b/packages/taler-wallet-core/src/pay-peer-push-credit.ts @@ -408,9 +408,6 @@ export async function preparePeerPushCredit( const exchangeBaseUrl = uri.exchangeBaseUrl; - const exchange = await fetchFreshExchange(wex, exchangeBaseUrl); - requireExchangeTosAcceptedOrThrow(exchange); - const contractPriv = uri.contractPriv; const contractPub = encodeCrock(eddsaGetPublic(decodeCrock(contractPriv))); @@ -914,7 +911,7 @@ export async function confirmPeerPushCredit( wex: WalletExecutionContext, req: ConfirmPeerPushCreditRequest, ): Promise<AcceptPeerPushPaymentResponse> { - let peerInc: PeerPushPaymentIncomingRecord | undefined; + // PeerPushPaymentIncomingRecord | undefined; let peerPushCreditId: string; const parsedTx = parseTransactionIdentifier(req.transactionId); if (!parsedTx) { @@ -927,17 +924,18 @@ export async function confirmPeerPushCredit( logger.trace(`confirming peer-push-credit ${peerPushCreditId}`); - await wex.db.runReadWriteTx( + const peerInc = await wex.db.runReadWriteTx( { storeNames: ["contractTerms", "peerPushCredit"] }, async (tx) => { - peerInc = await tx.peerPushCredit.get(peerPushCreditId); - if (!peerInc) { + const rec = await tx.peerPushCredit.get(peerPushCreditId); + if (!rec) { return; } - if (peerInc.status === PeerPushCreditStatus.DialogProposed) { - peerInc.status = PeerPushCreditStatus.PendingMerge; + if (rec.status === PeerPushCreditStatus.DialogProposed) { + rec.status = PeerPushCreditStatus.PendingMerge; } - await tx.peerPushCredit.put(peerInc); + await tx.peerPushCredit.put(rec); + return rec; }, ); @@ -947,6 +945,9 @@ export async function confirmPeerPushCredit( ); } + const exchange = await fetchFreshExchange(wex, peerInc.exchangeBaseUrl); + requireExchangeTosAcceptedOrThrow(exchange); + const ctx = new PeerPushCreditTransactionContext(wex, peerPushCreditId); wex.taskScheduler.startShepherdTask(ctx.taskId); |