diff options
author | Florian Dold <florian@dold.me> | 2022-09-14 21:27:03 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-09-14 21:27:03 +0200 |
commit | a66b636dee2ed531bb5119feced80d6569d99176 (patch) | |
tree | d19b83739531220051ab850bfe3dd9478f7fca6b /packages/taler-wallet-core/src/operations/pay.ts | |
parent | c021876b41bff11ad28c3a43808795fa0d02ce99 (diff) | |
download | wallet-core-a66b636dee2ed531bb5119feced80d6569d99176.tar.xz |
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.ts | 23 |
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], |