summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-09-14 21:27:03 +0200
committerFlorian Dold <florian@dold.me>2022-09-14 21:27:03 +0200
commita66b636dee2ed531bb5119feced80d6569d99176 (patch)
treed19b83739531220051ab850bfe3dd9478f7fca6b /packages/taler-wallet-core/src/operations/pay.ts
parentc021876b41bff11ad28c3a43808795fa0d02ce99 (diff)
downloadwallet-core-a66b636dee2ed531bb5119feced80d6569d99176.tar.gz
wallet-core-a66b636dee2ed531bb5119feced80d6569d99176.tar.bz2
wallet-core-a66b636dee2ed531bb5119feced80d6569d99176.zip
wallet-core: restructure denomination record for easier querying
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts23
1 files changed, 15 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index bd7b1f7f0..5a0d3cee3 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -141,13 +141,20 @@ export async function getTotalPaymentCost(
const allDenoms = await tx.denominations.indexes.byExchangeBaseUrl
.iter(coin.exchangeBaseUrl)
.filter((x) =>
- Amounts.isSameCurrency(x.value, pcs.coinContributions[i]),
+ Amounts.isSameCurrency(
+ DenominationRecord.getValue(x),
+ pcs.coinContributions[i],
+ ),
);
const amountLeft = Amounts.sub(
- denom.value,
+ DenominationRecord.getValue(denom),
pcs.coinContributions[i],
).amount;
- const refreshCost = getTotalRefreshCost(allDenoms, denom, amountLeft);
+ const refreshCost = getTotalRefreshCost(
+ allDenoms,
+ DenominationRecord.toDenomInfo(denom),
+ amountLeft,
+ );
costs.push(pcs.coinContributions[i]);
costs.push(refreshCost);
}
@@ -303,7 +310,7 @@ export async function getCandidatePayCoins(
if (!denom) {
throw Error("db inconsistent");
}
- if (denom.value.currency !== currency) {
+ if (denom.currency !== currency) {
logger.warn(
`same pubkey for different currencies at exchange ${exchange.baseUrl}`,
);
@@ -314,10 +321,10 @@ export async function getCandidatePayCoins(
}
candidateCoins.push({
availableAmount: coin.currentAmount,
- value: denom.value,
+ value: DenominationRecord.getValue(denom),
coinPub: coin.coinPub,
denomPub: denom.denomPub,
- feeDeposit: denom.feeDeposit,
+ feeDeposit: denom.fees.feeDeposit,
exchangeBaseUrl: denom.exchangeBaseUrl,
ageCommitmentProof: coin.ageCommitmentProof,
});
@@ -949,7 +956,7 @@ async function handleInsufficientFunds(
coinPub,
contribution: contrib,
exchangeBaseUrl: coin.exchangeBaseUrl,
- feeDeposit: denom.feeDeposit,
+ feeDeposit: denom.fees.feeDeposit,
});
}
});
@@ -1269,7 +1276,7 @@ export async function generateDepositPermissions(
denomKeyType: denom.denomPub.cipher,
denomSig: coin.denomSig,
exchangeBaseUrl: coin.exchangeBaseUrl,
- feeDeposit: denom.feeDeposit,
+ feeDeposit: denom.fees.feeDeposit,
merchantPub: contractData.merchantPub,
refundDeadline: contractData.refundDeadline,
spendAmount: payCoinSel.coinContributions[i],