[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: workaround: Failed transactio
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: workaround: Failed transaction was started here |
Date: |
Fri, 21 Oct 2022 14:27:04 +0200 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new 683c89ab7 workaround: Failed transaction was started here
683c89ab7 is described below
commit 683c89ab71a71fbd26bda58457ba5792e79d577f
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Fri Oct 21 09:26:53 2022 -0300
workaround: Failed transaction was started here
---
.../src/operations/transactions.ts | 52 +++++++++++++++++++---
1 file changed, 46 insertions(+), 6 deletions(-)
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts
b/packages/taler-wallet-core/src/operations/transactions.ts
index 6e8ebc4f4..fea165588 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -188,7 +188,12 @@ export async function getTransactionById(
} else if (type === TransactionType.Payment) {
const proposalId = rest[0];
return await ws.db
- .mktx((x) => [x.purchases, x.tombstones, x.operationRetries])
+ .mktx((x) => [
+ x.purchases,
+ x.tombstones,
+ x.operationRetries,
+ x.contractTerms,
+ ])
.runReadWrite(async (tx) => {
const purchase = await tx.purchases.get(proposalId);
if (!purchase) throw Error("not found");
@@ -207,13 +212,28 @@ export async function getTransactionById(
}),
);
- const download = await expectProposalDownload(ws, purchase);
+ // const download = await expectProposalDownload(ws, purchase);
+ // FIXME: this is what expectProposalDownload, but nested tx is not
supported
+ if (!purchase.download) {
+ throw Error("expected proposal to be downloaded");
+ }
+ const contractTerms = await tx.contractTerms.get(
+ purchase.download.contractTermsHash,
+ );
+ if (!contractTerms) {
+ throw Error("contract terms not found");
+ }
+ const contractData = extractContractData(
+ contractTerms.contractTermsRaw,
+ purchase.download.contractTermsHash,
+ purchase.download.contractTermsMerchantSig,
+ );
const cleanRefunds = filteredRefunds.filter(
(x): x is WalletRefundItem => !!x,
);
- const contractData = download.contractData;
+ // const contractData = download.contractData;
const refunds = mergeRefundByExecutionTime(
cleanRefunds,
Amounts.getZero(contractData.amount.currency),
@@ -263,7 +283,12 @@ export async function getTransactionById(
const executionTimeStr = rest[1];
return await ws.db
- .mktx((x) => [x.operationRetries, x.purchases, x.tombstones])
+ .mktx((x) => [
+ x.operationRetries,
+ x.purchases,
+ x.tombstones,
+ x.contractTerms,
+ ])
.runReadWrite(async (tx) => {
const purchase = await tx.purchases.get(proposalId);
if (!purchase) throw Error("not found");
@@ -281,8 +306,23 @@ export async function getTransactionById(
),
);
if (t) throw Error("deleted");
- const download = await expectProposalDownload(ws, purchase);
- const contractData = download.contractData;
+ // const download = await expectProposalDownload(ws, purchase);
+ // const contractData = download.contractData;
+ // FIXME: this is what expectProposalDownload, but nested tx is not
supported
+ if (!purchase.download) {
+ throw Error("expected proposal to be downloaded");
+ }
+ const contractTerms = await tx.contractTerms.get(
+ purchase.download.contractTermsHash,
+ );
+ if (!contractTerms) {
+ throw Error("contract terms not found");
+ }
+ const contractData = extractContractData(
+ contractTerms.contractTermsRaw,
+ purchase.download.contractTermsHash,
+ purchase.download.contractTermsMerchantSig,
+ );
const refunds = mergeRefundByExecutionTime(
[theRefund],
Amounts.getZero(contractData.amount.currency),
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: workaround: Failed transaction was started here,
gnunet <=