gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: wallet-core: implement 'gener


From: gnunet
Subject: [taler-wallet-core] branch master updated: wallet-core: implement 'generateDepositGroupTxId' request
Date: Thu, 13 Apr 2023 11:26:53 +0200

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 c581cff74 wallet-core: implement 'generateDepositGroupTxId' request
c581cff74 is described below

commit c581cff749e147f22504465865c65effff6c0fbe
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Apr 13 11:26:40 2023 +0200

    wallet-core: implement 'generateDepositGroupTxId' request
---
 packages/taler-util/src/wallet-types.ts               |  4 ++++
 packages/taler-wallet-core/src/operations/deposits.ts |  9 +++++++++
 packages/taler-wallet-core/src/wallet-api-types.ts    | 16 ++++++++++++++++
 packages/taler-wallet-core/src/wallet.ts              |  2 ++
 4 files changed, 31 insertions(+)

diff --git a/packages/taler-util/src/wallet-types.ts 
b/packages/taler-util/src/wallet-types.ts
index c75ca7fdd..7a2442e2d 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -1737,6 +1737,10 @@ export interface CreateDepositGroupResponse {
   transactionId: string;
 }
 
+export interface TxIdResponse {
+  transactionId: string;
+}
+
 export interface WithdrawUriInfoResponse {
   amount: AmountString;
   defaultExchangeBaseUrl?: string;
diff --git a/packages/taler-wallet-core/src/operations/deposits.ts 
b/packages/taler-wallet-core/src/operations/deposits.ts
index 9abec89bf..d1dbf5f53 100644
--- a/packages/taler-wallet-core/src/operations/deposits.ts
+++ b/packages/taler-wallet-core/src/operations/deposits.ts
@@ -75,6 +75,7 @@ import {
   getTotalPaymentCost,
 } from "./pay-merchant.js";
 import { selectPayCoinsNew } from "../util/coinSelection.js";
+import { constructTransactionIdentifier } from "./transactions.js";
 
 /**
  * Logger.
@@ -571,6 +572,14 @@ export async function prepareDepositGroup(
   };
 }
 
+export function generateDepositGroupTxId(): string {
+  const depositGroupId = encodeCrock(getRandomBytes(32));
+  return constructTransactionIdentifier({
+    tag: TransactionType.Deposit,
+    depositGroupId: depositGroupId,
+  });
+}
+
 export async function createDepositGroup(
   ws: InternalWalletState,
   req: CreateDepositGroupRequest,
diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts 
b/packages/taler-wallet-core/src/wallet-api-types.ts
index 93c8b136c..2ac649f59 100644
--- a/packages/taler-wallet-core/src/wallet-api-types.ts
+++ b/packages/taler-wallet-core/src/wallet-api-types.ts
@@ -109,6 +109,7 @@ import {
   WithdrawUriInfoResponse,
   ValidateIbanRequest,
   ValidateIbanResponse,
+  TxIdResponse,
 } from "@gnu-taler/taler-util";
 import { WalletContractData } from "./db.js";
 import {
@@ -177,6 +178,7 @@ export enum WalletApiOperation {
   DeleteTransaction = "deleteTransaction",
   RetryTransaction = "retryTransaction",
   ListCurrencies = "listCurrencies",
+  GenerateDepositGroupTxId = "generateDepositGroupTxId",
   CreateDepositGroup = "createDepositGroup",
   SetWalletDeviceId = "setWalletDeviceId",
   ExportBackupPlain = "exportBackupPlain",
@@ -495,6 +497,19 @@ export type ListCurrenciesOp = {
 
 // group: Deposits
 
+/**
+ * Generate a fresh transaction ID for a deposit group.
+ *
+ * The resulting transaction ID can be specified when creating
+ * a deposit group, so that the client can already start waiting for 
notifications
+ * on that specific deposit group before the GreateDepositGroup request 
returns.
+ */
+export type GenerateDepositGroupTxIdOp = {
+  op: WalletApiOperation.GenerateDepositGroupTxId;
+  request: EmptyObject;
+  response: TxIdResponse;
+};
+
 /**
  * Create a new deposit group.
  *
@@ -909,6 +924,7 @@ export type WalletOperations = {
   [WalletApiOperation.GetExchangeTos]: GetExchangeTosOp;
   [WalletApiOperation.GetExchangeDetailedInfo]: GetExchangeDetailedInfoOp;
   [WalletApiOperation.PrepareDeposit]: PrepareDepositOp;
+  [WalletApiOperation.GenerateDepositGroupTxId]: GenerateDepositGroupTxIdOp;
   [WalletApiOperation.CreateDepositGroup]: CreateDepositGroupOp;
   [WalletApiOperation.SetWalletDeviceId]: SetWalletDeviceIdOp;
   [WalletApiOperation.ExportBackupPlain]: ExportBackupPlainOp;
diff --git a/packages/taler-wallet-core/src/wallet.ts 
b/packages/taler-wallet-core/src/wallet.ts
index a7fbbb6b5..5a0a8fe77 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -1348,6 +1348,8 @@ async function dispatchRequestInternal<Op extends 
WalletApiOperation>(
       const req = codecForPrepareDepositRequest().decode(payload);
       return await prepareDepositGroup(ws, req);
     }
+    case WalletApiOperation.GenerateDepositGroupTxId:
+      return generateDepositGroupTxId();
     case WalletApiOperation.CreateDepositGroup: {
       const req = codecForCreateDepositGroupRequest().decode(payload);
       return await createDepositGroup(ws, req);

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