mirror of
https://github.com/tornadocash/tornado-core.git
synced 2024-12-25 22:39:22 -05:00
remove redundant event
This commit is contained in:
parent
66754181f2
commit
13b9a948dc
5
cli.js
5
cli.js
@ -47,8 +47,9 @@ async function withdraw(note, receiver) {
|
|||||||
let deposit = createDeposit(bigInt.leBuff2int(buf.slice(0, 32)), bigInt.leBuff2int(buf.slice(32, 64)))
|
let deposit = createDeposit(bigInt.leBuff2int(buf.slice(0, 32)), bigInt.leBuff2int(buf.slice(32, 64)))
|
||||||
|
|
||||||
console.log('Getting current state from mixer contract')
|
console.log('Getting current state from mixer contract')
|
||||||
const events = await mixer.getPastEvents('LeafAdded', { fromBlock: mixer.deployedBlock, toBlock: 'latest' })
|
const events = await mixer.getPastEvents('Deposit', { fromBlock: mixer.deployedBlock, toBlock: 'latest' })
|
||||||
const leaves = events.sort(e => e.returnValues.leaf_index).map(e => e.returnValues.leaf)
|
console.log('events', events)
|
||||||
|
const leaves = events.sort(e => e.returnValues.leafIndex).map(e => e.returnValues.commitment)
|
||||||
const tree = new merkleTree(MERKLE_TREE_HEIGHT, EMPTY_ELEMENT, leaves)
|
const tree = new merkleTree(MERKLE_TREE_HEIGHT, EMPTY_ELEMENT, leaves)
|
||||||
const validRoot = await mixer.methods.isKnownRoot(await tree.root()).call()
|
const validRoot = await mixer.methods.isKnownRoot(await tree.root()).call()
|
||||||
// todo make sure that function input is 32 bytes long
|
// todo make sure that function input is 32 bytes long
|
||||||
|
@ -16,8 +16,6 @@ contract MerkleTreeWithHistory {
|
|||||||
|
|
||||||
uint32 public next_index = 0;
|
uint32 public next_index = 0;
|
||||||
|
|
||||||
event LeafAdded(uint256 indexed leaf, uint32 leaf_index);
|
|
||||||
|
|
||||||
constructor(uint256 tree_levels, uint256 zero_value) public {
|
constructor(uint256 tree_levels, uint256 zero_value) public {
|
||||||
levels = tree_levels;
|
levels = tree_levels;
|
||||||
|
|
||||||
@ -48,7 +46,6 @@ contract MerkleTreeWithHistory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _insert(uint256 leaf) internal {
|
function _insert(uint256 leaf) internal {
|
||||||
uint32 leaf_index = next_index;
|
|
||||||
uint32 current_index = next_index;
|
uint32 current_index = next_index;
|
||||||
require(current_index != 2**(levels - 1), "Merkle tree is full");
|
require(current_index != 2**(levels - 1), "Merkle tree is full");
|
||||||
next_index += 1;
|
next_index += 1;
|
||||||
@ -74,8 +71,6 @@ contract MerkleTreeWithHistory {
|
|||||||
|
|
||||||
current_root = (current_root + 1) % ROOT_HISTORY_SIZE;
|
current_root = (current_root + 1) % ROOT_HISTORY_SIZE;
|
||||||
_roots[current_root] = current_level_hash;
|
_roots[current_root] = current_level_hash;
|
||||||
|
|
||||||
emit LeafAdded(leaf, leaf_index);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isKnownRoot(uint256 root) public view returns(bool) {
|
function isKnownRoot(uint256 root) public view returns(bool) {
|
||||||
|
@ -13,7 +13,7 @@ contract Mixer is MerkleTreeWithHistory {
|
|||||||
mapping(uint256 => bool) public commitments;
|
mapping(uint256 => bool) public commitments;
|
||||||
IVerifier verifier;
|
IVerifier verifier;
|
||||||
|
|
||||||
event Deposit(address from, uint256 indexed commitment);
|
event Deposit(uint256 indexed commitment, uint256 leafIndex);
|
||||||
event Withdraw(address to, uint256 nullifier, uint256 fee);
|
event Withdraw(address to, uint256 nullifier, uint256 fee);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ contract Mixer is MerkleTreeWithHistory {
|
|||||||
require(!commitments[commitment], "The commitment has been submitted");
|
require(!commitments[commitment], "The commitment has been submitted");
|
||||||
_insert(commitment);
|
_insert(commitment);
|
||||||
commitments[commitment] = true;
|
commitments[commitment] = true;
|
||||||
emit Deposit(msg.sender, commitment);
|
emit Deposit(commitment, next_index - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,15 +96,19 @@ contract('Mixer', accounts => {
|
|||||||
|
|
||||||
describe('#deposit', () => {
|
describe('#deposit', () => {
|
||||||
it('should emit event', async () => {
|
it('should emit event', async () => {
|
||||||
const commitment = 42
|
let commitment = 42
|
||||||
const { logs } = await mixer.deposit(commitment, { value, from: sender })
|
let { logs } = await mixer.deposit(commitment, { value, from: sender })
|
||||||
logs[0].event.should.be.equal('LeafAdded')
|
|
||||||
logs[0].args.leaf.should.be.eq.BN(toBN(commitment))
|
|
||||||
logs[0].args.leaf_index.should.be.eq.BN(toBN(0))
|
|
||||||
|
|
||||||
logs[1].event.should.be.equal('Deposit')
|
logs[0].event.should.be.equal('Deposit')
|
||||||
logs[1].args.from.should.be.equal(sender)
|
logs[0].args.commitment.should.be.eq.BN(toBN(commitment))
|
||||||
logs[1].args.commitment.should.be.eq.BN(toBN(commitment))
|
logs[0].args.leafIndex.should.be.eq.BN(toBN(0))
|
||||||
|
|
||||||
|
commitment = 12;
|
||||||
|
({ logs } = await mixer.deposit(commitment, { value, from: accounts[2] }))
|
||||||
|
|
||||||
|
logs[0].event.should.be.equal('Deposit')
|
||||||
|
logs[0].args.commitment.should.be.eq.BN(toBN(commitment))
|
||||||
|
logs[0].args.leafIndex.should.be.eq.BN(toBN(1))
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should throw if there is a such commitment', async () => {
|
it('should throw if there is a such commitment', async () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user