diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-12-16 22:42:10 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-12-16 22:42:10 +0100 |
commit | 6a9318c2989f170fef2058c0ed156aab490e3fd9 (patch) | |
tree | a1b73b19119c8f73c350958f10cae60bf20d76a8 /src | |
parent | fb6508de9d71600dbca59cb0e6a4c77e4f3f3ee5 (diff) |
cleanup / history
Diffstat (limited to 'src')
-rw-r--r-- | src/operations/pay.ts | 21 | ||||
-rw-r--r-- | src/types/history.ts | 11 | ||||
-rw-r--r-- | src/wallet.ts | 5 |
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(); } |