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: fix type error in purse_expirati


From: gnunet
Subject: [taler-wallet-core] 02/02: wallet-core: fix type error in purse_expiration
Date: Fri, 15 Sep 2023 12:52:02 +0200

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

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

commit 5de329e653bb1e2a0b6ad8247cb76d285a98fdc0
Author: Florian Dold <florian@dold.me>
AuthorDate: Fri Sep 15 12:51:57 2023 +0200

    wallet-core: fix type error in purse_expiration
---
 .../src/integrationtests/test-peer-to-peer-pull.ts |   4 +-
 .../src/integrationtests/test-wallet-gendb.ts      | 110 +++++++++++++++++++++
 .../src/integrationtests/testrunner.ts             |   2 +
 .../src/operations/pay-peer-pull-credit.ts         |   2 +-
 .../src/operations/pay-peer-push-debit.ts          |   5 +-
 5 files changed, 116 insertions(+), 7 deletions(-)

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