fix cost computation, formatting

This commit is contained in:
Florian Dold 2020-05-13 01:20:40 +05:30
parent 3007419c98
commit 6e17a60692
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B

View File

@ -105,7 +105,10 @@ export function getWithdrawDenomList(
totalCoinValue, totalCoinValue,
Amounts.mult(d.value, count).amount, Amounts.mult(d.value, count).amount,
).amount; ).amount;
totalWithdrawCost = Amounts.add(totalWithdrawCost, cost).amount; totalWithdrawCost = Amounts.add(
totalWithdrawCost,
Amounts.mult(cost, count).amount,
).amount;
selectedDenoms.push({ selectedDenoms.push({
count, count,
denom: d, denom: d,
@ -195,7 +198,11 @@ async function processPlanchet(
if (!planchet) { if (!planchet) {
let ci = 0; let ci = 0;
let denomPubHash: string | undefined; let denomPubHash: string | undefined;
for (let di = 0; di < withdrawalGroup.denomsSel.selectedDenoms.length; di++) { for (
let di = 0;
di < withdrawalGroup.denomsSel.selectedDenoms.length;
di++
) {
const d = withdrawalGroup.denomsSel.selectedDenoms[di]; const d = withdrawalGroup.denomsSel.selectedDenoms[di];
if (coinIdx >= ci && coinIdx < ci + d.count) { if (coinIdx >= ci && coinIdx < ci + d.count) {
denomPubHash = d.denomPubHash; denomPubHash = d.denomPubHash;
@ -206,14 +213,20 @@ async function processPlanchet(
if (!denomPubHash) { if (!denomPubHash) {
throw Error("invariant violated"); throw Error("invariant violated");
} }
const denom = await ws.db.getIndexed(Stores.denominations.denomPubHashIndex, denomPubHash); const denom = await ws.db.getIndexed(
Stores.denominations.denomPubHashIndex,
denomPubHash,
);
if (!denom) { if (!denom) {
throw Error("invariant violated"); throw Error("invariant violated");
} }
if (withdrawalGroup.source.type != WithdrawalSourceType.Reserve) { if (withdrawalGroup.source.type != WithdrawalSourceType.Reserve) {
throw Error("invariant violated"); throw Error("invariant violated");
} }
const reserve = await ws.db.get(Stores.reserves, withdrawalGroup.source.reservePub); const reserve = await ws.db.get(
Stores.reserves,
withdrawalGroup.source.reservePub,
);
if (!reserve) { if (!reserve) {
throw Error("invariant violated"); throw Error("invariant violated");
} }
@ -279,7 +292,9 @@ async function processPlanchet(
return; return;
} }
logger.trace(`processing planchet #${coinIdx} in withdrawal ${withdrawalGroupId}`); logger.trace(
`processing planchet #${coinIdx} in withdrawal ${withdrawalGroupId}`,
);
const wd: any = {}; const wd: any = {};
wd.denom_pub_hash = planchet.denomPubHash; wd.denom_pub_hash = planchet.denomPubHash;
@ -362,14 +377,18 @@ async function processPlanchet(
let numDone = 0; let numDone = 0;
await tx.iterIndexed(Stores.planchets.byGroup, withdrawalGroupId).forEach((x) => { await tx
if (x.withdrawalDone) { .iterIndexed(Stores.planchets.byGroup, withdrawalGroupId)
numDone++; .forEach((x) => {
} if (x.withdrawalDone) {
}); numDone++;
}
});
if (numDone > numTotal) { if (numDone > numTotal) {
throw Error("invariant violated (created more planchets than expected)"); throw Error(
"invariant violated (created more planchets than expected)",
);
} }
if (numDone == numTotal) { if (numDone == numTotal) {
@ -513,7 +532,10 @@ async function resetWithdrawalGroupRetry(
}); });
} }
async function processInBatches(workGen: Iterator<Promise<void>>, batchSize: number): Promise<void> { async function processInBatches(
workGen: Iterator<Promise<void>>,
batchSize: number,
): Promise<void> {
for (;;) { for (;;) {
const batch: Promise<void>[] = []; const batch: Promise<void>[] = [];
for (let i = 0; i < batchSize; i++) { for (let i = 0; i < batchSize; i++) {
@ -550,7 +572,7 @@ async function processWithdrawGroupImpl(
} }
const numDenoms = withdrawalGroup.denomsSel.selectedDenoms.length; const numDenoms = withdrawalGroup.denomsSel.selectedDenoms.length;
const genWork = function*(): Iterator<Promise<void>> { const genWork = function* (): Iterator<Promise<void>> {
let coinIdx = 0; let coinIdx = 0;
for (let i = 0; i < numDenoms; i++) { for (let i = 0; i < numDenoms; i++) {
const count = withdrawalGroup.denomsSel.selectedDenoms[i].count; const count = withdrawalGroup.denomsSel.selectedDenoms[i].count;
@ -559,7 +581,7 @@ async function processWithdrawGroupImpl(
coinIdx++; coinIdx++;
} }
} }
} };
// Withdraw coins in batches. // Withdraw coins in batches.
// The batch size is relatively large // The batch size is relatively large