gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] 02/02: wallet-core: report correct amountEffective i


From: gnunet
Subject: [taler-wallet-core] 02/02: wallet-core: report correct amountEffective in peer-pull-credit even before withdrawal is active
Date: Thu, 23 Feb 2023 16:07:24 +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 582b6ae5f4139cd1be8096dd59371430455bbeef
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Feb 23 16:07:14 2023 +0100

    wallet-core: report correct amountEffective in peer-pull-credit even before 
withdrawal is active
---
 .../src/crypto/workers/nodeThreadWorker.ts                 |  2 +-
 packages/taler-wallet-core/src/db.ts                       | 14 ++++++++++++++
 packages/taler-wallet-core/src/operations/exchanges.ts     |  1 +
 packages/taler-wallet-core/src/operations/pay-peer.ts      |  8 ++++++++
 packages/taler-wallet-core/src/operations/transactions.ts  |  2 +-
 5 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts 
b/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
index d9b4399d6..eaa0108bb 100644
--- a/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
+++ b/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
@@ -151,7 +151,7 @@ class NodeThreadCryptoWorker implements CryptoWorker {
         this.onmessage(v);
       }
     });
-    this.nodeWorker.unref();
+    //this.nodeWorker.unref();
   }
 
   /**
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index 630713ee3..a7bdda3ec 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -1795,6 +1795,8 @@ export interface PeerPullPaymentInitiationRecord {
    */
   amount: AmountString;
 
+  estimatedAmountEffective: AmountString;
+
   /**
    * Purse public key.  Used as the primary key to look
    * up this record.
@@ -2606,6 +2608,18 @@ export const walletDbFixups: FixupDescription[] = [
       });
     },
   },
+  {
+    name: "PeerPullPaymentInitiationRecord_estimatedAmountEffective_add",
+    async fn(tx): Promise<void> {
+      await tx.peerPullPaymentInitiations.iter().forEachAsync(async (pi) => {
+        if (pi.estimatedAmountEffective) {
+          return;
+        }
+        pi.estimatedAmountEffective = pi.amount;
+        await tx.peerPullPaymentInitiations.put(pi);
+      });
+    },
+  },
   {
     name: "PeerPushPaymentInitiationRecord_ALL_removeLegacyTx",
     async fn(tx): Promise<void> {
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts 
b/packages/taler-wallet-core/src/operations/exchanges.ts
index 457344e06..8a98c8299 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -260,6 +260,7 @@ async function validateWireInfo(
       throw Error("exchange acct signature invalid");
     }
   }
+  logger.trace("account validation done");
   const feesForType: WireFeeMap = {};
   for (const wireMethod of Object.keys(wireInfo.fees)) {
     const feeList: WireFee[] = [];
diff --git a/packages/taler-wallet-core/src/operations/pay-peer.ts 
b/packages/taler-wallet-core/src/operations/pay-peer.ts
index 6a04bce7c..05338b83e 100644
--- a/packages/taler-wallet-core/src/operations/pay-peer.ts
+++ b/packages/taler-wallet-core/src/operations/pay-peer.ts
@@ -1655,6 +1655,13 @@ export async function initiatePeerPullPayment(
   const mergeReserveRowId = mergeReserveInfo.rowId;
   checkDbInvariant(!!mergeReserveRowId);
 
+  const wi = await getExchangeWithdrawalInfo(
+    ws,
+    exchangeBaseUrl,
+    Amounts.parseOrThrow(req.partialContractTerms.amount),
+    undefined,
+  );
+
   await ws.db
     .mktx((x) => [x.peerPullPaymentInitiations, x.contractTerms])
     .runReadWrite(async (tx) => {
@@ -1673,6 +1680,7 @@ export async function initiatePeerPullPayment(
         contractPriv: contractKeyPair.priv,
         contractPub: contractKeyPair.pub,
         withdrawalGroupId,
+        estimatedAmountEffective: wi.withdrawalAmountEffective,
       });
       await tx.contractTerms.put({
         contractTermsRaw: contractTerms,
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts 
b/packages/taler-wallet-core/src/operations/transactions.ts
index 764115cef..54fe1320d 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -542,7 +542,7 @@ function buildTransactionForPeerPullCredit(
 
   return {
     type: TransactionType.PeerPullCredit,
-    amountEffective: Amounts.stringify(peerContractTerms.amount),
+    amountEffective: Amounts.stringify(pullCredit.amount),
     amountRaw: Amounts.stringify(peerContractTerms.amount),
     exchangeBaseUrl: pullCredit.exchangeBaseUrl,
     extendedStatus: ExtendedStatus.Pending,

-- 
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]