aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src')
-rw-r--r--packages/taler-wallet-core/src/operations/pay-peer-push-credit.ts20
1 files changed, 18 insertions, 2 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay-peer-push-credit.ts b/packages/taler-wallet-core/src/operations/pay-peer-push-credit.ts
index 53a569a92..341dccb7a 100644
--- a/packages/taler-wallet-core/src/operations/pay-peer-push-credit.ts
+++ b/packages/taler-wallet-core/src/operations/pay-peer-push-credit.ts
@@ -71,6 +71,7 @@ import {
TransitionInfo,
constructTransactionIdentifier,
notifyTransition,
+ parseTransactionIdentifier,
stopLongpolling,
} from "./transactions.js";
import {
@@ -617,12 +618,27 @@ export async function confirmPeerPushCredit(
req: ConfirmPeerPushCreditRequest,
): Promise<AcceptPeerPushPaymentResponse> {
let peerInc: PeerPushPaymentIncomingRecord | undefined;
+ let peerPushPaymentIncomingId: string;
+ if (req.peerPushPaymentIncomingId) {
+ peerPushPaymentIncomingId = req.peerPushPaymentIncomingId;
+ } else if (req.transactionId) {
+ const parsedTx = parseTransactionIdentifier(req.transactionId);
+ if (!parsedTx) {
+ throw Error("invalid transaction ID");
+ }
+ if (parsedTx.tag !== TransactionType.PeerPushCredit) {
+ throw Error("invalid transaction ID type");
+ }
+ peerPushPaymentIncomingId = parsedTx.peerPushPaymentIncomingId;
+ } else {
+ throw Error("no transaction ID (or deprecated peerPushPaymentIncomingId) provided");
+ }
await ws.db
.mktx((x) => [x.contractTerms, x.peerPushPaymentIncoming])
.runReadWrite(async (tx) => {
peerInc = await tx.peerPushPaymentIncoming.get(
- req.peerPushPaymentIncomingId,
+ peerPushPaymentIncomingId,
);
if (!peerInc) {
return;
@@ -643,7 +659,7 @@ export async function confirmPeerPushCredit(
const transactionId = constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
- peerPushPaymentIncomingId: req.peerPushPaymentIncomingId,
+ peerPushPaymentIncomingId,
});
return {