gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: verboseDetails for pay and wi


From: gnunet
Subject: [taler-wallet-core] branch master updated: verboseDetails for pay and withdraw
Date: Mon, 20 Jan 2020 11:53:25 +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 c5906abf verboseDetails for pay and withdraw
c5906abf is described below

commit c5906abf106d22cc35b8facdda4313b6125160b9
Author: Florian Dold <address@hidden>
AuthorDate: Mon Jan 20 11:53:21 2020 +0100

    verboseDetails for pay and withdraw
---
 src/headless/integrationtest.ts |  4 ++++
 src/operations/history.ts       | 45 +++++++++++++++++++++++++++++++++++++++++
 src/types/history.ts            | 21 ++++++++++++++++++-
 3 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/src/headless/integrationtest.ts b/src/headless/integrationtest.ts
index ee52c4c4..6ec28dc4 100644
--- a/src/headless/integrationtest.ts
+++ b/src/headless/integrationtest.ts
@@ -186,4 +186,8 @@ export async function runIntegrationTest(args: 
IntegrationTestArgs) {
   );
 
   await myWallet.runUntilDone();
+
+  const history = await myWallet.getHistory();
+
+  console.log("history after integration test:", JSON.stringify(history, 
undefined, 2));
 }
diff --git a/src/operations/history.ts b/src/operations/history.ts
index 4eb626d6..54874f64 100644
--- a/src/operations/history.ts
+++ b/src/operations/history.ts
@@ -23,6 +23,8 @@ import {
   TipRecord,
   ProposalStatus,
   ProposalRecord,
+  PlanchetRecord,
+  CoinRecord,
 } from "../types/dbTypes";
 import * as Amounts from "../util/amounts";
 import { AmountJson } from "../util/amounts";
@@ -33,6 +35,8 @@ import {
   OrderShortInfo,
   ReserveType,
   ReserveCreationDetail,
+  VerbosePayCoinDetails,
+  VerboseWithdrawDetails,
 } from "../types/history";
 import { assertUnreachable } from "../util/assertUnreachable";
 import { TransactionHandle, Store } from "../util/query";
@@ -203,6 +207,22 @@ export async function getHistory(
 
       tx.iter(Stores.withdrawalSession).forEach(wsr => {
         if (wsr.timestampFinish) {
+          const cs: PlanchetRecord[] = [];
+          wsr.planchets.forEach((x) => {
+            if (x) {
+              cs.push(x);
+            }
+          });
+          const verboseDetails: VerboseWithdrawDetails = {
+            coins: cs.map((x) => ({
+              value: Amounts.toString(x.coinValue),
+              denomPub: x.denomPub,
+            })),
+          };
+          const coins = cs.map((x) => ({
+            value: x.coinValue
+          }));
+          
           history.push({
             type: HistoryEventType.Withdrawn,
             withdrawSessionId: wsr.withdrawSessionId,
@@ -215,6 +235,7 @@ export async function getHistory(
             exchangeBaseUrl: wsr.exchangeBaseUrl,
             timestamp: wsr.timestampFinish,
             withdrawalSource: wsr.source,
+            verboseDetails,
           });
         }
       });
@@ -234,6 +255,29 @@ export async function getHistory(
         if (!orderShortInfo) {
           return;
         }
+        const coins: {
+          value: string,
+          contribution: string;
+          denomPub: string;
+        }[] = [];
+        for (const x of purchase.payReq.coins) {
+          const c = await tx.get(Stores.coins, x.coin_pub);
+          if (!c) {
+            // FIXME: what to do here??
+            continue;
+          }
+          const d = await tx.get(Stores.denominations, [c.exchangeBaseUrl, 
c.denomPub]);
+          if (!d) {
+            // FIXME: what to do here??
+            continue;
+          }
+          coins.push({
+            contribution: x.contribution,
+            denomPub: c.denomPub,
+            value: Amounts.toString(d.value),
+          });
+        }
+        const verboseDetails: VerbosePayCoinDetails = { coins };
         const amountPaidWithFees = Amounts.sum(
           purchase.payReq.coins.map(x => Amounts.parseOrThrow(x.contribution)),
         ).amount;
@@ -246,6 +290,7 @@ export async function getHistory(
           timestamp: pe.timestamp,
           numCoins: purchase.payReq.coins.length,
           amountPaidWithFees: Amounts.toString(amountPaidWithFees),
+          verboseDetails,
         });
       });
 
diff --git a/src/types/history.ts b/src/types/history.ts
index a0e81614..7acf84dc 100644
--- a/src/types/history.ts
+++ b/src/types/history.ts
@@ -23,7 +23,6 @@ import { ReserveTransaction } from "./ReserveTransaction";
 import { WithdrawalSource } from "./dbTypes";
 import { Timestamp } from "../util/time";
 
-
 /**
  * Type tags for the history event types.
  */
@@ -466,6 +465,15 @@ export interface HistoryPaymentAbortedEvent {
   amountLost: string;
 }
 
+export interface VerbosePayCoinDetails {
+  coins:
+    {
+      value: string,
+      contribution: string;
+      denomPub: string;
+    }[],
+}
+
 /**
  * History event to indicate that a payment has been (re-)submitted
  * to the merchant.
@@ -501,6 +509,8 @@ export interface HistoryPaymentSent {
    * Session ID that the payment was (re-)submitted under.
    */
   sessionId: string | undefined;
+
+  verboseDetails: VerbosePayCoinDetails;
 }
 
 /**
@@ -575,6 +585,13 @@ export interface HistoryRefreshedEvent {
   refreshGroupId: string;
 }
 
+export interface VerboseWithdrawDetails {
+  coins: {
+    value: string;
+    denomPub: string;
+  }[];
+}
+
 /**
  * A withdrawal has completed.
  */
@@ -604,6 +621,8 @@ export interface HistoryWithdrawnEvent {
    * Amount that actually was added to the wallet's balance.
    */
   amountWithdrawnEffective: string;
+
+  verboseDetails: VerboseWithdrawDetails;
 }
 
 /**

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



reply via email to

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