summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-05-10 17:30:38 +0200
committerFlorian Dold <florian@dold.me>2023-05-10 17:30:42 +0200
commit6308c7ea6ba195199ee413c6c485321a013a514a (patch)
treeac11e8e65c03766f96a8299cedd9e848dc8b1851 /packages/taler-wallet-core/src
parentcb535460350bd510dd4b2b7d6bc3c6ec5f5bcdf1 (diff)
downloadwallet-core-6308c7ea6ba195199ee413c6c485321a013a514a.tar.gz
wallet-core-6308c7ea6ba195199ee413c6c485321a013a514a.tar.bz2
wallet-core-6308c7ea6ba195199ee413c6c485321a013a514a.zip
wallet-core: return txid when starting refund via URI
Diffstat (limited to 'packages/taler-wallet-core/src')
-rw-r--r--packages/taler-wallet-core/src/operations/pay-merchant.ts13
-rw-r--r--packages/taler-wallet-core/src/wallet-api-types.ts3
-rw-r--r--packages/taler-wallet-core/src/wallet.ts3
3 files changed, 14 insertions, 5 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts b/packages/taler-wallet-core/src/operations/pay-merchant.ts
index e34dc7443..49ab63b19 100644
--- a/packages/taler-wallet-core/src/operations/pay-merchant.ts
+++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts
@@ -69,6 +69,7 @@ import {
PrepareRefundResult,
randomBytes,
RefreshReason,
+ StartRefundQueryForUriResponse,
TalerError,
TalerErrorCode,
TalerErrorDetail,
@@ -2051,7 +2052,7 @@ async function processPurchaseAcceptRefund(
export async function startRefundQueryForUri(
ws: InternalWalletState,
talerUri: string,
-): Promise<void> {
+): Promise<StartRefundQueryForUriResponse> {
const parsedUri = parseTalerUri(talerUri);
if (!parsedUri) {
throw Error("invalid taler:// URI");
@@ -2070,7 +2071,15 @@ export async function startRefundQueryForUri(
if (!purchaseRecord) {
throw Error("no purchase found, can't refund");
}
- return startQueryRefund(ws, purchaseRecord.proposalId);
+ const proposalId = purchaseRecord.proposalId;
+ const transactionId = constructTransactionIdentifier({
+ tag: TransactionType.Payment,
+ proposalId,
+ });
+ await startQueryRefund(ws, proposalId);
+ return {
+ transactionId,
+ }
}
export async function startQueryRefund(
diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts b/packages/taler-wallet-core/src/wallet-api-types.ts
index f0da6059f..d8424494b 100644
--- a/packages/taler-wallet-core/src/wallet-api-types.ts
+++ b/packages/taler-wallet-core/src/wallet-api-types.ts
@@ -110,6 +110,7 @@ import {
WithdrawFakebankRequest,
WithdrawTestBalanceRequest,
WithdrawUriInfoResponse,
+ StartRefundQueryForUriResponse,
} from "@gnu-taler/taler-util";
import { AuditorTrustRecord, WalletContractData } from "./db.js";
import {
@@ -438,7 +439,7 @@ export type ConfirmPayOp = {
export type StartRefundQueryForUriOp = {
op: WalletApiOperation.StartRefundQueryForUri;
request: PrepareRefundRequest;
- response: EmptyObject;
+ response: StartRefundQueryForUriResponse;
};
export type StartRefundQueryOp = {
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index d76aa4ec9..01df4a5e1 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -1288,8 +1288,7 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
}
case WalletApiOperation.StartRefundQueryForUri: {
const req = codecForPrepareRefundRequest().decode(payload);
- await startRefundQueryForUri(ws, req.talerRefundUri);
- return {};
+ return await startRefundQueryForUri(ws, req.talerRefundUri);
}
case WalletApiOperation.StartRefundQuery: {
const req = codecForStartRefundQueryRequest().decode(payload);