aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-05-17 17:29:37 -0300
committerSebastian <sebasjm@gmail.com>2024-05-17 17:29:37 -0300
commit184c3bcd2d7aabbc033b035fda34e86b3df2f98a (patch)
tree6492e3e865cd555d6fb2b16578c954b2f159b382 /packages/taler-wallet-webextension
parent9381ac6d1031ac16882023c617dc82b53df7a961 (diff)
downloadwallet-core-184c3bcd2d7aabbc033b035fda34e86b3df2f98a.tar.xz
fix #8856
Diffstat (limited to 'packages/taler-wallet-webextension')
-rw-r--r--packages/taler-wallet-webextension/src/cta/Withdraw/state.ts30
-rw-r--r--packages/taler-wallet-webextension/src/cta/Withdraw/test.ts42
2 files changed, 33 insertions, 39 deletions
diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
index 0b36be1fd..65c000741 100644
--- a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
+++ b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
@@ -16,6 +16,7 @@
import {
AmountJson,
+ AmountString,
Amounts,
ExchangeFullDetails,
ExchangeListItem,
@@ -156,6 +157,7 @@ export function useComponentStateFromParams({
async function doManualWithdraw(
exchange: string,
ageRestricted: number | undefined,
+ amount: AmountString,
): Promise<{
transactionId: string;
confirmTransferUrl: string | undefined;
@@ -164,7 +166,7 @@ export function useComponentStateFromParams({
WalletApiOperation.AcceptManualWithdrawal,
{
exchangeBaseUrl: exchange,
- amount: Amounts.stringify(chosenAmount),
+ amount,
restrictAge: ageRestricted,
},
);
@@ -203,10 +205,9 @@ export function useComponentStateFromURI({
: maybeTalerUri;
const uriInfo = await api.wallet.call(
- WalletApiOperation.GetWithdrawalDetailsForUri,
+ WalletApiOperation.PrepareBankIntegratedWithdrawal,
{
talerWithdrawUri,
- // notifyChangeFromPendingTimeoutMs: 30 * 1000,
},
);
const {
@@ -216,16 +217,12 @@ export function useComponentStateFromURI({
operationId,
confirmTransferUrl,
status,
- } = uriInfo;
- const transaction = await api.wallet.call(
- WalletApiOperation.GetWithdrawalTransactionByUri,
- { talerWithdrawUri },
- );
+ } = uriInfo.info;
return {
talerWithdrawUri,
operationId,
status,
- transaction,
+ transactionId: uriInfo.transactionId,
confirmTransferUrl,
amount: Amounts.parseOrThrow(amount),
thisExchange: defaultExchangeBaseUrl,
@@ -259,6 +256,7 @@ export function useComponentStateFromURI({
}
const uri = uriInfoHook.response.talerWithdrawUri;
+ const txId = uriInfoHook.response.transactionId;
const chosenAmount = uriInfoHook.response.amount;
const defaultExchange = uriInfoHook.response.thisExchange;
const exchangeList = uriInfoHook.response.exchanges;
@@ -266,16 +264,18 @@ export function useComponentStateFromURI({
async function doManagedWithdraw(
exchange: string,
ageRestricted: number | undefined,
+ amount: AmountString,
): Promise<{
transactionId: string;
confirmTransferUrl: string | undefined;
}> {
const res = await api.wallet.call(
- WalletApiOperation.AcceptBankIntegratedWithdrawal,
+ WalletApiOperation.ConfirmWithdrawal,
{
exchangeBaseUrl: exchange,
- talerWithdrawUri: uri,
+ amount,
restrictAge: ageRestricted,
+ transactionId: txId,
},
);
return {
@@ -285,9 +285,9 @@ export function useComponentStateFromURI({
}
if (uriInfoHook.response.status !== "pending") {
- if (uriInfoHook.response.transaction) {
- onSuccess(uriInfoHook.response.transaction.transactionId);
- }
+ // if (uriInfoHook.response.transactionId) {
+ // onSuccess(uriInfoHook.response.transactionId);
+ // }
return {
status: "already-completed",
operationState: uriInfoHook.response.status,
@@ -312,6 +312,7 @@ export function useComponentStateFromURI({
type ManualOrManagedWithdrawFunction = (
exchange: string,
ageRestricted: number | undefined,
+ amount: AmountString,
) => Promise<{ transactionId: string; confirmTransferUrl: string | undefined }>;
function exchangeSelectionState(
@@ -380,6 +381,7 @@ function exchangeSelectionState(
const res = await doWithdraw(
currentExchange.exchangeBaseUrl,
!ageRestricted ? undefined : ageRestricted,
+ Amounts.stringify(Amounts.zeroOfCurrency(selectedCurrency)),
);
if (res.confirmTransferUrl) {
document.location.href = res.confirmTransferUrl;
diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts b/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts
index f90f7bed7..70d40ec1c 100644
--- a/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts
+++ b/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts
@@ -108,22 +108,18 @@ describe("Withdraw CTA states", () => {
};
handler.addWalletCallResponse(
- WalletApiOperation.GetWithdrawalDetailsForUri,
+ WalletApiOperation.PrepareBankIntegratedWithdrawal,
undefined,
{
- status: "pending",
- operationId: "123",
- amount: "EUR:2" as AmountString,
- possibleExchanges: [],
+ transactionId: "123",
+ info: {
+ status: "pending",
+ operationId: "123",
+ amount: "EUR:2" as AmountString,
+ possibleExchanges: [],
+ }
},
);
- handler.addWalletCallResponse(
- WalletApiOperation.GetWithdrawalTransactionByUri,
- undefined,
- {
- transactionId: "123"
- } as any,
- );
const hookBehavior = await tests.hookBehaveLikeThis(
useComponentStateFromURI,
@@ -153,24 +149,20 @@ describe("Withdraw CTA states", () => {
};
handler.addWalletCallResponse(
- WalletApiOperation.GetWithdrawalDetailsForUri,
+ WalletApiOperation.PrepareBankIntegratedWithdrawal,
undefined,
{
- status: "pending",
- operationId: "123",
- amount: "ARS:2" as AmountString,
- possibleExchanges: exchanges,
- defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl,
+ transactionId: "123",
+ info: {
+ status: "pending",
+ operationId: "123",
+ amount: "ARS:2" as AmountString,
+ possibleExchanges: exchanges,
+ defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl,
+ }
},
);
handler.addWalletCallResponse(
- WalletApiOperation.GetWithdrawalTransactionByUri,
- undefined,
- {
- transactionId: "123"
- } as any,
- );
- handler.addWalletCallResponse(
WalletApiOperation.GetWithdrawalDetailsForAmount,
undefined,
{