check mining fee

This commit is contained in:
poma 2020-10-06 11:51:41 +03:00
parent 97e7a4376c
commit ae3044b6e9
No known key found for this signature in database
GPG Key ID: BA20CB01FE165657
2 changed files with 21 additions and 1 deletions

@ -157,6 +157,7 @@ let config = {
tornadoServiceFee: Number(process.env.REGULAR_TORNADO_WITHDRAW_FEE),
miningServiceFee: Number(process.env.MINING_SERVICE_FEE),
rewardAccount: '0x03Ebd0748Aa4D1457cF479cce56309641e0a98F5',
tornEthPrice: '7000000000000000',
gasLimits: {
[jobType.TORNADO_WITHDRAW]: 350000,
[jobType.MINING_REWARD]: 800000,

@ -23,6 +23,7 @@ const {
instances,
tornadoServiceFee,
miningServiceFee,
tornEthPrice,
} = require('../config')
const { TxManager } = require('tx-manager')
const { Controller } = require('tornado-cash-anonymity-mining')
@ -135,8 +136,26 @@ async function checkMiningFee({ args }) {
const swap = new web3.eth.Contract(swapABI, swapAddress)
const TornAmount = await swap.methods.getExpectedReturn(args.fee).call()
console.log('TornAmount', TornAmount)
const { fast } = await gasPriceOracle.gasPrices()
// todo: use desired torn/eth rate and compute the same way as in tornado
const expense = toBN(toWei(fast.toString(), 'gwei')).mul(toBN(gasLimits[args.type]))
const feePercent =
args.type === jobType.MINING_REWARD
? 0
: toBN(args.amount)
.mul(toBN(miningServiceFee * 1e10))
.div(toBN(1e10 * 100))
let desiredFee = expense.mul(toBN(1e18)).div(toBN(tornEthPrice)).add(feePercent)
console.log(
'sent fee, desired fee, feePercent',
fromWei(args.fee.toString()),
fromWei(desiredFee.toString()),
fromWei(feePercent.toString()),
)
if (args.fee.lt(desiredFee)) {
throw new Error('Provided fee is not enough. Probably it is a Gas Price spike, try to resubmit.')
}
}
function getTxObject({ data }) {