[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: updated getWithdrawalDetailsF
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: updated getWithdrawalDetailsForAmount |
Date: |
Sat, 11 Jul 2020 09:56:14 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new afda237e updated getWithdrawalDetailsForAmount
afda237e is described below
commit afda237e5fd4b4d243423f0b4b686a22b5ab5d8a
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Sat Jul 11 13:26:07 2020 +0530
updated getWithdrawalDetailsForAmount
---
src/android/index.ts | 2 +-
src/headless/taler-wallet-cli.ts | 2 +-
src/types/walletTypes.ts | 24 ++++++++++++++++++++++++
src/wallet.ts | 19 +++++++++++++++----
src/webex/messages.ts | 4 ----
src/webex/wxApi.ts | 11 -----------
src/webex/wxBackend.ts | 7 -------
7 files changed, 41 insertions(+), 28 deletions(-)
diff --git a/src/android/index.ts b/src/android/index.ts
index e7a24847..3ed88e4b 100644
--- a/src/android/index.ts
+++ b/src/android/index.ts
@@ -195,7 +195,7 @@ class AndroidWalletMessageHandler {
}
case "getWithdrawalDetailsForAmount": {
const wallet = await this.wp.promise;
- return await wallet.getWithdrawDetailsForAmount(args.exchangeBaseUrl,
args.amount);
+ return await
wallet.getWithdrawalDetailsForAmount(args.exchangeBaseUrl, args.amount);
}
case "withdrawTestkudos": {
const wallet = await this.wp.promise;
diff --git a/src/headless/taler-wallet-cli.ts b/src/headless/taler-wallet-cli.ts
index 23ae4da4..278489d2 100644
--- a/src/headless/taler-wallet-cli.ts
+++ b/src/headless/taler-wallet-cli.ts
@@ -386,7 +386,7 @@ advancedCli
.requiredArgument("amount", clk.STRING)
.action(async (args) => {
await withWallet(args, async (wallet) => {
- const details = await wallet.getWithdrawDetailsForAmount(
+ const details = await wallet.getWithdrawalDetailsForAmount(
args.manualWithdrawalDetails.exchange,
Amounts.parseOrThrow(args.manualWithdrawalDetails.amount),
);
diff --git a/src/types/walletTypes.ts b/src/types/walletTypes.ts
index 8bc4f97a..d61d0469 100644
--- a/src/types/walletTypes.ts
+++ b/src/types/walletTypes.ts
@@ -41,6 +41,7 @@ import {
makeCodecOptional,
Codec,
} from "../util/codec";
+import { AmountString } from "./talerTypes";
/**
* Response for the create reserve request to the wallet.
@@ -489,3 +490,26 @@ export interface ExchangeListItem {
currency: string;
paytoUris: string[];
}
+
+export interface ManualWithdrawalDetails {
+ /**
+ * Did the user accept the current version of the exchange's
+ * terms of service?
+ */
+ tosAccepted: boolean;
+
+ /**
+ * Amount that the user will transfer to the exchange.
+ */
+ rawAmount: AmountString;
+
+ /**
+ * Amount that will be added to the user's wallet balance.
+ */
+ effectiveAmount: AmountString;
+
+ /**
+ * Ways to pay the exchange.
+ */
+ paytoUris: string[];
+}
diff --git a/src/wallet.ts b/src/wallet.ts
index 780f8eaf..2b804ded 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -67,10 +67,11 @@ import {
WithdrawDetails,
AcceptWithdrawalResponse,
PurchaseDetails,
- ExchangeWithdrawDetails,
+ ExchangeWithdrawDetails as ExchangeWithdrawalDetails,
RefreshReason,
ExchangeListItem,
ExchangesListRespose,
+ ManualWithdrawalDetails,
} from "./types/walletTypes";
import { Logger } from "./util/logging";
@@ -166,11 +167,21 @@ export class Wallet {
return getExchangePaytoUri(this.ws, exchangeBaseUrl, supportedTargetTypes);
}
- getWithdrawDetailsForAmount(
+ async getWithdrawalDetailsForAmount(
exchangeBaseUrl: string,
amount: AmountJson,
- ): Promise<ExchangeWithdrawDetails> {
- return getExchangeWithdrawalInfo(this.ws, exchangeBaseUrl, amount);
+ ): Promise<ManualWithdrawalDetails> {
+ const wi = await getExchangeWithdrawalInfo(this.ws, exchangeBaseUrl,
amount);
+ const paytoUris = wi.exchangeInfo.wireInfo?.accounts.map((x) =>
x.payto_uri);
+ if (!paytoUris) {
+ throw Error("exchange is in invalid state");
+ }
+ return {
+ rawAmount: Amounts.stringify(amount),
+ effectiveAmount: Amounts.stringify(wi.selectedDenoms.totalCoinValue),
+ paytoUris,
+ tosAccepted: wi.termsOfServiceAccepted,
+ };
}
addNotificationListener(f: (n: WalletNotification) => void): void {
diff --git a/src/webex/messages.ts b/src/webex/messages.ts
index 932636f1..8120d4f9 100644
--- a/src/webex/messages.ts
+++ b/src/webex/messages.ts
@@ -73,10 +73,6 @@ export interface MessageMap {
request: { baseUrl: string };
response: dbTypes.ExchangeRecord;
};
- "reserve-creation-info": {
- request: { baseUrl: string; amount: AmountJson };
- response: walletTypes.ExchangeWithdrawDetails;
- };
"get-history": {
request: {};
response: HistoryEvent[];
diff --git a/src/webex/wxApi.ts b/src/webex/wxApi.ts
index 1823f662..0901005b 100644
--- a/src/webex/wxApi.ts
+++ b/src/webex/wxApi.ts
@@ -103,17 +103,6 @@ async function callBackend<T extends MessageType>(
});
}
-/**
- * Query the wallet for the coins that would be used to withdraw
- * from a given reserve.
- */
-export function getReserveCreationInfo(
- baseUrl: string,
- amount: AmountJson,
-): Promise<ExchangeWithdrawDetails> {
- return callBackend("reserve-creation-info", { baseUrl, amount });
-}
-
/**
* Get all exchanges the wallet knows about.
*/
diff --git a/src/webex/wxBackend.ts b/src/webex/wxBackend.ts
index 5cf61a78..540c7977 100644
--- a/src/webex/wxBackend.ts
+++ b/src/webex/wxBackend.ts
@@ -139,13 +139,6 @@ async function handleMessage(
}
return needsWallet().updateExchangeFromUrl(detail.baseUrl);
}
- case "reserve-creation-info": {
- if (!detail.baseUrl || typeof detail.baseUrl !== "string") {
- return Promise.resolve({ error: "bad url" });
- }
- const amount = codecForAmountJson().decode(detail.amount);
- return needsWallet().getWithdrawDetailsForAmount(detail.baseUrl, amount);
- }
case "get-history": {
// TODO: limit history length
return needsWallet().getHistory();
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: updated getWithdrawalDetailsForAmount,
gnunet <=