aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-12-16 22:42:10 +0100
committerFlorian Dold <florian.dold@gmail.com>2019-12-16 22:42:10 +0100
commit6a9318c2989f170fef2058c0ed156aab490e3fd9 (patch)
treea1b73b19119c8f73c350958f10cae60bf20d76a8
parentfb6508de9d71600dbca59cb0e6a4c77e4f3f3ee5 (diff)
downloadwallet-core-6a9318c2989f170fef2058c0ed156aab490e3fd9.tar.xz
cleanup / history
-rw-r--r--src/operations/pay.ts21
-rw-r--r--src/types/history.ts11
-rw-r--r--src/wallet.ts5
3 files changed, 21 insertions, 16 deletions
diff --git a/src/operations/pay.ts b/src/operations/pay.ts
index b0f1d4b62..adbf6bb87 100644
--- a/src/operations/pay.ts
+++ b/src/operations/pay.ts
@@ -592,6 +592,11 @@ async function processDownloadProposalImpl(
if (p.proposalStatus !== ProposalStatus.DOWNLOADING) {
return;
}
+ p.download = {
+ contractTerms: proposalResp.contract_terms,
+ merchantSig: proposalResp.sig,
+ contractTermsHash,
+ };
if (
fulfillmentUrl.startsWith("http://") ||
fulfillmentUrl.startsWith("https://")
@@ -608,11 +613,6 @@ async function processDownloadProposalImpl(
return;
}
}
- p.download = {
- contractTerms: proposalResp.contract_terms,
- merchantSig: proposalResp.sig,
- contractTermsHash,
- };
p.proposalStatus = ProposalStatus.PROPOSED;
await tx.put(Stores.proposals, p);
},
@@ -864,7 +864,16 @@ export async function preparePay(
};
}
- if (uriResult.sessionId) {
+ if (uriResult.sessionId && purchase.lastSessionId !== uriResult.sessionId) {
+ console.log("automatically re-submitting payment with different session ID")
+ await ws.db.runWithWriteTransaction([Stores.purchases], async (tx) => {
+ const p = await tx.get(Stores.purchases, proposalId);
+ if (!p) {
+ return;
+ }
+ p.lastSessionId = uriResult.sessionId;
+ await tx.put(Stores.purchases, p);
+ });
await submitPay(ws, proposalId);
}
diff --git a/src/types/history.ts b/src/types/history.ts
index aa35ab962..c49afd476 100644
--- a/src/types/history.ts
+++ b/src/types/history.ts
@@ -1,10 +1,6 @@
-import { Timestamp, RefreshReason } from "./walletTypes";
-import { ReserveTransaction } from "./ReserveTransaction";
-import { WithdrawalSource } from "./dbTypes";
-
/*
This file is part of GNU Taler
- (C) 2019 GNUnet e.V.
+ (C) 2019 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
@@ -22,6 +18,11 @@ import { WithdrawalSource } from "./dbTypes";
* Type and schema definitions for the wallet's history.
*/
+import { Timestamp, RefreshReason } from "./walletTypes";
+import { ReserveTransaction } from "./ReserveTransaction";
+import { WithdrawalSource } from "./dbTypes";
+
+
/**
* Type tags for the history event types.
*/
diff --git a/src/wallet.ts b/src/wallet.ts
index 1ea8c2fd2..407318aa2 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -519,11 +519,6 @@ export class Wallet {
return denoms;
}
- async getProposal(proposalId: string): Promise<ProposalRecord | undefined> {
- const proposal = await this.db.get(Stores.proposals, proposalId);
- return proposal;
- }
-
async getExchanges(): Promise<ExchangeRecord[]> {
return await this.db.iter(Stores.exchanges).toArray();
}