summaryrefslogtreecommitdiff
path: root/src/operations/refund.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-05-15 22:54:39 +0530
committerFlorian Dold <florian.dold@gmail.com>2020-05-15 22:54:39 +0530
commit49f362ba6d3f3b99be1dba9ba1fe50fe49856d75 (patch)
treef5bf4ba0e7a9c6a60fae8f86ff41c133ec223134 /src/operations/refund.ts
parent59178331a46467e0eb6f4dc0331f8d52d9afcb3c (diff)
downloadwallet-core-49f362ba6d3f3b99be1dba9ba1fe50fe49856d75.tar.gz
wallet-core-49f362ba6d3f3b99be1dba9ba1fe50fe49856d75.tar.bz2
wallet-core-49f362ba6d3f3b99be1dba9ba1fe50fe49856d75.zip
fix some transaction list issues
Diffstat (limited to 'src/operations/refund.ts')
-rw-r--r--src/operations/refund.ts13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/operations/refund.ts b/src/operations/refund.ts
index b5d611b07..5f6ccf9d4 100644
--- a/src/operations/refund.ts
+++ b/src/operations/refund.ts
@@ -125,7 +125,7 @@ export async function getFullRefundFees(
}
function getRefundKey(d: MerchantRefundDetails): string {
- return `{d.coin_pub}-{d.rtransaction_id}`;
+ return `${d.coin_pub}-${d.rtransaction_id}`;
}
async function acceptRefundResponse(
@@ -144,9 +144,14 @@ async function acceptRefundResponse(
const unfinishedRefunds: MerchantRefundDetails[] = [];
const failedRefunds: MerchantRefundDetails[] = [];
+ console.log("handling refund response", refundResponse);
+
const refundsRefreshCost: { [refundKey: string]: AmountJson } = {};
for (const rd of refunds) {
+ logger.trace(
+ `Refund ${rd.rtransaction_id} has HTTP status ${rd.exchange_http_status}`,
+ );
if (rd.exchange_http_status === 200) {
// FIXME: also verify signature if necessary.
finishedRefunds.push(rd);
@@ -160,6 +165,8 @@ async function acceptRefundResponse(
}
}
+ // Compute cost.
+ // FIXME: Optimize, don't always recompute.
for (const rd of [...finishedRefunds, ...unfinishedRefunds]) {
const key = getRefundKey(rd);
const coin = await ws.db.get(Stores.coins, rd.coin_pub);
@@ -280,6 +287,8 @@ async function acceptRefundResponse(
// after a retry delay?
let queryDone = true;
+ logger.trace(`got ${numNewRefunds} new refund permissions`);
+
if (numNewRefunds === 0) {
if (p.autoRefundDeadline && p.autoRefundDeadline.t_ms > now.t_ms) {
queryDone = false;
@@ -311,7 +320,7 @@ async function acceptRefundResponse(
console.log("refund query not done");
}
- p.refundsRefreshCost = {...p.refundsRefreshCost, ...refundsRefreshCost };
+ p.refundsRefreshCost = { ...p.refundsRefreshCost, ...refundsRefreshCost };
await tx.put(Stores.purchases, p);