commit b62e86aec6041cba287f0f455ffe5c9a50eaac75
parent 9ec1704bb8f99750ea2564946306dc08798b5132
Author: Sebastian <sebasjm@gmail.com>
Date: Mon, 17 Jun 2024 15:55:01 -0300
do not check on initiate, check on confirm
Diffstat:
1 file 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
@@ -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);