aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/withdraw.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-14 18:40:04 +0200
committerFlorian Dold <florian@dold.me>2022-10-14 18:48:03 +0200
commit6acddd6d70abc568e4b3740f56662691278aa645 (patch)
tree2733a5669090e54a864ad7c1052ef21fffc5aa06 /packages/taler-wallet-core/src/operations/withdraw.ts
parentda9ec5eb16298d8ca5690800eca1c15f5a6cfaa5 (diff)
downloadwallet-core-6acddd6d70abc568e4b3740f56662691278aa645.tar.xz
wallet-core: get rid of duplicated withdrawal info API
Diffstat (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts107
1 files changed, 10 insertions, 97 deletions
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts
index 3c2541e9a..e4bf6cd11 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -37,10 +37,12 @@ import {
codecForWithdrawOperationStatusResponse,
codecForWithdrawResponse,
DenomKeyType,
+ DenomSelectionState,
Duration,
durationFromSpec,
encodeCrock,
ExchangeListItem,
+ ExchangeWithdrawalDetails,
ExchangeWithdrawRequest,
ForcedDenomSel,
getRandomBytes,
@@ -67,9 +69,6 @@ import {
CoinStatus,
DenominationRecord,
DenominationVerificationStatus,
- DenomSelectionState,
- ExchangeDetailsRecord,
- ExchangeRecord,
PlanchetRecord,
WalletStoresV1,
WgInfo,
@@ -127,96 +126,6 @@ import {
const logger = new Logger("operations/withdraw.ts");
/**
- * Information about what will happen when creating a reserve.
- *
- * Sent to the wallet frontend to be rendered and shown to the user.
- */
-export interface ExchangeWithdrawDetails {
- /**
- * Exchange that the reserve will be created at.
- *
- * FIXME: Should be its own record.
- */
- exchangeInfo: ExchangeRecord;
-
- exchangeDetails: ExchangeDetailsRecord;
-
- /**
- * Filtered wire info to send to the bank.
- */
- exchangeWireAccounts: string[];
-
- /**
- * Selected denominations for withdraw.
- */
- selectedDenoms: DenomSelectionState;
-
- /**
- * Does the wallet know about an auditor for
- * the exchange that the reserve.
- */
- isAudited: boolean;
-
- /**
- * Did the user already accept the current terms of service for the exchange?
- */
- termsOfServiceAccepted: boolean;
-
- /**
- * The exchange is trusted directly.
- */
- isTrusted: boolean;
-
- /**
- * The earliest deposit expiration of the selected coins.
- */
- earliestDepositExpiration: TalerProtocolTimestamp;
-
- /**
- * Number of currently offered denominations.
- */
- numOfferedDenoms: number;
-
- /**
- * Public keys of trusted auditors for the currency we're withdrawing.
- */
- trustedAuditorPubs: string[];
-
- /**
- * Result of checking the wallet's version
- * against the exchange's version.
- *
- * Older exchanges don't return version information.
- */
- versionMatch: VersionMatchResult | undefined;
-
- /**
- * Libtool-style version string for the exchange or "unknown"
- * for older exchanges.
- */
- exchangeVersion: string;
-
- /**
- * Libtool-style version string for the wallet.
- */
- walletVersion: string;
-
- withdrawalAmountRaw: AmountString;
-
- /**
- * Amount that will actually be added to the wallet's balance.
- */
- withdrawalAmountEffective: AmountString;
-
- /**
- * If the exchange supports age-restricted coins it will return
- * the array of ages.
- *
- */
- ageRestrictionOptions?: number[];
-}
-
-/**
* Check if a denom is withdrawable based on the expiration time,
* revocation and offered state.
*/
@@ -1280,7 +1189,7 @@ export async function getExchangeWithdrawalInfo(
exchangeBaseUrl: string,
instructedAmount: AmountJson,
ageRestricted: number | undefined,
-): Promise<ExchangeWithdrawDetails> {
+): Promise<ExchangeWithdrawalDetails> {
const { exchange, exchangeDetails } =
await ws.exchangeOps.updateExchangeFromUrl(ws, exchangeBaseUrl);
await updateWithdrawalDenoms(ws, exchangeBaseUrl);
@@ -1378,10 +1287,14 @@ export async function getExchangeWithdrawalInfo(
}
}
- const ret: ExchangeWithdrawDetails = {
+ const paytoUris = exchangeDetails.wireInfo.accounts.map((x) => x.payto_uri);
+ if (!paytoUris) {
+ throw Error("exchange is in invalid state");
+ }
+
+ const ret: ExchangeWithdrawalDetails = {
earliestDepositExpiration,
- exchangeInfo: exchange,
- exchangeDetails,
+ exchangePaytoUris: paytoUris,
exchangeWireAccounts,
exchangeVersion: exchangeDetails.protocolVersion || "unknown",
isAudited,