mirror of
https://github.com/tornadocash/tornado-core.git
synced 2024-11-22 09:47:13 +01:00
fix tests, reorder constructor parameters
This commit is contained in:
parent
a77c04ea5a
commit
c889a88b4d
@ -39,9 +39,7 @@ You can see example usage in cli.js, it works both in console and in browser.
|
|||||||
|
|
||||||
1. `npm install`
|
1. `npm install`
|
||||||
1. `cp .env.example .env`
|
1. `cp .env.example .env`
|
||||||
1. `npm run build:circuit` - this may take 10 minutes or more
|
1. `npm run build` - this may take 10 minutes or more
|
||||||
1. `npm run build:contract`
|
|
||||||
1. `npm run browserify`
|
|
||||||
1. `npx ganache-cli`
|
1. `npx ganache-cli`
|
||||||
1. `npm run test` - optionally run tests. It may fail for the first time, just run one more time.
|
1. `npm run test` - optionally run tests. It may fail for the first time, just run one more time.
|
||||||
|
|
||||||
|
@ -18,11 +18,11 @@ contract ERC20Mixer is Mixer {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
address _verifier,
|
address _verifier,
|
||||||
|
uint256 _denomination,
|
||||||
uint8 _merkleTreeHeight,
|
uint8 _merkleTreeHeight,
|
||||||
uint256 _emptyElement,
|
uint256 _emptyElement,
|
||||||
address payable _operator,
|
address payable _operator,
|
||||||
address _token,
|
address _token
|
||||||
uint256 _denomination
|
|
||||||
) Mixer(_verifier, _denomination, _merkleTreeHeight, _emptyElement, _operator) public {
|
) Mixer(_verifier, _denomination, _merkleTreeHeight, _emptyElement, _operator) public {
|
||||||
token = _token;
|
token = _token;
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,11 @@ module.exports = function(deployer, network, accounts) {
|
|||||||
const mixer = await deployer.deploy(
|
const mixer = await deployer.deploy(
|
||||||
ERC20Mixer,
|
ERC20Mixer,
|
||||||
verifier.address,
|
verifier.address,
|
||||||
|
TOKEN_AMOUNT,
|
||||||
MERKLE_TREE_HEIGHT,
|
MERKLE_TREE_HEIGHT,
|
||||||
EMPTY_ELEMENT,
|
EMPTY_ELEMENT,
|
||||||
accounts[0],
|
accounts[0],
|
||||||
token,
|
token,
|
||||||
TOKEN_AMOUNT
|
|
||||||
)
|
)
|
||||||
console.log('ERC20Mixer\'s address ', mixer.address)
|
console.log('ERC20Mixer\'s address ', mixer.address)
|
||||||
})
|
})
|
||||||
|
@ -52,11 +52,11 @@ contract('ERC20Mixer', accounts => {
|
|||||||
const levels = MERKLE_TREE_HEIGHT || 16
|
const levels = MERKLE_TREE_HEIGHT || 16
|
||||||
const zeroValue = EMPTY_ELEMENT || 1337
|
const zeroValue = EMPTY_ELEMENT || 1337
|
||||||
let tokenDenomination = TOKEN_AMOUNT || '1000000000000000000' // 1 ether
|
let tokenDenomination = TOKEN_AMOUNT || '1000000000000000000' // 1 ether
|
||||||
const value = ETH_AMOUNT || '1000000000000000000' // 1 ether
|
|
||||||
let snapshotId
|
let snapshotId
|
||||||
let prefix = 'test'
|
let prefix = 'test'
|
||||||
let tree
|
let tree
|
||||||
const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17)
|
const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17)
|
||||||
|
const refund = ETH_AMOUNT || '1000000000000000000' // 1 ether
|
||||||
const receiver = getRandomReceiver()
|
const receiver = getRandomReceiver()
|
||||||
const relayer = accounts[1]
|
const relayer = accounts[1]
|
||||||
let groth16
|
let groth16
|
||||||
@ -96,7 +96,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
const commitment = 43
|
const commitment = 43
|
||||||
await token.approve(mixer.address, tokenDenomination)
|
await token.approve(mixer.address, tokenDenomination)
|
||||||
|
|
||||||
let { logs } = await mixer.deposit(commitment, { value, from: sender })
|
let { logs } = await mixer.deposit(commitment, { from: sender })
|
||||||
|
|
||||||
logs[0].event.should.be.equal('Deposit')
|
logs[0].event.should.be.equal('Deposit')
|
||||||
logs[0].args.commitment.should.be.eq.BN(toBN(commitment))
|
logs[0].args.commitment.should.be.eq.BN(toBN(commitment))
|
||||||
@ -114,9 +114,9 @@ contract('ERC20Mixer', accounts => {
|
|||||||
const balanceUserBefore = await token.balanceOf(user)
|
const balanceUserBefore = await token.balanceOf(user)
|
||||||
await token.approve(mixer.address, tokenDenomination, { from: user })
|
await token.approve(mixer.address, tokenDenomination, { from: user })
|
||||||
// Uncomment to measure gas usage
|
// Uncomment to measure gas usage
|
||||||
// let gas = await mixer.deposit.estimateGas(toBN(deposit.commitment.toString()), { value, from: user, gasPrice: '0' })
|
// let gas = await mixer.deposit.estimateGas(toBN(deposit.commitment.toString()), { from: user, gasPrice: '0' })
|
||||||
// console.log('deposit gas:', gas)
|
// console.log('deposit gas:', gas)
|
||||||
await mixer.deposit(toBN(deposit.commitment.toString()), { value, from: user, gasPrice: '0' })
|
await mixer.deposit(toBN(deposit.commitment.toString()), { from: user, gasPrice: '0' })
|
||||||
|
|
||||||
const balanceUserAfter = await token.balanceOf(user)
|
const balanceUserAfter = await token.balanceOf(user)
|
||||||
balanceUserAfter.should.be.eq.BN(toBN(balanceUserBefore).sub(toBN(tokenDenomination)))
|
balanceUserAfter.should.be.eq.BN(toBN(balanceUserBefore).sub(toBN(tokenDenomination)))
|
||||||
@ -130,6 +130,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
relayer,
|
relayer,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
|
|
||||||
// private
|
// private
|
||||||
nullifier: deposit.nullifier,
|
nullifier: deposit.nullifier,
|
||||||
@ -152,7 +153,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
// Uncomment to measure gas usage
|
// Uncomment to measure gas usage
|
||||||
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
||||||
// console.log('withdraw gas:', gas)
|
// console.log('withdraw gas:', gas)
|
||||||
const { logs } = await mixer.withdraw(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
const { logs } = await mixer.withdraw(proof, publicSignals, { value: refund, from: relayer, gasPrice: '0' })
|
||||||
|
|
||||||
const balanceMixerAfter = await token.balanceOf(mixer.address)
|
const balanceMixerAfter = await token.balanceOf(mixer.address)
|
||||||
const balanceRelayerAfter = await token.balanceOf(relayer)
|
const balanceRelayerAfter = await token.balanceOf(relayer)
|
||||||
@ -164,7 +165,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore).add(feeBN))
|
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore).add(feeBN))
|
||||||
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore))
|
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore))
|
||||||
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination).sub(feeBN)))
|
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination).sub(feeBN)))
|
||||||
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(value)))
|
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(refund)))
|
||||||
|
|
||||||
logs[0].event.should.be.equal('Withdraw')
|
logs[0].event.should.be.equal('Withdraw')
|
||||||
logs[0].args.nullifierHash.should.be.eq.BN(toBN(input.nullifierHash.toString()))
|
logs[0].args.nullifierHash.should.be.eq.BN(toBN(input.nullifierHash.toString()))
|
||||||
@ -196,7 +197,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
console.log('approve done')
|
console.log('approve done')
|
||||||
const allowanceUser = await usdtToken.allowance(user, mixer.address)
|
const allowanceUser = await usdtToken.allowance(user, mixer.address)
|
||||||
console.log('allowanceUser', allowanceUser.toString())
|
console.log('allowanceUser', allowanceUser.toString())
|
||||||
await mixer.deposit(toBN(deposit.commitment.toString()), { value, from: user, gasPrice: '0' })
|
await mixer.deposit(toBN(deposit.commitment.toString()), { from: user, gasPrice: '0' })
|
||||||
console.log('deposit done')
|
console.log('deposit done')
|
||||||
|
|
||||||
const balanceUserAfter = await usdtToken.balanceOf(user)
|
const balanceUserAfter = await usdtToken.balanceOf(user)
|
||||||
@ -212,6 +213,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
|
|
||||||
// private
|
// private
|
||||||
nullifier: deposit.nullifier,
|
nullifier: deposit.nullifier,
|
||||||
@ -235,7 +237,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
// Uncomment to measure gas usage
|
// Uncomment to measure gas usage
|
||||||
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
||||||
// console.log('withdraw gas:', gas)
|
// console.log('withdraw gas:', gas)
|
||||||
const { logs } = await mixer.withdraw(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
const { logs } = await mixer.withdraw(proof, publicSignals, { value: refund, from: relayer, gasPrice: '0' })
|
||||||
|
|
||||||
const balanceMixerAfter = await usdtToken.balanceOf(mixer.address)
|
const balanceMixerAfter = await usdtToken.balanceOf(mixer.address)
|
||||||
const balanceRelayerAfter = await usdtToken.balanceOf(relayer)
|
const balanceRelayerAfter = await usdtToken.balanceOf(relayer)
|
||||||
@ -247,7 +249,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore))
|
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore))
|
||||||
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore).add(feeBN))
|
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore).add(feeBN))
|
||||||
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination)))
|
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination)))
|
||||||
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(value)).sub(feeBN))
|
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(refund)).sub(feeBN))
|
||||||
|
|
||||||
|
|
||||||
logs[0].event.should.be.equal('Withdraw')
|
logs[0].event.should.be.equal('Withdraw')
|
||||||
@ -276,7 +278,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
console.log('balanceUserBefore', balanceUserBefore.toString())
|
console.log('balanceUserBefore', balanceUserBefore.toString())
|
||||||
await token.approve(mixer.address, tokenDenomination, { from: user })
|
await token.approve(mixer.address, tokenDenomination, { from: user })
|
||||||
console.log('approve done')
|
console.log('approve done')
|
||||||
await mixer.deposit(toBN(deposit.commitment.toString()), { value, from: user, gasPrice: '0' })
|
await mixer.deposit(toBN(deposit.commitment.toString()), { from: user, gasPrice: '0' })
|
||||||
console.log('deposit done')
|
console.log('deposit done')
|
||||||
|
|
||||||
const balanceUserAfter = await token.balanceOf(user)
|
const balanceUserAfter = await token.balanceOf(user)
|
||||||
@ -292,6 +294,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
|
|
||||||
// private
|
// private
|
||||||
nullifier: deposit.nullifier,
|
nullifier: deposit.nullifier,
|
||||||
@ -315,7 +318,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
// Uncomment to measure gas usage
|
// Uncomment to measure gas usage
|
||||||
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
// gas = await mixer.withdraw.estimateGas(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
||||||
// console.log('withdraw gas:', gas)
|
// console.log('withdraw gas:', gas)
|
||||||
const { logs } = await mixer.withdraw(proof, publicSignals, { from: relayer, gasPrice: '0' })
|
const { logs } = await mixer.withdraw(proof, publicSignals, { value: refund, from: relayer, gasPrice: '0' })
|
||||||
console.log('withdraw done')
|
console.log('withdraw done')
|
||||||
|
|
||||||
const balanceMixerAfter = await token.balanceOf(mixer.address)
|
const balanceMixerAfter = await token.balanceOf(mixer.address)
|
||||||
@ -328,7 +331,7 @@ contract('ERC20Mixer', accounts => {
|
|||||||
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore))
|
balanceRelayerAfter.should.be.eq.BN(toBN(balanceRelayerBefore))
|
||||||
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore).add(feeBN))
|
ethBalanceOperatorAfter.should.be.eq.BN(toBN(ethBalanceOperatorBefore).add(feeBN))
|
||||||
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination)))
|
balanceRecieverAfter.should.be.eq.BN(toBN(balanceRecieverBefore).add(toBN(tokenDenomination)))
|
||||||
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(value)).sub(feeBN))
|
ethBalanceRecieverAfter.should.be.eq.BN(toBN(ethBalanceRecieverBefore).add(toBN(refund)).sub(feeBN))
|
||||||
|
|
||||||
|
|
||||||
logs[0].event.should.be.equal('Withdraw')
|
logs[0].event.should.be.equal('Withdraw')
|
||||||
|
@ -68,6 +68,7 @@ contract('ETHMixer', accounts => {
|
|||||||
let prefix = 'test'
|
let prefix = 'test'
|
||||||
let tree
|
let tree
|
||||||
const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17)
|
const fee = bigInt(ETH_AMOUNT).shr(1) || bigInt(1e17)
|
||||||
|
const refund = bigInt(0)
|
||||||
const receiver = getRandomReceiver()
|
const receiver = getRandomReceiver()
|
||||||
const relayer = accounts[1]
|
const relayer = accounts[1]
|
||||||
let groth16
|
let groth16
|
||||||
@ -144,6 +145,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
@ -200,6 +202,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
|
|
||||||
// private
|
// private
|
||||||
nullifier: deposit.nullifier,
|
nullifier: deposit.nullifier,
|
||||||
@ -257,6 +260,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
@ -282,6 +286,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
@ -307,6 +312,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee: oneEtherFee,
|
fee: oneEtherFee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
@ -332,6 +338,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
@ -360,6 +367,7 @@ contract('ETHMixer', accounts => {
|
|||||||
relayer: operator,
|
relayer: operator,
|
||||||
receiver,
|
receiver,
|
||||||
fee,
|
fee,
|
||||||
|
refund,
|
||||||
secret: deposit.secret,
|
secret: deposit.secret,
|
||||||
pathElements: path_elements,
|
pathElements: path_elements,
|
||||||
pathIndex: path_index,
|
pathIndex: path_index,
|
||||||
|
Loading…
Reference in New Issue
Block a user