gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: history WIP, DB naming


From: gnunet
Subject: [taler-wallet-core] branch master updated: history WIP, DB naming
Date: Mon, 16 Dec 2019 16:20:52 +0100

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 35a7b76a history WIP, DB naming
35a7b76a is described below

commit 35a7b76a7d935dc2c749fd39ac80c6af1096b795
Author: Florian Dold <address@hidden>
AuthorDate: Mon Dec 16 16:20:45 2019 +0100

    history WIP, DB naming
---
 src/crypto/workers/cryptoImplementation.ts |  6 +--
 src/operations/balance.ts                  |  8 ++--
 src/operations/exchanges.ts                |  1 +
 src/operations/history.ts                  | 15 +++----
 src/operations/pay.ts                      | 12 +++---
 src/operations/pending.ts                  |  8 ++--
 src/operations/refresh.ts                  | 10 ++---
 src/operations/refund.ts                   |  4 +-
 src/operations/reserves.ts                 | 34 ++++++++--------
 src/operations/tip.ts                      |  4 +-
 src/operations/withdraw.ts                 |  8 ++--
 src/types/dbTypes.ts                       | 42 +++++++++++++-------
 src/types/history.ts                       | 64 +++---------------------------
 src/wallet.ts                              |  2 +-
 src/webex/pages/payback.tsx                |  2 +-
 15 files changed, 91 insertions(+), 129 deletions(-)

diff --git a/src/crypto/workers/cryptoImplementation.ts 
b/src/crypto/workers/cryptoImplementation.ts
index 0049a122..d745f497 100644
--- a/src/crypto/workers/cryptoImplementation.ts
+++ b/src/crypto/workers/cryptoImplementation.ts
@@ -519,9 +519,9 @@ export class CryptoImplementation {
       planchetsForGammas: planchetsForGammas,
       transferPrivs,
       transferPubs,
-      valueOutput,
-      valueWithFee,
-      created: getTimestampNow(),
+      amountRefreshOutput: valueOutput,
+      amountRefreshInput: valueWithFee,
+      timestampCreated: getTimestampNow(),
       finishedTimestamp: undefined,
       lastError: undefined,
     };
diff --git a/src/operations/balance.ts b/src/operations/balance.ts
index 15d8e52f..d12fbaf7 100644
--- a/src/operations/balance.ts
+++ b/src/operations/balance.ts
@@ -87,7 +87,7 @@ export async function getBalances(
       await tx.iter(Stores.refreshGroups).forEach(r => {
         // Don't count finished refreshes, since the refresh already resulted
         // in coins being added to the wallet.
-        if (r.finishedTimestamp) {
+        if (r.timestampFinished) {
           return;
         }
         for (let i = 0; i < r.oldCoinPubs.length; i++) {
@@ -96,13 +96,13 @@ export async function getBalances(
             addTo(
               balanceStore,
               "pendingIncoming",
-              session.valueOutput,
+              session.amountRefreshOutput,
               session.exchangeBaseUrl,
             );
             addTo(
               balanceStore,
               "pendingIncomingRefresh",
-              session.valueOutput,
+              session.amountRefreshOutput,
               session.exchangeBaseUrl,
             );
           }
@@ -128,7 +128,7 @@ export async function getBalances(
       });
 
       await tx.iter(Stores.purchases).forEach(t => {
-        if (t.firstSuccessfulPayTimestamp) {
+        if (t.timestampFirstSuccessfulPay) {
           return;
         }
         for (const c of t.payReq.coins) {
diff --git a/src/operations/exchanges.ts b/src/operations/exchanges.ts
index fc1a50f0..871ee113 100644
--- a/src/operations/exchanges.ts
+++ b/src/operations/exchanges.ts
@@ -431,6 +431,7 @@ async function updateExchangeFromUrlImpl(
       termsOfServiceAcceptedTimestamp: undefined,
       termsOfServiceLastEtag: undefined,
       termsOfServiceText: undefined,
+      updateDiff: undefined,
     };
     await ws.db.put(Stores.exchanges, newExchangeRecord);
   } else {
diff --git a/src/operations/history.ts b/src/operations/history.ts
index 7e985d21..eec398f3 100644
--- a/src/operations/history.ts
+++ b/src/operations/history.ts
@@ -201,7 +201,7 @@ export async function getHistory(
       });
 
       tx.iter(Stores.withdrawalSession).forEach(wsr => {
-        if (wsr.finishTimestamp) {
+        if (wsr.timestampFinish) {
           history.push({
             type: HistoryEventType.Withdrawn,
             withdrawSessionId: wsr.withdrawSessionId,
@@ -212,7 +212,8 @@ export async function getHistory(
             amountWithdrawnEffective: Amounts.toString(wsr.totalCoinValue),
             amountWithdrawnRaw: Amounts.toString(wsr.rawWithdrawalAmount),
             exchangeBaseUrl: wsr.exchangeBaseUrl,
-            timestamp: wsr.finishTimestamp,
+            timestamp: wsr.timestampFinish,
+            withdrawalSource: wsr.source,
           });
         }
       });
@@ -239,7 +240,7 @@ export async function getHistory(
       });
 
       await tx.iter(Stores.refreshGroups).forEachAsync(async (rg) => {
-        if (!rg.finishedTimestamp) {
+        if (!rg.timestampFinished) {
           return;
         }
         let numInputCoins = 0;
@@ -252,8 +253,8 @@ export async function getHistory(
           numInputCoins++;
           if (session) {
             numRefreshedInputCoins++;
-            amountsRaw.push(session.valueWithFee);
-            amountsEffective.push(session.valueOutput);
+            amountsRaw.push(session.amountRefreshInput);
+            amountsEffective.push(session.amountRefreshOutput);
             numOutputCoins += session.newDenoms.length;
           } else {
             const c = await tx.get(Stores.coins, rg.oldCoinPubs[i]);
@@ -274,7 +275,7 @@ export async function getHistory(
           type: HistoryEventType.Refreshed,
           refreshGroupId: rg.refreshGroupId,
           eventId: makeEventId(HistoryEventType.Refreshed, rg.refreshGroupId),
-          timestamp: rg.finishedTimestamp,
+          timestamp: rg.timestampFinished,
           refreshReason: rg.reason,
           amountRefreshedEffective: Amounts.toString(amountRefreshedEffective),
           amountRefreshedRaw: Amounts.toString(amountRefreshedRaw),
@@ -305,7 +306,7 @@ export async function getHistory(
           eventId: makeEventId(HistoryEventType.ReserveBalanceUpdated, 
ru.reserveUpdateId),
           amountExpected: ru.amountExpected,
           amountReserveBalance: ru.amountReserveBalance,
-          timestamp: reserve.created,
+          timestamp: reserve.timestampCreated,
           newHistoryTransactions: ru.newHistoryTransactions,
           reserveShortInfo: {
             exchangeBaseUrl: reserve.exchangeBaseUrl,
diff --git a/src/operations/pay.ts b/src/operations/pay.ts
index 66452469..b0f1d4b6 100644
--- a/src/operations/pay.ts
+++ b/src/operations/pay.ts
@@ -345,8 +345,8 @@ async function recordConfirmPay(
     lastSessionId: sessionId,
     merchantSig: d.merchantSig,
     payReq,
-    acceptTimestamp: getTimestampNow(),
-    lastRefundStatusTimestamp: undefined,
+    timestampAccept: getTimestampNow(),
+    timestampLastRefundStatus: undefined,
     proposalId: proposal.proposalId,
     lastPayError: undefined,
     lastRefundStatusError: undefined,
@@ -355,7 +355,7 @@ async function recordConfirmPay(
     refundStatusRequested: false,
     lastRefundApplyError: undefined,
     refundApplyRetryInfo: initRetryInfo(),
-    firstSuccessfulPayTimestamp: undefined,
+    timestampFirstSuccessfulPay: undefined,
     autoRefundDeadline: undefined,
     paymentSubmitPending: true,
     refundState: {
@@ -421,7 +421,7 @@ export async function abortFailedPayment(
   if (!purchase) {
     throw Error("Purchase not found, unable to abort with refund");
   }
-  if (purchase.firstSuccessfulPayTimestamp) {
+  if (purchase.timestampFirstSuccessfulPay) {
     throw Error("Purchase already finished, not aborting");
   }
   if (purchase.abortDone) {
@@ -725,8 +725,8 @@ export async function submitPay(
     // FIXME: properly display error
     throw Error("merchant payment signature invalid");
   }
-  const isFirst = purchase.firstSuccessfulPayTimestamp === undefined;
-  purchase.firstSuccessfulPayTimestamp = now;
+  const isFirst = purchase.timestampFirstSuccessfulPay === undefined;
+  purchase.timestampFirstSuccessfulPay = now;
   purchase.paymentSubmitPending = false;
   purchase.lastPayError = undefined;
   purchase.payRetryInfo = initRetryInfo(false);
diff --git a/src/operations/pending.ts b/src/operations/pending.ts
index 252c9e98..ffa23f10 100644
--- a/src/operations/pending.ts
+++ b/src/operations/pending.ts
@@ -158,7 +158,7 @@ async function gatherReservePending(
           type: PendingOperationType.Reserve,
           givesLifeness: false,
           stage: reserve.reserveStatus,
-          timestampCreated: reserve.created,
+          timestampCreated: reserve.timestampCreated,
           reserveType,
           reservePub: reserve.reservePub,
           retryInfo: reserve.retryInfo,
@@ -180,7 +180,7 @@ async function gatherReservePending(
           type: PendingOperationType.Reserve,
           givesLifeness: true,
           stage: reserve.reserveStatus,
-          timestampCreated: reserve.created,
+          timestampCreated: reserve.timestampCreated,
           reserveType,
           reservePub: reserve.reservePub,
           retryInfo: reserve.retryInfo,
@@ -208,7 +208,7 @@ async function gatherRefreshPending(
   onlyDue: boolean = false,
 ): Promise<void> {
   await tx.iter(Stores.refreshGroups).forEach(r => {
-    if (r.finishedTimestamp) {
+    if (r.timestampFinished) {
       return;
     }
     resp.nextRetryDelay = updateRetryDelay(
@@ -235,7 +235,7 @@ async function gatherWithdrawalPending(
   onlyDue: boolean = false,
 ): Promise<void> {
   await tx.iter(Stores.withdrawalSession).forEach(wsr => {
-    if (wsr.finishTimestamp) {
+    if (wsr.timestampFinish) {
       return;
     }
     resp.nextRetryDelay = updateRetryDelay(
diff --git a/src/operations/refresh.ts b/src/operations/refresh.ts
index d9a080bd..f602221a 100644
--- a/src/operations/refresh.ts
+++ b/src/operations/refresh.ts
@@ -168,7 +168,7 @@ async function refreshCreateSession(
       if (!c) {
         throw Error("coin not found, but marked for refresh");
       }
-      const r = Amounts.sub(c.currentAmount, refreshSession.valueWithFee);
+      const r = Amounts.sub(c.currentAmount, 
refreshSession.amountRefreshInput);
       if (r.saturated) {
         console.log("can't refresh coin, no amount left");
         return;
@@ -224,7 +224,7 @@ async function refreshMelt(
     denom_pub_hash: coin.denomPubHash,
     denom_sig: coin.denomSig,
     rc: refreshSession.hash,
-    value_with_fee: refreshSession.valueWithFee,
+    value_with_fee: refreshSession.amountRefreshInput,
   };
   logger.trace("melt request:", meltReq);
   const resp = await ws.http.postJson(reqUrl.href, meltReq);
@@ -414,7 +414,7 @@ async function refreshReveal(
         }
       }
       if (allDone) {
-        rg.finishedTimestamp = getTimestampNow();
+        rg.timestampFinished = getTimestampNow();
         rg.retryInfo = initRetryInfo(false);
       }
       for (let coin of coins) {
@@ -489,7 +489,7 @@ async function processRefreshGroupImpl(
   if (!refreshGroup) {
     return;
   }
-  if (refreshGroup.finishedTimestamp) {
+  if (refreshGroup.timestampFinished) {
     return;
   }
   const ps = refreshGroup.oldCoinPubs.map((x, i) =>
@@ -545,7 +545,7 @@ export async function createRefreshGroup(
   const refreshGroupId = encodeCrock(getRandomBytes(32));
 
   const refreshGroup: RefreshGroupRecord = {
-    finishedTimestamp: undefined,
+    timestampFinished: undefined,
     finishedPerCoin: oldCoinPubs.map(x => false),
     lastError: undefined,
     lastErrorPerCoin: {},
diff --git a/src/operations/refund.ts b/src/operations/refund.ts
index 58941857..b4139c99 100644
--- a/src/operations/refund.ts
+++ b/src/operations/refund.ts
@@ -194,14 +194,14 @@ export async function acceptRefundResponse(
     }
 
     if (queryDone) {
-      p.lastRefundStatusTimestamp = getTimestampNow();
+      p.timestampLastRefundStatus = getTimestampNow();
       p.lastRefundStatusError = undefined;
       p.refundStatusRetryInfo = initRetryInfo();
       p.refundStatusRequested = false;
       console.log("refund query done");
     } else {
       // No error, but we need to try again!
-      p.lastRefundStatusTimestamp = getTimestampNow();
+      p.timestampLastRefundStatus = getTimestampNow();
       p.refundStatusRetryInfo.retryCounter++;
       updateRetryInfoTimeout(p.refundStatusRetryInfo);
       p.lastRefundStatusError = undefined;
diff --git a/src/operations/reserves.ts b/src/operations/reserves.ts
index 56e9c25d..7b0a6886 100644
--- a/src/operations/reserves.ts
+++ b/src/operations/reserves.ts
@@ -77,13 +77,13 @@ export async function createReserve(
   const currency = req.amount.currency;
 
   const reserveRecord: ReserveRecord = {
-    created: now,
-    withdrawAllocatedAmount: Amounts.getZero(currency),
-    withdrawCompletedAmount: Amounts.getZero(currency),
-    withdrawRemainingAmount: Amounts.getZero(currency),
+    timestampCreated: now,
+    amountWithdrawAllocated: Amounts.getZero(currency),
+    amountWithdrawCompleted: Amounts.getZero(currency),
+    amountWithdrawRemaining: Amounts.getZero(currency),
     exchangeBaseUrl: canonExchange,
     hasPayback: false,
-    initiallyRequestedAmount: req.amount,
+    amountInitiallyRequested: req.amount,
     reservePriv: keypair.priv,
     reservePub: keypair.pub,
     senderWire: req.senderWire,
@@ -414,20 +414,20 @@ async function updateReserve(
     // FIXME: check / compare history!
     if (!r.lastSuccessfulStatusQuery) {
       // FIXME: check if this matches initial expectations
-      r.withdrawRemainingAmount = balance;
+      r.amountWithdrawRemaining = balance;
       const reserveUpdate: ReserveUpdatedEventRecord = {
         reservePub: r.reservePub,
         timestamp: getTimestampNow(),
         amountReserveBalance: Amounts.toString(balance),
-        amountExpected: Amounts.toString(reserve.initiallyRequestedAmount),
+        amountExpected: Amounts.toString(reserve.amountInitiallyRequested),
         newHistoryTransactions,
         reserveUpdateId,
       };
       await tx.put(Stores.reserveUpdatedEvents, reserveUpdate);
     } else {
       const expectedBalance = Amounts.sub(
-        r.withdrawAllocatedAmount,
-        r.withdrawCompletedAmount,
+        r.amountWithdrawAllocated,
+        r.amountWithdrawCompleted,
       );
       const cmp = Amounts.cmp(balance, expectedBalance.amount);
       if (cmp == 0) {
@@ -436,8 +436,8 @@ async function updateReserve(
       }
       if (cmp > 0) {
         const extra = Amounts.sub(balance, expectedBalance.amount).amount;
-        r.withdrawRemainingAmount = Amounts.add(
-          r.withdrawRemainingAmount,
+        r.amountWithdrawRemaining = Amounts.add(
+          r.amountWithdrawRemaining,
           extra,
         ).amount;
       } else {
@@ -549,7 +549,7 @@ async function depleteReserve(
   }
   logger.trace(`depleting reserve ${reservePub}`);
 
-  const withdrawAmount = reserve.withdrawRemainingAmount;
+  const withdrawAmount = reserve.amountWithdrawRemaining;
 
   logger.trace(`getting denom list`);
 
@@ -585,7 +585,7 @@ async function depleteReserve(
       reservePub: reserve.reservePub,
     },
     rawWithdrawalAmount: withdrawAmount,
-    startTimestamp: getTimestampNow(),
+    timestampStart: getTimestampNow(),
     denoms: denomsForWithdraw.map(x => x.denomPub),
     withdrawn: denomsForWithdraw.map(x => false),
     planchets: denomsForWithdraw.map(x => undefined),
@@ -603,7 +603,7 @@ async function depleteReserve(
 
   function mutateReserve(r: ReserveRecord): ReserveRecord {
     const remaining = Amounts.sub(
-      r.withdrawRemainingAmount,
+      r.amountWithdrawRemaining,
       totalWithdrawAmount,
     );
     if (remaining.saturated) {
@@ -611,15 +611,15 @@ async function depleteReserve(
       throw TransactionAbort;
     }
     const allocated = Amounts.add(
-      r.withdrawAllocatedAmount,
+      r.amountWithdrawAllocated,
       totalWithdrawAmount,
     );
     if (allocated.saturated) {
       console.error("can't create planchets, saturated");
       throw TransactionAbort;
     }
-    r.withdrawRemainingAmount = remaining.amount;
-    r.withdrawAllocatedAmount = allocated.amount;
+    r.amountWithdrawRemaining = remaining.amount;
+    r.amountWithdrawAllocated = allocated.amount;
     r.reserveStatus = ReserveRecordStatus.DORMANT;
     r.retryInfo = initRetryInfo(false);
     return r;
diff --git a/src/operations/tip.ts b/src/operations/tip.ts
index ba4b8097..df4b7990 100644
--- a/src/operations/tip.ts
+++ b/src/operations/tip.ts
@@ -255,14 +255,14 @@ async function processTipImpl(
       type: "tip",
       tipId: tipRecord.tipId,
     },
-    startTimestamp: getTimestampNow(),
+    timestampStart: getTimestampNow(),
     withdrawSessionId: withdrawalSessionId,
     rawWithdrawalAmount: tipRecord.amount,
     withdrawn: planchets.map((x) => false),
     totalCoinValue: Amounts.sum(planchets.map((p) => p.coinValue)).amount,
     lastErrorPerCoin: {},
     retryInfo: initRetryInfo(),
-    finishTimestamp: undefined,
+    timestampFinish: undefined,
     lastError: undefined,
   };
 
diff --git a/src/operations/withdraw.ts b/src/operations/withdraw.ts
index c7c91494..6e7cdf51 100644
--- a/src/operations/withdraw.ts
+++ b/src/operations/withdraw.ts
@@ -280,7 +280,7 @@ async function processPlanchet(
         }
       }
       if (numDone === ws.denoms.length) {
-        ws.finishTimestamp = getTimestampNow();
+        ws.timestampFinish = getTimestampNow();
         ws.lastError = undefined;
         ws.retryInfo = initRetryInfo(false);
         withdrawSessionFinished = true;
@@ -289,11 +289,11 @@ async function processPlanchet(
       if (!planchet.isFromTip) {
         const r = await tx.get(Stores.reserves, planchet.reservePub);
         if (r) {
-          r.withdrawCompletedAmount = Amounts.add(
-            r.withdrawCompletedAmount,
+          r.amountWithdrawCompleted = Amounts.add(
+            r.amountWithdrawCompleted,
             Amounts.add(denom.value, denom.feeWithdraw).amount,
           ).amount;
-          if (Amounts.cmp(r.withdrawCompletedAmount, 
r.withdrawAllocatedAmount) == 0) {
+          if (Amounts.cmp(r.amountWithdrawCompleted, 
r.amountWithdrawAllocated) == 0) {
             reserveDepleted = true;
           }
           await tx.put(Stores.reserves, r);
diff --git a/src/types/dbTypes.ts b/src/types/dbTypes.ts
index 897c3503..a289eeb4 100644
--- a/src/types/dbTypes.ts
+++ b/src/types/dbTypes.ts
@@ -154,7 +154,7 @@ export interface ReserveRecord {
   /**
    * Time when the reserve was created.
    */
-  created: Timestamp;
+  timestampCreated: Timestamp;
 
   /**
    * Time when the information about this reserve was posted to the bank.
@@ -176,23 +176,23 @@ export interface ReserveRecord {
    * Amount that's still available for withdrawing
    * from this reserve.
    */
-  withdrawRemainingAmount: AmountJson;
+  amountWithdrawRemaining: AmountJson;
 
   /**
    * Amount allocated for withdrawing.
    * The corresponding withdraw operation may or may not
    * have been completed yet.
    */
-  withdrawAllocatedAmount: AmountJson;
+  amountWithdrawAllocated: AmountJson;
 
-  withdrawCompletedAmount: AmountJson;
+  amountWithdrawCompleted: AmountJson;
 
   /**
    * Amount requested when the reserve was created.
    * When a reserve is re-used (rare!)  the current_amount can
    * be higher than the requested_amount
    */
-  initiallyRequestedAmount: AmountJson;
+  amountInitiallyRequested: AmountJson;
 
   /**
    * We got some payback to this reserve.  We'll cease to automatically
@@ -469,6 +469,13 @@ export interface ExchangeWireInfo {
   accounts: ExchangeBankAccount[];
 }
 
+/**
+ * Summary of updates to the exchange.
+ */
+export interface ExchangeUpdateDiff {
+  // FIXME: implement!
+}
+
 export const enum ExchangeUpdateReason {
   Initial = "initial",
   Forced = "forced",
@@ -529,9 +536,16 @@ export interface ExchangeRecord {
    * undefined if no update is in progress.
    */
   updateStarted: Timestamp | undefined;
+
   updateStatus: ExchangeUpdateStatus;
+
   updateReason?: ExchangeUpdateReason;
 
+  /**
+   * Update diff, will be incorporated when the update is finalized.
+   */
+  updateDiff: ExchangeUpdateDiff | undefined;
+
   lastError?: OperationError;
 }
 
@@ -898,7 +912,7 @@ export interface RefreshGroupRecord {
   /**
    * Timestamp when the refresh session finished.
    */
-  finishedTimestamp: Timestamp | undefined;
+  timestampFinished: Timestamp | undefined;
 }
 
 /**
@@ -916,13 +930,13 @@ export interface RefreshSessionRecord {
    * How much of the coin's value is melted away
    * with this refresh session?
    */
-  valueWithFee: AmountJson;
+  amountRefreshInput: AmountJson;
 
   /**
    * Sum of the value of denominations we want
    * to withdraw in this session, without fees.
    */
-  valueOutput: AmountJson;
+  amountRefreshOutput: AmountJson;
 
   /**
    * Signature to confirm the melting.
@@ -972,7 +986,7 @@ export interface RefreshSessionRecord {
   /**
    * When has this refresh session been created?
    */
-  created: Timestamp;
+  timestampCreated: Timestamp;
 
   /**
    * Base URL for the exchange we're doing the refresh with.
@@ -1142,13 +1156,13 @@ export interface PurchaseRecord {
    * Timestamp of the first time that sending a payment to the merchant
    * for this purchase was successful.
    */
-  firstSuccessfulPayTimestamp: Timestamp | undefined;
+  timestampFirstSuccessfulPay: Timestamp | undefined;
 
   /**
    * When was the purchase made?
    * Refers to the time that the user accepted.
    */
-  acceptTimestamp: Timestamp;
+  timestampAccept: Timestamp;
 
   /**
    * State of refunds for this proposal.
@@ -1159,7 +1173,7 @@ export interface PurchaseRecord {
    * When was the last refund made?
    * Set to 0 if no refund was made on the purchase.
    */
-  lastRefundStatusTimestamp: Timestamp | undefined;
+  timestampLastRefundStatus: Timestamp | undefined;
 
   /**
    * Last session signature that we submitted to /pay (if any).
@@ -1302,12 +1316,12 @@ export interface WithdrawalSessionRecord {
    * When was the withdrawal operation started started?
    * Timestamp in milliseconds.
    */
-  startTimestamp: Timestamp;
+  timestampStart: Timestamp;
 
   /**
    * When was the withdrawal operation completed?
    */
-  finishTimestamp?: Timestamp;
+  timestampFinish?: Timestamp;
 
   totalCoinValue: AmountJson;
 
diff --git a/src/types/history.ts b/src/types/history.ts
index 21000631..8b46276b 100644
--- a/src/types/history.ts
+++ b/src/types/history.ts
@@ -1,5 +1,6 @@
 import { Timestamp, RefreshReason } from "./walletTypes";
 import { ReserveTransaction } from "./ReserveTransaction";
+import { WithdrawalSource } from "./dbTypes";
 
 /*
  This file is part of GNU Taler
@@ -45,8 +46,6 @@ export const enum HistoryEventType {
   Refreshed = "refreshed",
   Refund = "refund",
   ReserveBalanceUpdated = "reserve-balance-updated",
-  ReserveWithdrawAllocated = "reserve-withdraw-allocated",
-  ReserveConfirmed = "reserve-confirmed",
   ReserveCreated = "reserve-created",
   TipAccepted = "tip-accepted",
   TipDeclined = "tip-declined",
@@ -104,31 +103,6 @@ export interface HistoryReserveCreatedEvent {
   reserveShortInfo: ReserveShortInfo;
 }
 
-/**
- * The user (or some application / test case) or the bank has confirmed that 
the
- * reserve will indeed become available after a while, because the
- * funds are in the process of being transfered to the exchange.
- */
-export interface HistoryReserveConfirmeEvent {
-  type: HistoryEventType.ReserveConfirmed;
-
-  /**
-   * Point in time when the reserve was confirmed.
-   */
-  timestamp: Timestamp;
-
-  /**
-   * Amount that the should appear in the reserve once its status
-   * is requested from the exchange.
-   */
-  expectedAmount: string;
-
-  /**
-   * Condensed information about the reserve.
-   */
-  reserveShortInfo: ReserveShortInfo;
-}
-
 /**
  * This event is emitted every time we ask the exchange for the status
  * of the reserve, and the status has changed.
@@ -160,35 +134,6 @@ export interface HistoryReserveBalanceUpdatedEvent {
   amountExpected: string;
 }
 
-/**
- * This event is emitted every time we ask the exchange for the status
- * of the reserve, and the status has changed.
- */
-export interface HistoryReserveWithdrawAllocatedEvent {
-  type: HistoryEventType.ReserveWithdrawAllocated;
-
-  /**
-   * Point in time when the reserve was confirmed.
-   */
-  timestamp: Timestamp;
-
-  /**
-   * Unique identifier to query more information about the withdrawal.
-   */
-  withdrawalSessionId: string;
-
-  /**
-   * Condensed information about the reserve.
-   */
-  reserveShortInfo: ReserveShortInfo;
-
-  /**
-   * Amount that has been allocated for withdrawal from
-   * this reserve.
-   */
-  amountWithdrawAllocated: string;
-}
-
 /**
  * History event to indicate that the user has accepted a tip.
  */
@@ -549,7 +494,7 @@ export interface HistoryPaymentSent {
 /**
  * A refund has been applied.
  */
-export interface HistoryRefund {
+export interface HistoryRefunded {
   /**
    * Type tag.
    */
@@ -635,6 +580,8 @@ export interface HistoryWithdrawnEvent {
    */
   withdrawSessionId: string;
 
+  withdrawalSource: WithdrawalSource;
+
   /**
    * Amount that has been subtracted from the reserve's balance
    * for this withdrawal.
@@ -689,9 +636,8 @@ export type HistoryEvent = HistoryEventBase &
     | HistoryPaymentAbortedEvent
     | HistoryPaymentSent
     | HistoryRefreshedEvent
-    | HistoryRefund
+    | HistoryRefunded
     | HistoryReserveBalanceUpdatedEvent
-    | HistoryReserveConfirmeEvent
     | HistoryReserveCreatedEvent
     | HistoryTipAcceptedEvent
     | HistoryTipDeclinedEvent
diff --git a/src/wallet.ts b/src/wallet.ts
index 3d28d089..8decbc00 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -724,7 +724,7 @@ export class Wallet {
     const totalFees = totalRefundFees;
     return {
       contractTerms: purchase.contractTerms,
-      hasRefund: purchase.lastRefundStatusTimestamp !== undefined,
+      hasRefund: purchase.timestampLastRefundStatus !== undefined,
       totalRefundAmount: totalRefundAmount,
       totalRefundAndRefreshFees: totalFees,
     };
diff --git a/src/webex/pages/payback.tsx b/src/webex/pages/payback.tsx
index a25b5c6b..2601887b 100644
--- a/src/webex/pages/payback.tsx
+++ b/src/webex/pages/payback.tsx
@@ -57,7 +57,7 @@ function Payback() {
     <div>
       {reserves.map(r => (
         <div>
-          <h2>Reserve for ${renderAmount(r.withdrawRemainingAmount)}</h2>
+          <h2>Reserve for ${renderAmount(r.amountWithdrawRemaining)}</h2>
           <ul>
             <li>Exchange: ${r.exchangeBaseUrl}</li>
           </ul>

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



reply via email to

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