From 9039f384400583c4e78174866a6e6b7eb759dd36 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sat, 6 Feb 2021 00:04:15 +0300 Subject: [PATCH] one more test --- test/tornadoTrees.test.js | 108 +++++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/test/tornadoTrees.test.js b/test/tornadoTrees.test.js index 1b88a25..464e20d 100644 --- a/test/tornadoTrees.test.js +++ b/test/tornadoTrees.test.js @@ -141,60 +141,70 @@ describe('TornadoTrees', function () { updatedRoot = await tornadoTrees.depositRoot() expect(updatedRoot).to.be.equal(tree.root()) }) - // it('should work for batch+N filled v1 tree', async () => { - // for (let i = 4; i < 6; i++) { - // notes.push({ - // instance: instances[i % instances.length], - // depositBlock: blocks[i % blocks.length], - // withdrawalBlock: 2 + i + i * 4 * 60 * 24, - // commitment: randomBN(), - // nullifierHash: randomBN(), - // }) - // await register(notes[i], tornadoTreesV1, tornadoProxy) - // } + it('should work for batch+N filled v1 tree', async () => { + for (let i = 4; i < 6; i++) { + notes.push({ + instance: instances[i % instances.length], + depositBlock: blocks[i % blocks.length], + withdrawalBlock: 2 + i + i * 4 * 60 * 24, + commitment: randomBN(), + nullifierHash: randomBN(), + }) + await register(notes[i], tornadoTreesV1, tornadoProxy) + } - // const TornadoTrees = await ethers.getContractFactory('TornadoTreesMock') - // const newTornadoTrees = await TornadoTrees.deploy( - // operator.address, - // tornadoProxy.address, - // tornadoTreesV1.address, - // verifier.address, - // ) + const TornadoTrees = await ethers.getContractFactory('TornadoTreesMock') + const newTornadoTrees = await TornadoTrees.deploy( + operator.address, + tornadoProxy.address, + tornadoTreesV1.address, + verifier.address, + ) - // let { input, args } = controller.batchTreeUpdate(tree, depositEvents) - // let proof = await controller.prove(input, './artifacts/circuits/BatchTreeUpdate') - // await newTornadoTrees.updateDepositTree(proof, ...args) - // let updatedRoot = await newTornadoTrees.depositRoot() - // expect(updatedRoot).to.be.equal(tree.root()) + let { input, args } = controller.batchTreeUpdate(tree, depositEvents) + let proof = await controller.prove(input, './artifacts/circuits/BatchTreeUpdate') + await newTornadoTrees.updateDepositTree(proof, ...args) + let updatedRoot = await newTornadoTrees.depositRoot() + expect(updatedRoot).to.be.equal(tree.root()) - // // register 6 new deposits for the new trees - // for (let i = 0; i < notes.length; i++) { - // await register(notes[i], newTornadoTrees, tornadoProxy) - // } + // register 6 new deposits for the new trees + for (let i = 0; i < notes.length; i++) { + await register(notes[i], newTornadoTrees, tornadoProxy) + } - // // get 2 events from v1 tress - // const events = notes.slice(4).map((note) => ({ - // hash: toFixedHex(note.commitment), - // instance: toFixedHex(note.instance, 20), - // block: toFixedHex(note.depositBlock, 4), - // })) + // get 2 events from v1 tress + let events = notes.slice(4).map((note) => ({ + hash: toFixedHex(note.commitment), + instance: toFixedHex(note.instance, 20), + block: toFixedHex(note.depositBlock, 4), + })) - // const registeredEvents = await newTornadoTrees.queryFilter(depositDataEventFilter) - // console.log('registeredEvents', JSON.stringify(registeredEvents, null, 2)) - // // events = events.concat( - // // registeredEvents.slice(0, 2).map((e) => ({ - // // hash: toFixedHex(e.args.hash), - // // instance: toFixedHex(e.args.instance, 20), - // // block: toFixedHex(e.args.block, 4), - // // })), - // // ) - // // console.log('events', events) - // // ;({ input, args } = controller.batchTreeUpdate(tree, events)) - // // proof = await controller.prove(input, './artifacts/circuits/BatchTreeUpdate') - // // await newTornadoTrees.updateDepositTree(proof, ...args) - // // updatedRoot = await newTornadoTrees.depositRoot() - // // expect(updatedRoot).to.be.equal(tree.root()) - // }) + const registeredEvents = await newTornadoTrees.queryFilter(depositDataEventFilter) + events = events.concat( + registeredEvents.slice(0, 2).map((e) => ({ + hash: toFixedHex(e.args.hash), + instance: toFixedHex(e.args.instance, 20), + block: toFixedHex(e.args.block, 4), + })), + ) + // + ;({ input, args } = controller.batchTreeUpdate(tree, events)) + proof = await controller.prove(input, './artifacts/circuits/BatchTreeUpdate') + await newTornadoTrees.updateDepositTree(proof, ...args) + updatedRoot = await newTornadoTrees.depositRoot() + expect(updatedRoot).to.be.equal(tree.root()) + + events = registeredEvents.slice(6).map((e) => ({ + hash: toFixedHex(e.args.hash), + instance: toFixedHex(e.args.instance, 20), + block: toFixedHex(e.args.block, 4), + })) + ;({ input, args } = controller.batchTreeUpdate(tree, events)) + proof = await controller.prove(input, './artifacts/circuits/BatchTreeUpdate') + await newTornadoTrees.updateDepositTree(proof, ...args) + updatedRoot = await newTornadoTrees.depositRoot() + expect(updatedRoot).to.be.equal(tree.root()) + }) it('should reject for partially filled tree') it('should reject for outdated deposit root') it('should reject for incorrect insert index')