From ec30e2d357c5995c6d942703a708e9b1849784fc Mon Sep 17 00:00:00 2001 From: Drygin Date: Wed, 4 Sep 2019 13:31:10 +0300 Subject: [PATCH 1/2] fix merkle tree capacity --- contracts/MerkleTreeWithHistory.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/MerkleTreeWithHistory.sol b/contracts/MerkleTreeWithHistory.sol index a374bff..74a4bc3 100644 --- a/contracts/MerkleTreeWithHistory.sol +++ b/contracts/MerkleTreeWithHistory.sol @@ -58,7 +58,7 @@ contract MerkleTreeWithHistory { function _insert(uint256 leaf) internal { uint32 current_index = next_index; - require(current_index != 2**(levels - 1), "Merkle tree is full"); + require(current_index != 2**levels, "Merkle tree is full"); next_index += 1; uint256 current_level_hash = leaf; uint256 left; From 374dd420f527ea8e104f42a610dc1cc5cae508c4 Mon Sep 17 00:00:00 2001 From: Drygin Date: Wed, 4 Sep 2019 16:08:11 +0300 Subject: [PATCH 2/2] fix test of capacity of Merkle tree --- test/MerkleTreeWithHistory.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/MerkleTreeWithHistory.test.js b/test/MerkleTreeWithHistory.test.js index 5d0b2d8..2bcd505 100644 --- a/test/MerkleTreeWithHistory.test.js +++ b/test/MerkleTreeWithHistory.test.js @@ -180,7 +180,7 @@ contract('MerkleTreeWithHistory', accounts => { zeroValue = 1337 merkleTreeWithHistory = await MerkleTreeWithHistory.new(levels, zeroValue) - for (let i = 0; i < 2**(levels - 1); i++) { + for (let i = 0; i < 2**levels; i++) { await merkleTreeWithHistory.insert(i+42).should.be.fulfilled }