use tornado proxy, fix docker

This commit is contained in:
poma 2020-11-04 19:01:51 +03:00
parent 6e9e08fb6b
commit d22837d2bf
No known key found for this signature in database
GPG key ID: BA20CB01FE165657
7 changed files with 307 additions and 126 deletions

View file

@ -10,6 +10,7 @@ module.exports = {
oracleRpcUrl: process.env.ORACLE_RPC_URL || 'https://mainnet.infura.io/',
oracleAddress: '0xA2b8E7ee7c8a18ea561A5CF7C9C365592026E374',
minerAddress: '0x3E0a9C6Cf76136862De28ce25a56cDBF38EF9D37', // each network has its own instance
tornadoProxyAddress: '0x98529F6FaE5AdaFfa0AaDA37d9017AF9a4281E13', // each network has its own instance
swapAddress: '0x1E73e0a484a595B692f3d212642AE4B3BF30E7e3',
minerMerkleTreeHeight: 20,
privateKey: process.env.PRIVATE_KEY,

View file

@ -6,7 +6,7 @@ const Redis = require('ioredis')
const { GasPriceOracle } = require('gas-price-oracle')
const { Utils } = require('tornado-cash-anonymity-mining')
const tornadoABI = require('../abis/tornadoABI.json')
const tornadoProxyABI = require('../abis/tornadoProxyABI.json')
const miningABI = require('../abis/mining.abi.json')
const swapABI = require('../abis/swap.abi.json')
const { queue } = require('./queue')
@ -19,6 +19,7 @@ const {
privateKey,
swapAddress,
minerAddress,
tornadoProxyAddress,
gasLimits,
instances,
tornadoServiceFee,
@ -168,19 +169,22 @@ async function checkMiningFee({ args }) {
}
function getTxObject({ data }) {
let [ABI, contractAddress, value, args] =
data.type === jobType.TORNADO_WITHDRAW
? [tornadoABI, data.contract, data.args[5], data.args]
: [miningABI, minerAddress, 0, [data.args]]
const method = data.type !== jobType.MINING_REWARD ? 'withdraw' : 'reward'
const contract = new web3.eth.Contract(ABI, contractAddress)
const calldata = contract.methods[method](data.proof, ...args).encodeABI()
return {
value,
to: contractAddress,
data: calldata,
if (data.type === jobType.TORNADO_WITHDRAW) {
const contract = new web3.eth.Contract(tornadoProxyABI, tornadoProxyAddress)
const calldata = contract.methods.withdraw(data.contract, data.proof, ...data.args).encodeABI()
return {
value: data.args[5],
to: tornadoProxyAddress,
data: calldata
}
} else {
const contract = new web3.eth.Contract(miningABI, minerAddress)
const method = data.type === jobType.MINING_REWARD ? 'reward' : 'withdraw'
const calldata = contract.methods[method](data.proof, data.args).encodeABI()
return {
to: minerAddress,
data: calldata,
}
}
}