gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (614a3e3c -> 4409d838)


From: gnunet
Subject: [taler-wallet-core] branch master updated (614a3e3c -> 4409d838)
Date: Mon, 08 Aug 2022 18:53:12 +0200

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

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

    from 614a3e3c standarizing components
     new 88bdcae0 add request for getting details about contract terms
     new 4409d838 add delivery info in the parse contract terms and a function 
to get info from a proposalId

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:
 packages/taler-util/src/transactionsTypes.ts       |  5 +++++
 packages/taler-util/src/walletTypes.ts             |  9 +++++++++
 packages/taler-wallet-core/src/db.ts               |  3 +++
 .../src/operations/backup/import.ts                |  4 ++++
 packages/taler-wallet-core/src/operations/pay.ts   | 23 ++++++++++++++++++++++
 .../src/operations/transactions.ts                 |  3 +++
 packages/taler-wallet-core/src/wallet.ts           |  6 ++++++
 7 files changed, 53 insertions(+)

diff --git a/packages/taler-util/src/transactionsTypes.ts 
b/packages/taler-util/src/transactionsTypes.ts
index f7383f90..645f0120 100644
--- a/packages/taler-util/src/transactionsTypes.ts
+++ b/packages/taler-util/src/transactionsTypes.ts
@@ -344,6 +344,11 @@ export interface TransactionTip extends TransactionCommon {
   // Raw amount of the tip, without extra fees that apply
   amountRaw: AmountString;
 
+  /**
+   * More information about the merchant
+   */
+  // merchant: MerchantInfo;
+
   // Amount will be (or was) added to the wallet's balance after fees and 
refreshing
   amountEffective: AmountString;
 
diff --git a/packages/taler-util/src/walletTypes.ts 
b/packages/taler-util/src/walletTypes.ts
index 245b5654..9f7ba417 100644
--- a/packages/taler-util/src/walletTypes.ts
+++ b/packages/taler-util/src/walletTypes.ts
@@ -854,6 +854,15 @@ export const codecForAbortProposalRequest = (): 
Codec<AbortProposalRequest> =>
     .property("proposalId", codecForString())
     .build("AbortProposalRequest");
 
+interface GetContractTermsDetailsRequest {
+  proposalId: string;
+}
+
+export const codecForGetContractTermsDetails = (): 
Codec<GetContractTermsDetailsRequest> =>
+  buildCodecForObject<GetContractTermsDetailsRequest>()
+    .property("proposalId", codecForString())
+    .build("GetContractTermsDetails");
+
 export interface PreparePayRequest {
   talerPayUri: string;
 }
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index e4f4ba25..f763aae6 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -43,6 +43,7 @@ import {
   AgeCommitmentProof,
   PayCoinSelection,
   PeerContractTerms,
+  Location,
 } from "@gnu-taler/taler-util";
 import { RetryInfo } from "./util/retries.js";
 import { Event, IDBDatabase } from "@gnu-taler/idb-bridge";
@@ -1170,6 +1171,8 @@ export interface WalletContractData {
   wireInfoHash: string;
   maxDepositFee: AmountJson;
   minimumAge?: number;
+  deliveryDate: TalerProtocolTimestamp | undefined;
+  deliveryLocation: Location | undefined;
 }
 
 export enum AbortStatus {
diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts 
b/packages/taler-wallet-core/src/operations/backup/import.ts
index e4eaf891..e099fae5 100644
--- a/packages/taler-wallet-core/src/operations/backup/import.ts
+++ b/packages/taler-wallet-core/src/operations/backup/import.ts
@@ -600,6 +600,8 @@ export async function importBackup(
                 merchant: parsedContractTerms.merchant,
                 products: parsedContractTerms.products,
                 summaryI18n: parsedContractTerms.summary_i18n,
+                deliveryDate: parsedContractTerms.delivery_date,
+                deliveryLocation: parsedContractTerms.delivery_location,
               },
               contractTermsRaw: backupProposal.contract_terms_raw,
             };
@@ -740,6 +742,8 @@ export async function importBackup(
               merchant: parsedContractTerms.merchant,
               products: parsedContractTerms.products,
               summaryI18n: parsedContractTerms.summary_i18n,
+              deliveryDate: parsedContractTerms.delivery_date,
+              deliveryLocation: parsedContractTerms.delivery_location,
             },
             contractTermsRaw: backupPurchase.contract_terms_raw,
           };
diff --git a/packages/taler-wallet-core/src/operations/pay.ts 
b/packages/taler-wallet-core/src/operations/pay.ts
index 55b8f513..d41a20e7 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -662,6 +662,8 @@ export function extractContractData(
     products: parsedContractTerms.products,
     summaryI18n: parsedContractTerms.summary_i18n,
     minimumAge: parsedContractTerms.minimum_age,
+    deliveryDate: parsedContractTerms.delivery_date,
+    deliveryLocation: parsedContractTerms.delivery_location,
   };
 }
 
@@ -1318,6 +1320,27 @@ export async function checkPaymentByProposalId(
   }
 }
 
+export async function getContractTermsDetails(
+  ws: InternalWalletState,
+  proposalId: string,
+): Promise<WalletContractData> {
+  const proposal = await ws.db
+    .mktx((x) => ({ proposals: x.proposals }))
+    .runReadOnly(async (tx) => {
+      return tx.proposals.get(proposalId);
+    });
+
+  if (!proposal) {
+    throw Error(`proposal with id ${proposalId} not found`);
+  }
+
+  if (!proposal.download || !proposal.download.contractData) {
+    throw Error("proposal is in invalid state");
+  }
+
+  return proposal.download.contractData
+}
+
 /**
  * Check if a payment for the given taler://pay/ URI is possible.
  *
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts 
b/packages/taler-wallet-core/src/operations/transactions.ts
index 1ac2bd04..ebc223b2 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -448,6 +448,9 @@ export async function getTransactions(
               tipRecord.walletTipId,
             ),
             merchantBaseUrl: tipRecord.merchantBaseUrl,
+            // merchant: {
+            //   name: tipRecord.merchantBaseUrl,
+            // },
             error: tipRecord.lastError,
           });
         });
diff --git a/packages/taler-wallet-core/src/wallet.ts 
b/packages/taler-wallet-core/src/wallet.ts
index b56e9402..066f91a3 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -43,6 +43,7 @@ import {
   codecForCreateDepositGroupRequest,
   codecForDeleteTransactionRequest,
   codecForForceRefreshRequest,
+  codecForGetContractTermsDetails,
   codecForGetExchangeTosRequest,
   codecForGetExchangeWithdrawalInfo,
   codecForGetFeeForDeposit,
@@ -142,6 +143,7 @@ import {
 import { getMerchantInfo } from "./operations/merchants.js";
 import {
   confirmPay,
+  getContractTermsDetails,
   preparePayForUri,
   processDownloadProposal,
   processPurchasePay,
@@ -868,6 +870,10 @@ async function dispatchRequestInternal(
       const req = codecForGetExchangeTosRequest().decode(payload);
       return getExchangeTos(ws, req.exchangeBaseUrl, req.acceptedFormat);
     }
+    case "getContractTermsDetails": {
+      const req = codecForGetContractTermsDetails().decode(payload);
+      return getContractTermsDetails(ws, req.proposalId);
+    }
     case "retryPendingNow": {
       await runPending(ws, true);
       return {};

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