gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (c919c30ef -> 5de329e65)


From: gnunet
Subject: [taler-wallet-core] branch master updated (c919c30ef -> 5de329e65)
Date: Fri, 15 Sep 2023 12:52:00 +0200

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

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

    from c919c30ef -formatting, don't use deprecated method
     new 1d9d63b34 taler-util: fix time conversion
     new 5de329e65 wallet-core: fix type error in purse_expiration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/integrationtests/test-peer-to-peer-pull.ts |   4 +-
 .../src/integrationtests/test-wallet-gendb.ts      | 110 +++++++++++++++++++++
 .../src/integrationtests/testrunner.ts             |   2 +
 packages/taler-util/src/time.ts                    |   2 +-
 .../src/operations/pay-peer-pull-credit.ts         |   2 +-
 .../src/operations/pay-peer-push-debit.ts          |   5 +-
 6 files changed, 117 insertions(+), 8 deletions(-)
 create mode 100644 
packages/taler-harness/src/integrationtests/test-wallet-gendb.ts

diff --git 
a/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts 
b/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts
index 25c000808..6d9f44fb5 100644
--- a/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts
+++ b/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts
@@ -73,7 +73,7 @@ export async function runPeerToPeerPullTest(t: 
GlobalTestState) {
 
   await withdrawRes.withdrawalFinishedCond;
 
-  const purse_expiration = AbsoluteTime.toProtocolTimestamp(
+  const purseExpiration = AbsoluteTime.toProtocolTimestamp(
     AbsoluteTime.addDuration(
       AbsoluteTime.now(),
       Duration.fromSpec({ days: 2 }),
@@ -87,7 +87,7 @@ export async function runPeerToPeerPullTest(t: 
GlobalTestState) {
       partialContractTerms: {
         summary: "Hello World",
         amount: "TESTKUDOS:5",
-        purse_expiration,
+        purse_expiration: purseExpiration,
       },
     },
   );
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-gendb.ts 
b/packages/taler-harness/src/integrationtests/test-wallet-gendb.ts
new file mode 100644
index 000000000..ff6ed9959
--- /dev/null
+++ b/packages/taler-harness/src/integrationtests/test-wallet-gendb.ts
@@ -0,0 +1,110 @@
+/*
+ This file is part of GNU Taler
+ (C) 2020 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ * Imports.
+ */
+import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
+import { GlobalTestState } from "../harness/harness.js";
+import {
+  createSimpleTestkudosEnvironmentV2,
+  withdrawViaBankV2,
+  makeTestPaymentV2,
+} from "../harness/helpers.js";
+import {
+  AbsoluteTime,
+  Duration,
+  NotificationType,
+  TransactionMajorState,
+  TransactionMinorState,
+  j2s,
+} from "@gnu-taler/taler-util";
+
+/**
+ * Test that creates various transactions and exports the resulting
+ * database.  Used to generate a database export file for DB compatibility
+ * testing.
+ */
+export async function runWalletGenDbTest(t: GlobalTestState) {
+  // Set up test environment
+
+  const { walletClient, bank, exchange, merchant } =
+    await createSimpleTestkudosEnvironmentV2(t);
+
+  // Withdraw digital cash into the wallet.
+
+  await withdrawViaBankV2(t, {
+    walletClient,
+    bank,
+    exchange,
+    amount: "TESTKUDOS:50",
+  });
+
+  await walletClient.call(WalletApiOperation.TestingWaitTransactionsFinal, {});
+
+  const order = {
+    summary: "Buy me!",
+    amount: "TESTKUDOS:10",
+    fulfillment_url: "taler://fulfillment-success/thx",
+  };
+
+  await makeTestPaymentV2(t, { walletClient, merchant, order });
+  await walletClient.call(WalletApiOperation.TestingWaitTransactionsFinal, {});
+
+  const purseExpiration = AbsoluteTime.toProtocolTimestamp(
+    AbsoluteTime.addDuration(
+      AbsoluteTime.now(),
+      Duration.fromSpec({ days: 2 }),
+    ),
+  );
+
+  const peerPullIniResp = await walletClient.call(
+    WalletApiOperation.InitiatePeerPullCredit,
+    {
+      exchangeBaseUrl: exchange.baseUrl,
+      partialContractTerms: {
+        summary: "Hello World",
+        amount: "TESTKUDOS:5",
+        purse_expiration: purseExpiration,
+      },
+    },
+  );
+
+  const peerPullCreditReadyCond = walletClient.waitForNotificationCond(
+    (x) =>
+      x.type === NotificationType.TransactionStateTransition &&
+      x.transactionId === peerPullIniResp.transactionId &&
+      x.newTxState.major === TransactionMajorState.Pending &&
+      x.newTxState.minor === TransactionMinorState.Ready,
+  );
+
+  await peerPullCreditReadyCond;
+
+  const checkResp = await walletClient.call(
+    WalletApiOperation.PreparePeerPullDebit,
+    {
+      talerUri: peerPullIniResp.talerUri,
+    },
+  );
+
+  await walletClient.call(WalletApiOperation.ConfirmPeerPullDebit, {
+    transactionId: checkResp.transactionId,
+  });
+
+  await walletClient.call(WalletApiOperation.TestingWaitTransactionsFinal, {});
+}
+
+runWalletGenDbTest.suites = ["wallet"];
diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts 
b/packages/taler-harness/src/integrationtests/testrunner.ts
index 66bd87a59..237d3bf9f 100644
--- a/packages/taler-harness/src/integrationtests/testrunner.ts
+++ b/packages/taler-harness/src/integrationtests/testrunner.ts
@@ -110,6 +110,7 @@ import { runWithdrawalFakebankTest } from 
"./test-withdrawal-fakebank.js";
 import { runWithdrawalFeesTest } from "./test-withdrawal-fees.js";
 import { runWithdrawalHugeTest } from "./test-withdrawal-huge.js";
 import { runWithdrawalManualTest } from "./test-withdrawal-manual.js";
+import { runWalletGenDbTest } from "./test-wallet-gendb.js";
 
 /**
  * Test runner.
@@ -209,6 +210,7 @@ const allTests: TestMainFunction[] = [
   runTermOfServiceFormatTest,
   runStoredBackupsTest,
   runPaymentExpiredTest,
+  runWalletGenDbTest,
 ];
 
 export interface TestRunSpec {
diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts
index a63f9b296..c677d52ae 100644
--- a/packages/taler-util/src/time.ts
+++ b/packages/taler-util/src/time.ts
@@ -92,7 +92,7 @@ export namespace TalerPreciseTimestamp {
   export function fromMilliseconds(ms: number): TalerPreciseTimestamp {
     return {
       t_s: Math.floor(ms / 1000),
-      off_us: Math.floor((ms - Math.floor(ms / 100) * 1000) * 1000),
+      off_us: Math.floor((ms - Math.floor(ms / 1000) * 1000) * 1000),
     };
   }
 }
diff --git a/packages/taler-wallet-core/src/operations/pay-peer-pull-credit.ts 
b/packages/taler-wallet-core/src/operations/pay-peer-pull-credit.ts
index 6ec8822ab..54b78957f 100644
--- a/packages/taler-wallet-core/src/operations/pay-peer-pull-credit.ts
+++ b/packages/taler-wallet-core/src/operations/pay-peer-pull-credit.ts
@@ -392,7 +392,7 @@ async function handlePeerPullCreditCreatePurse(
   const econtractResp = await ws.cryptoApi.encryptContractForDeposit({
     contractPriv: pullIni.contractPriv,
     contractPub: pullIni.contractPub,
-    contractTerms: contractTermsRecord,
+    contractTerms: contractTermsRecord.contractTermsRaw,
     pursePriv: pullIni.pursePriv,
     pursePub: pullIni.pursePub,
     nonce: pullIni.contractEncNonce,
diff --git a/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts 
b/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts
index a7b9f79eb..50ae8d41b 100644
--- a/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts
+++ b/packages/taler-wallet-core/src/operations/pay-peer-push-debit.ts
@@ -245,8 +245,6 @@ async function processPeerPushDebitCreateReserve(
     hash(decodeCrock(econtractResp.econtract.econtract)),
   );
 
-  logger.info(`econtract hash: ${econtractHash}`);
-
   const createPurseUrl = new URL(
     `purses/${peerPushInitiation.pursePub}/create`,
     peerPushInitiation.exchangeBaseUrl,
@@ -257,7 +255,7 @@ async function processPeerPushDebitCreateReserve(
     merge_pub: peerPushInitiation.mergePub,
     purse_sig: purseSigResp.sig,
     h_contract_terms: hContractTerms,
-    purse_expiration: purseExpiration,
+    purse_expiration: timestampProtocolFromDb(purseExpiration),
     deposits: depositSigsResp.deposits,
     min_age: 0,
     econtract: econtractResp.econtract,
@@ -649,7 +647,6 @@ export async function initiatePeerPushDebit(
       // we might want to mark the coins as used and spend them
       // after we've been able to create the purse.
       await spendCoins(ws, tx, {
-        // allocationId: `txn:peer-push-debit:${pursePair.pub}`,
         allocationId: constructTransactionIdentifier({
           tag: TransactionType.PeerPushDebit,
           pursePub: pursePair.pub,

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