diff options
author | Florian Dold <florian.dold@gmail.com> | 2020-07-16 15:13:52 +0530 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2020-07-16 15:13:52 +0530 |
commit | bcd9e2e5ff7f14308c5298a257388afc398dc674 (patch) | |
tree | bdd0886ec3503d82d74075497ffb832fa23b5a4b /src | |
parent | 75c5c59316a428fbebe2448d9d79a70689565657 (diff) | |
download | wallet-core-bcd9e2e5ff7f14308c5298a257388afc398dc674.tar.xz |
fix totally broken withdrawal coin selection
Diffstat (limited to 'src')
-rw-r--r-- | src/operations/withdraw.ts | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/operations/withdraw.ts b/src/operations/withdraw.ts index fd850f140..41b77da8f 100644 --- a/src/operations/withdraw.ts +++ b/src/operations/withdraw.ts @@ -162,6 +162,9 @@ export async function getBankWithdrawalInfo( }; } +/** + * Return denominations that can potentially used for a withdrawal. + */ async function getPossibleDenoms( ws: InternalWalletState, exchangeBaseUrl: string, @@ -458,24 +461,17 @@ export async function selectWithdrawalDenoms( throw Error(`exchange ${exchangeBaseUrl} details not available`); } - console.log("getting possible denoms"); - - const possibleDenoms = await getPossibleDenoms(ws, exchange.baseUrl); - - console.log("got possible denoms"); - let allValid = false; - let selectedDenoms: DenominationSelectionInfo; + // Find a denomination selection for the requested amount. + // If a selected denomination has not been validated yet + // and turns our to be invalid, we try again with the + // reduced set of denominations. do { allValid = true; - const nextPossibleDenoms = []; - selectedDenoms = getWithdrawDenomList(amount, possibleDenoms); - console.log("got withdraw denom list"); - if (!selectedDenoms) { - console; - } + const nextPossibleDenoms = await getPossibleDenoms(ws, exchange.baseUrl); + selectedDenoms = getWithdrawDenomList(amount, nextPossibleDenoms); for (const denomSel of selectedDenoms.selectedDenoms) { const denom = denomSel.denom; if (denom.status === DenominationStatus.Unverified) { @@ -488,17 +484,12 @@ export async function selectWithdrawalDenoms( allValid = false; } else { denom.status = DenominationStatus.VerifiedGood; - nextPossibleDenoms.push(denom); } await ws.db.put(Stores.denominations, denom); - } else { - nextPossibleDenoms.push(denom); } } } while (selectedDenoms.selectedDenoms.length > 0 && !allValid); - console.log("returning denoms"); - return selectedDenoms; } |