gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] 02/03: version bump / pending balance tweaks


From: gnunet
Subject: [taler-wallet-core] 02/03: version bump / pending balance tweaks
Date: Tue, 03 Dec 2019 14:40:12 +0100

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

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

commit 8683c93613caa4047c4fd874aefb0b7d35fdc038
Author: Florian Dold <address@hidden>
AuthorDate: Tue Dec 3 01:33:25 2019 +0100

    version bump / pending balance tweaks
---
 manifest.json               |  4 ++--
 src/dbTypes.ts              |  9 +++++----
 src/wallet-impl/balance.ts  | 25 ++++++++++++++++++++-----
 src/wallet-impl/history.ts  |  2 +-
 src/wallet-impl/reserves.ts |  7 ++++---
 src/wallet-impl/tip.ts      |  3 ++-
 src/wallet-impl/withdraw.ts |  3 +++
 src/wallet.ts               |  2 +-
 8 files changed, 38 insertions(+), 17 deletions(-)

diff --git a/manifest.json b/manifest.json
index 5abbccae..826f5241 100644
--- a/manifest.json
+++ b/manifest.json
@@ -4,8 +4,8 @@
   "name": "GNU Taler Wallet (git)",
   "description": "Privacy preserving and transparent payments",
   "author": "GNU Taler Developers",
-  "version": "0.6.70",
-  "version_name": "0.6.0pre3",
+  "version": "0.6.71",
+  "version_name": "0.6.0pre4",
 
   "minimum_chrome_version": "51",
   "minimum_opera_version": "36",
diff --git a/src/dbTypes.ts b/src/dbTypes.ts
index 4f374c26..66c4fa8b 100644
--- a/src/dbTypes.ts
+++ b/src/dbTypes.ts
@@ -44,7 +44,7 @@ import { Timestamp, OperationError } from "./walletTypes";
  * In the future we might consider adding migration functions for
  * each version increment.
  */
-export const WALLET_DB_VERSION = 27;
+export const WALLET_DB_VERSION = 28;
 
 export enum ReserveRecordStatus {
   /**
@@ -1045,11 +1045,12 @@ export interface WithdrawalSessionRecord {
    */
   finishTimestamp?: Timestamp;
 
+  totalCoinValue: AmountJson;
+
   /**
-   * Amount that is being withdrawn with this operation.
-   * This does not include fees.
+   * Amount including fees.
    */
-  withdrawalAmount: string;
+  rawWithdrawalAmount: AmountJson;
 
   denoms: string[];
 
diff --git a/src/wallet-impl/balance.ts b/src/wallet-impl/balance.ts
index 0abc9663..94d65fa9 100644
--- a/src/wallet-impl/balance.ts
+++ b/src/wallet-impl/balance.ts
@@ -17,10 +17,7 @@
 /**
  * Imports.
  */
-import {
-  WalletBalance,
-  WalletBalanceEntry,
-} from "../walletTypes";
+import { WalletBalance, WalletBalanceEntry } from "../walletTypes";
 import { runWithReadTransaction } from "../util/query";
 import { InternalWalletState } from "./state";
 import { Stores, TipRecord, CoinStatus } from "../dbTypes";
@@ -77,7 +74,7 @@ export async function getBalances(
 
   await runWithReadTransaction(
     ws.db,
-    [Stores.coins, Stores.refresh, Stores.reserves, Stores.purchases],
+    [Stores.coins, Stores.refresh, Stores.reserves, Stores.purchases, 
Stores.withdrawalSession],
     async tx => {
       await tx.iter(Stores.coins).forEach(c => {
         if (c.suspended) {
@@ -121,6 +118,24 @@ export async function getBalances(
         );
       });
 
+      await tx.iter(Stores.withdrawalSession).forEach(wds => {
+        let w = wds.totalCoinValue;
+        for (let i = 0; i < wds.planchets.length; i++) {
+          if (wds.withdrawn[i]) {
+            const p = wds.planchets[i];
+            if (p) {
+              w = Amounts.sub(w, p.coinValue).amount;
+            }
+          }
+        }
+        addTo(
+          balanceStore,
+          "pendingIncoming",
+          w,
+          wds.exchangeBaseUrl,
+        );
+      });
+
       await tx.iter(Stores.purchases).forEach(t => {
         if (t.finished) {
           return;
diff --git a/src/wallet-impl/history.ts b/src/wallet-impl/history.ts
index f5a4e9d3..dfc683e6 100644
--- a/src/wallet-impl/history.ts
+++ b/src/wallet-impl/history.ts
@@ -61,7 +61,7 @@ export async function getHistory(
   for (const w of withdrawals) {
     history.push({
       detail: {
-        withdrawalAmount: w.withdrawalAmount,
+        withdrawalAmount: w.rawWithdrawalAmount,
       },
       timestamp: w.startTimestamp,
       type: "withdraw",
diff --git a/src/wallet-impl/reserves.ts b/src/wallet-impl/reserves.ts
index c9cd10ca..d70f0257 100644
--- a/src/wallet-impl/reserves.ts
+++ b/src/wallet-impl/reserves.ts
@@ -502,6 +502,8 @@ async function depleteReserve(
 
   const withdrawalSessionId = encodeCrock(randomBytes(32));
 
+  const totalCoinValue = Amounts.sum(denomsForWithdraw.map(x => 
x.value)).amount;
+
   const withdrawalRecord: WithdrawalSessionRecord = {
     withdrawSessionId: withdrawalSessionId,
     exchangeBaseUrl: reserve.exchangeBaseUrl,
@@ -509,15 +511,14 @@ async function depleteReserve(
       type: "reserve",
       reservePub: reserve.reservePub,
     },
-    withdrawalAmount: Amounts.toString(withdrawAmount),
+    rawWithdrawalAmount: withdrawAmount,
     startTimestamp: getTimestampNow(),
     denoms: denomsForWithdraw.map(x => x.denomPub),
     withdrawn: denomsForWithdraw.map(x => false),
     planchets: denomsForWithdraw.map(x => undefined),
+    totalCoinValue,
   };
 
-  const totalCoinValue = Amounts.sum(denomsForWithdraw.map(x => x.value))
-    .amount;
   const totalCoinWithdrawFee = Amounts.sum(
     denomsForWithdraw.map(x => x.feeWithdraw),
   ).amount;
diff --git a/src/wallet-impl/tip.ts b/src/wallet-impl/tip.ts
index b102d026..593f0d61 100644
--- a/src/wallet-impl/tip.ts
+++ b/src/wallet-impl/tip.ts
@@ -202,8 +202,9 @@ export async function processTip(
     },
     startTimestamp: getTimestampNow(),
     withdrawSessionId: withdrawalSessionId,
-    withdrawalAmount: Amounts.toString(tipRecord.amount),
+    rawWithdrawalAmount: tipRecord.amount,
     withdrawn: planchets.map((x) => false),
+    totalCoinValue: Amounts.sum(planchets.map((p) => p.coinValue)).amount,
   };
 
 
diff --git a/src/wallet-impl/withdraw.ts b/src/wallet-impl/withdraw.ts
index baeae1a5..d02ae14a 100644
--- a/src/wallet-impl/withdraw.ts
+++ b/src/wallet-impl/withdraw.ts
@@ -143,9 +143,12 @@ export async function acceptWithdrawal(
     senderWire: withdrawInfo.senderWire,
     exchangeWire: exchangeWire,
   });
+  ws.badge.showNotification();
+  ws.notifier.notify();
   // We do this here, as the reserve should be registered before we return,
   // so that we can redirect the user to the bank's status page.
   await processReserveBankStatus(ws, reserve.reservePub);
+  ws.notifier.notify();
   console.log("acceptWithdrawal: returning");
   return {
     reservePub: reserve.reservePub,
diff --git a/src/wallet.ts b/src/wallet.ts
index 432a3e98..89f31f51 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -120,7 +120,7 @@ import { AsyncCondition } from "./util/promiseUtils";
  */
 export const WALLET_PROTOCOL_VERSION = "3:0:0";
 
-export const WALLET_CACHE_BREAKER_CLIENT_VERSION = "2";
+export const WALLET_CACHE_BREAKER_CLIENT_VERSION = "3";
 
 const builtinCurrencies: CurrencyRecord[] = [
   {

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



reply via email to

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