gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: remove ToS storage


From: gnunet
Subject: [taler-wallet-core] branch master updated: remove ToS storage
Date: Wed, 06 Sep 2023 18:43:38 +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 1fcb55c84 remove ToS storage
1fcb55c84 is described below

commit 1fcb55c84dc541e64ebbb2d16156bab275ff16c4
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed Sep 6 18:43:37 2023 +0200

    remove ToS storage
---
 packages/taler-util/src/wallet-types.ts            | 17 -----
 packages/taler-wallet-core/src/db.ts               |  7 --
 .../taler-wallet-core/src/operations/exchanges.ts  | 45 -----------
 .../taler-wallet-core/src/operations/withdraw.ts   |  1 -
 packages/taler-wallet-core/src/wallet.ts           | 86 +++-------------------
 .../src/cta/Withdraw/state.ts                      |  1 -
 6 files changed, 10 insertions(+), 147 deletions(-)

diff --git a/packages/taler-util/src/wallet-types.ts 
b/packages/taler-util/src/wallet-types.ts
index 353fb900d..0d78b405a 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -1076,13 +1076,6 @@ export interface KnownBankAccounts {
   accounts: KnownBankAccountsInfo[];
 }
 
-export interface ExchangeTosStatusDetails {
-  acceptedVersion?: string;
-  currentVersion?: string;
-  contentType?: string;
-  content?: string;
-}
-
 /**
  * Wire fee for one wire method
  */
@@ -1253,7 +1246,6 @@ export interface ExchangeFullDetails {
   exchangeBaseUrl: string;
   currency: string;
   paytoUris: string[];
-  tos: ExchangeTosStatusDetails;
   auditors: ExchangeAuditor[];
   wireInfo: WireInfo;
   denomFees: DenomOperationMap<FeeDescription[]>;
@@ -1317,14 +1309,6 @@ const codecForExchangeAuditor = (): 
Codec<ExchangeAuditor> =>
     .property("denomination_keys", codecForList(codecForAuditorDenomSig()))
     .build("codecForExchangeAuditor");
 
-const codecForExchangeTos = (): Codec<ExchangeTosStatusDetails> =>
-  buildCodecForObject<ExchangeTosStatusDetails>()
-    .property("acceptedVersion", codecOptional(codecForString()))
-    .property("currentVersion", codecOptional(codecForString()))
-    .property("contentType", codecOptional(codecForString()))
-    .property("content", codecOptional(codecForString()))
-    .build("ExchangeTos");
-
 export const codecForFeeDescriptionPair = (): Codec<FeeDescriptionPair> =>
   buildCodecForObject<FeeDescriptionPair>()
     .property("group", codecForString())
@@ -1357,7 +1341,6 @@ export const codecForExchangeFullDetails = (): 
Codec<ExchangeFullDetails> =>
     .property("currency", codecForString())
     .property("exchangeBaseUrl", codecForString())
     .property("paytoUris", codecForList(codecForString()))
-    .property("tos", codecForExchangeTos())
     .property("auditors", codecForList(codecForExchangeAuditor()))
     .property("wireInfo", codecForWireInfo())
     .property("denomFees", codecForFeesByOperations())
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index 4c0a6168d..2c7673267 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -2382,13 +2382,6 @@ export const WalletStoresV1 = {
       byReservePub: describeIndex("byReservePub", "reservePub", {}),
     },
   ),
-  exchangeTos: describeStore(
-    "exchangeTos",
-    describeContents<ExchangeTosRecord>({
-      keyPath: ["exchangeBaseUrl", "etag"],
-    }),
-    {},
-  ),
   config: describeStore(
     "config",
     describeContents<ConfigRecord>({ keyPath: "key" }),
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts 
b/packages/taler-wallet-core/src/operations/exchanges.ts
index 690bc3cec..13e89b16c 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -157,35 +157,6 @@ export async function getExchangeDetails(
 getExchangeDetails.makeContext = (db: DbAccess<typeof WalletStoresV1>) =>
   db.mktx((x) => [x.exchanges, x.exchangeDetails]);
 
-/**
- * Update the database based on the download of the terms of service.
- */
-export async function updateExchangeTermsOfService(
-  ws: InternalWalletState,
-  exchangeBaseUrl: string,
-  tos: ExchangeTosDownloadResult,
-): Promise<void> {
-  await ws.db
-    .mktx((x) => [x.exchanges, x.exchangeTos, x.exchangeDetails])
-    .runReadWrite(async (tx) => {
-      const d = await getExchangeDetails(tx, exchangeBaseUrl);
-      let tosRecord = await tx.exchangeTos.get([exchangeBaseUrl, tos.tosEtag]);
-      if (!tosRecord) {
-        tosRecord = {
-          etag: tos.tosEtag,
-          exchangeBaseUrl,
-          termsOfServiceContentType: tos.tosContentType,
-          termsOfServiceText: tos.tosText,
-        };
-        await tx.exchangeTos.put(tosRecord);
-      }
-      if (d) {
-        d.tosCurrentEtag = tos.tosEtag;
-        await tx.exchangeDetails.put(d);
-      }
-    });
-}
-
 /**
  * Mark a ToS version as accepted by the user.
  *
@@ -740,7 +711,6 @@ export async function updateExchangeFromUrlHandler(
   const updated = await ws.db
     .mktx((x) => [
       x.exchanges,
-      x.exchangeTos,
       x.exchangeDetails,
       x.exchangeSignKeys,
       x.denominations,
@@ -801,21 +771,6 @@ export async function updateExchangeFromUrlHandler(
       const drRowId = await tx.exchangeDetails.put(newDetails);
       checkDbInvariant(typeof drRowId.key === "number");
 
-      let tosRecord = await tx.exchangeTos.get([
-        exchangeBaseUrl,
-        tosDownload.tosEtag,
-      ]);
-
-      if (!tosRecord || tosRecord.etag !== existingTosAccepted?.etag) {
-        tosRecord = {
-          etag: tosDownload.tosEtag,
-          exchangeBaseUrl,
-          termsOfServiceContentType: tosDownload.tosContentType,
-          termsOfServiceText: tosDownload.tosText,
-        };
-        await tx.exchangeTos.put(tosRecord);
-      }
-
       for (const sk of keysInfo.signingKeys) {
         // FIXME: validate signing keys before inserting them
         await tx.exchangeSignKeys.put({
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts 
b/packages/taler-wallet-core/src/operations/withdraw.ts
index 2b76613e7..b2b25144d 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -1856,7 +1856,6 @@ export async function getWithdrawalDetailsForUri(
     .mktx((x) => [
       x.exchanges,
       x.exchangeDetails,
-      x.exchangeTos,
       x.denominations,
       x.operationRetries,
     ])
diff --git a/packages/taler-wallet-core/src/wallet.ts 
b/packages/taler-wallet-core/src/wallet.ts
index 7a1bd5a4f..cb82a3a43 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -34,7 +34,6 @@ import {
   Duration,
   ExchangeDetailedResponse,
   ExchangeListItem,
-  ExchangeTosStatusDetails,
   ExchangesListResponse,
   FeeDescription,
   GetExchangeTosResult,
@@ -202,7 +201,6 @@ import {
   provideExchangeRecordInTx,
   updateExchangeFromUrl,
   updateExchangeFromUrlHandler,
-  updateExchangeTermsOfService,
 } from "./operations/exchanges.js";
 import { getMerchantInfo } from "./operations/merchants.js";
 import {
@@ -557,33 +555,6 @@ async function getExchangeTos(
 ): Promise<GetExchangeTosResult> {
   // FIXME: download ToS in acceptable format if passed!
   const { exchangeDetails } = await updateExchangeFromUrl(ws, exchangeBaseUrl);
-  const tosDetails = await ws.db
-    .mktx((x) => [x.exchangeTos])
-    .runReadOnly(async (tx) => {
-      return await getExchangeTosStatusDetails(tx, exchangeDetails);
-    });
-  const content = tosDetails.content;
-  const currentEtag = tosDetails.currentVersion;
-  const contentType = tosDetails.contentType;
-  if (
-    content === undefined ||
-    currentEtag === undefined ||
-    contentType === undefined
-  ) {
-    throw Error("exchange is in invalid state");
-  }
-  if (
-    acceptedFormat &&
-    acceptedFormat.findIndex((f) => f === contentType) !== -1
-  ) {
-    return {
-      acceptedEtag: exchangeDetails.tosAccepted?.etag,
-      currentEtag,
-      content,
-      contentType,
-      tosStatus: getExchangeTosStatus(exchangeDetails),
-    };
-  }
 
   const tosDownload = await downloadTosFromAcceptedFormat(
     ws,
@@ -592,17 +563,15 @@ async function getExchangeTos(
     acceptedFormat,
   );
 
-  if (tosDownload.tosContentType === contentType) {
-    return {
-      acceptedEtag: exchangeDetails.tosAccepted?.etag,
-      currentEtag,
-      content,
-      contentType,
-      tosStatus: getExchangeTosStatus(exchangeDetails),
-    };
-  }
-
-  await updateExchangeTermsOfService(ws, exchangeBaseUrl, tosDownload);
+  await ws.db
+    .mktx((x) => [x.exchanges, x.exchangeDetails])
+    .runReadWrite(async (tx) => {
+      const d = await getExchangeDetails(tx, exchangeBaseUrl);
+      if (d) {
+        d.tosCurrentEtag = tosDownload.tosEtag;
+        await tx.exchangeDetails.put(d);
+      }
+    });
 
   return {
     acceptedEtag: exchangeDetails.tosAccepted?.etag,
@@ -683,32 +652,6 @@ async function forgetKnownBankAccounts(
   return;
 }
 
-async function getExchangeTosStatusDetails(
-  tx: GetReadOnlyAccess<{ exchangeTos: typeof WalletStoresV1.exchangeTos }>,
-  exchangeDetails: ExchangeDetailsRecord,
-): Promise<ExchangeTosStatusDetails> {
-  let exchangeTos = await tx.exchangeTos.get([
-    exchangeDetails.exchangeBaseUrl,
-    exchangeDetails.tosCurrentEtag,
-  ]);
-
-  if (!exchangeTos) {
-    exchangeTos = {
-      etag: "not-available",
-      termsOfServiceContentType: "text/plain",
-      termsOfServiceText: "terms of service unavailable",
-      exchangeBaseUrl: exchangeDetails.exchangeBaseUrl,
-    };
-  }
-
-  return {
-    acceptedVersion: exchangeDetails.tosAccepted?.etag,
-    content: exchangeTos.termsOfServiceText,
-    contentType: exchangeTos.termsOfServiceContentType,
-    currentVersion: exchangeTos.etag,
-  };
-}
-
 async function getExchanges(
   ws: InternalWalletState,
 ): Promise<ExchangesListResponse> {
@@ -717,7 +660,6 @@ async function getExchanges(
     .mktx((x) => [
       x.exchanges,
       x.exchangeDetails,
-      x.exchangeTos,
       x.denominations,
       x.operationRetries,
     ])
@@ -742,12 +684,7 @@ async function getExchangeDetailedInfo(
 ): Promise<ExchangeDetailedResponse> {
   //TODO: should we use the forceUpdate parameter?
   const exchange = await ws.db
-    .mktx((x) => [
-      x.exchanges,
-      x.exchangeTos,
-      x.exchangeDetails,
-      x.denominations,
-    ])
+    .mktx((x) => [x.exchanges, x.exchangeDetails, x.denominations])
     .runReadOnly(async (tx) => {
       const ex = await tx.exchanges.get(exchangeBaseurl);
       const dp = ex?.detailsPointer;
@@ -769,8 +706,6 @@ async function getExchangeDetailedInfo(
         return;
       }
 
-      const tos = await getExchangeTosStatusDetails(tx, exchangeDetails);
-
       const denominations: DenominationInfo[] = denominationRecords.map((x) =>
         DenominationRecord.toDenomInfo(x),
       );
@@ -779,7 +714,6 @@ async function getExchangeDetailedInfo(
         info: {
           exchangeBaseUrl: ex.baseUrl,
           currency,
-          tos,
           paytoUris: exchangeDetails.wireInfo.accounts.map((x) => x.payto_uri),
           auditors: exchangeDetails.auditors,
           wireInfo: exchangeDetails.wireInfo,
diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts 
b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
index 72cabe5a4..a3855c2f4 100644
--- a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
+++ b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts
@@ -23,7 +23,6 @@ import {
   ExchangeTosStatus,
   TalerError,
   parseWithdrawExchangeUri,
-  stringifyWithdrawUri,
 } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 import { useEffect, useState } from "preact/hooks";

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