gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]