diff options
author | Florian Dold <florian@dold.me> | 2022-09-16 16:20:47 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-09-16 16:32:21 +0200 |
commit | b91caf977fad8da11e523ca3a39064dd86e04c64 (patch) | |
tree | 732e1543d2555094d7f9a9ca242309847c1a33a3 /packages/taler-wallet-core/src/operations/deposits.ts | |
parent | 2747bc260bc05418974570d04d7f999dfc988cda (diff) | |
download | wallet-core-b91caf977fad8da11e523ca3a39064dd86e04c64.tar.xz |
wallet-core: support age restrictions in new coin selection
Diffstat (limited to 'packages/taler-wallet-core/src/operations/deposits.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/deposits.ts | 60 |
1 files changed, 15 insertions, 45 deletions
diff --git a/packages/taler-wallet-core/src/operations/deposits.ts b/packages/taler-wallet-core/src/operations/deposits.ts index 9747f21a3..22ec5f0a5 100644 --- a/packages/taler-wallet-core/src/operations/deposits.ts +++ b/packages/taler-wallet-core/src/operations/deposits.ts @@ -51,16 +51,14 @@ import { OperationStatus, } from "../db.js"; import { InternalWalletState } from "../internal-wallet-state.js"; -import { selectPayCoinsLegacy } from "../util/coinSelection.js"; import { readSuccessResponseJsonOrThrow } from "../util/http.js"; import { spendCoins } from "../wallet.js"; import { getExchangeDetails } from "./exchanges.js"; import { - CoinSelectionRequest, extractContractData, generateDepositPermissions, - getCandidatePayCoins, getTotalPaymentCost, + selectPayCoinsNew, } from "./pay.js"; import { getTotalRefreshCost } from "./refresh.js"; import { makeEventId } from "./transactions.js"; @@ -255,28 +253,17 @@ export async function getFeeForDeposit( } }); - const csr: CoinSelectionRequest = { - allowedAuditors: [], - allowedExchanges: Object.values(exchangeInfos).map((v) => ({ + const payCoinSel = await selectPayCoinsNew(ws, { + auditors: [], + exchanges: Object.values(exchangeInfos).map((v) => ({ exchangeBaseUrl: v.url, exchangePub: v.master_pub, })), - amount: Amounts.parseOrThrow(req.amount), - maxDepositFee: Amounts.parseOrThrow(req.amount), - maxWireFee: Amounts.parseOrThrow(req.amount), - timestamp: TalerProtocolTimestamp.now(), - wireFeeAmortization: 1, wireMethod: p.targetType, - }; - - const candidates = await getCandidatePayCoins(ws, csr); - - const payCoinSel = selectPayCoinsLegacy({ - candidates, - contractTermsAmount: csr.amount, - depositFeeLimit: csr.maxDepositFee, - wireFeeAmortization: csr.wireFeeAmortization, - wireFeeLimit: csr.maxWireFee, + contractTermsAmount: Amounts.parseOrThrow(req.amount), + depositFeeLimit: Amounts.parseOrThrow(req.amount), + wireFeeAmortization: 1, + wireFeeLimit: Amounts.parseOrThrow(req.amount), prevPayCoins: [], }); @@ -356,19 +343,10 @@ export async function prepareDepositGroup( "", ); - const candidates = await getCandidatePayCoins(ws, { - allowedAuditors: contractData.allowedAuditors, - allowedExchanges: contractData.allowedExchanges, - amount: contractData.amount, - maxDepositFee: contractData.maxDepositFee, - maxWireFee: contractData.maxWireFee, - timestamp: contractData.timestamp, - wireFeeAmortization: contractData.wireFeeAmortization, + const payCoinSel = await selectPayCoinsNew(ws, { + auditors: contractData.allowedAuditors, + exchanges: contractData.allowedExchanges, wireMethod: contractData.wireMethod, - }); - - const payCoinSel = selectPayCoinsLegacy({ - candidates, contractTermsAmount: contractData.amount, depositFeeLimit: contractData.maxDepositFee, wireFeeAmortization: contractData.wireFeeAmortization ?? 1, @@ -459,19 +437,10 @@ export async function createDepositGroup( "", ); - const candidates = await getCandidatePayCoins(ws, { - allowedAuditors: contractData.allowedAuditors, - allowedExchanges: contractData.allowedExchanges, - amount: contractData.amount, - maxDepositFee: contractData.maxDepositFee, - maxWireFee: contractData.maxWireFee, - timestamp: contractData.timestamp, - wireFeeAmortization: contractData.wireFeeAmortization, + const payCoinSel = await selectPayCoinsNew(ws, { + auditors: contractData.allowedAuditors, + exchanges: contractData.allowedExchanges, wireMethod: contractData.wireMethod, - }); - - const payCoinSel = selectPayCoinsLegacy({ - candidates, contractTermsAmount: contractData.amount, depositFeeLimit: contractData.maxDepositFee, wireFeeAmortization: contractData.wireFeeAmortization ?? 1, @@ -522,6 +491,7 @@ export async function createDepositGroup( x.recoupGroups, x.denominations, x.refreshGroups, + x.coinAvailability, ]) .runReadWrite(async (tx) => { await spendCoins(ws, tx, { |