gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-wallet-webex] branch master updated: fix /pay API


From: gnunet
Subject: [GNUnet-SVN] [taler-wallet-webex] branch master updated: fix /pay API
Date: Thu, 04 Jan 2018 13:22:31 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-webex.

The following commit(s) were added to refs/heads/master by this push:
     new 09c7be80 fix /pay API
09c7be80 is described below

commit 09c7be80fd53318c9d3287b9952d70714d415e21
Author: Florian Dold <address@hidden>
AuthorDate: Thu Jan 4 13:22:23 2018 +0100

    fix /pay API
---
 src/crypto/cryptoWorker.ts |  1 +
 src/talerTypes.ts          |  9 +++++++--
 src/wallet.ts              | 10 +++++++---
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/crypto/cryptoWorker.ts b/src/crypto/cryptoWorker.ts
index 1e5f10c2..b7c8e933 100644
--- a/src/crypto/cryptoWorker.ts
+++ b/src/crypto/cryptoWorker.ts
@@ -336,6 +336,7 @@ namespace RpcFunctions {
         coin_sig: coinSig,
         contribution: coinSpend.toJson(),
         denom_pub: cd.coin.denomPub,
+        exchange_url: cd.denom.exchangeBaseUrl,
         ub_sig: cd.coin.denomSig,
       };
       ret.sigs.push(s);
diff --git a/src/talerTypes.ts b/src/talerTypes.ts
index 5ba5af17..27bf7b43 100644
--- a/src/talerTypes.ts
+++ b/src/talerTypes.ts
@@ -264,6 +264,11 @@ export interface CoinPaySig {
    * The amount that is subtracted from this coin with this payment.
    */
   contribution: AmountJson;
+
+  /**
+   * URL of the exchange this coin was withdrawn from.
+   */
+  exchange_url: string;
 }
 
 
@@ -461,9 +466,9 @@ export interface PayReq {
   order_id: string;
 
   /**
-   * Exchange that the coins are from (base URL).
+   * Mode for /pay (pay or refund)
    */
-  exchange: string;
+  mode: string;
 }
 
 
diff --git a/src/wallet.ts b/src/wallet.ts
index b3ef3bf3..8a63e45e 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -629,8 +629,8 @@ export class Wallet {
                                  chosenExchange: string): Promise<void> {
     const payReq: PayReq = {
       coins: payCoinInfo.sigs,
-      exchange: chosenExchange,
       merchant_pub: proposal.contractTerms.merchant_pub,
+      mode: "pay",
       order_id: proposal.contractTerms.order_id,
     };
     const t: PurchaseRecord = {
@@ -1693,7 +1693,9 @@ export class Wallet {
       if (t.finished) {
         return balance;
       }
-      addTo(balance, "pendingIncoming", t.contractTerms.amount, 
t.payReq.exchange);
+      for (const c of t.payReq.coins) {
+        addTo(balance, "pendingIncoming", c.contribution, c.exchange_url);
+      }
       return balance;
     }
 
@@ -2526,7 +2528,9 @@ export class Wallet {
     for (const pk of pendingKeys) {
       const perm = purchase.refundsPending[pk];
       console.log("sending refund permission", perm);
-      const reqUrl = (new URI("refund")).absoluteTo(purchase.payReq.exchange);
+      // FIXME: not correct once we support multiple exchanges per payment
+      const exchangeUrl = purchase.payReq.coins[0].exchange_url;
+      const reqUrl = (new URI("refund")).absoluteTo(exchangeUrl);
       const resp = await this.http.postJson(reqUrl.href(), perm);
       if (resp.status !== 200) {
         console.error("refund failed", resp);

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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