From b15b3685517bb1b3628a3bf94ce0c9e43a179575 Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 15 Oct 2020 20:20:00 +0300 Subject: [PATCH] fee calculation fix --- src/worker.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/worker.js b/src/worker.js index ba06033..81c3c58 100644 --- a/src/worker.js +++ b/src/worker.js @@ -138,6 +138,8 @@ async function checkTornadoFee({ args, contract }) { async function checkMiningFee({ args }) { const { fast } = await gasPriceOracle.gasPrices() const ethPrice = await redis.hget('prices', 'torn') + const isMiningReward = currentJob.data.type === jobType.MINING_REWARD + const providedFee = isMiningReward ? toBN(args.fee) : toBN(args.extData.fee) const expense = toBN(toWei(fast.toString(), 'gwei')).mul(toBN(gasLimits[currentJob.data.type])) const expenseInTorn = expense.mul(toBN(1e18)).div(toBN(ethPrice)) @@ -146,18 +148,17 @@ async function checkMiningFee({ args }) { const poolWeight = await swap.methods.poolWeight().call() const expenseInPoints = Utils.reverseTornadoFormula({ balance, tokens: expenseInTorn, poolWeight }) /* eslint-disable */ - const serviceFeePercent = - currentJob.data.type === jobType.MINING_REWARD - ? toBN(0) - : toBN(args.amount) - .mul(toBN(miningServiceFee * 1e10)) - .div(toBN(1e10 * 100)) + const serviceFeePercent = isMiningReward + ? toBN(0) + : toBN(args.amount) + .sub(providedFee) // args.amount includes fee + .mul(toBN(miningServiceFee * 1e10)) + .div(toBN(1e10 * 100)) /* eslint-enable */ const desiredFee = expenseInPoints.add(serviceFeePercent) // in points - const providedFee = currentJob.data.type === jobType.MINING_REWARD ? args.fee : args.extData.fee console.log( - 'sent fee, desired fee, serviceFeePercent', - toBN(providedFee).toString(), + 'user provided fee, desired fee, serviceFeePercent', + providedFee.toString(), desiredFee.toString(), serviceFeePercent.toString(), )