Commit f358a030 by Roman Storm Committed by Nicolás Venturo

20x performance for merkle tree lib (#1787)

* 20x performance for merkle tree lib

* add semicolon

* Update test/helpers/merkleTree.js

Co-Authored-By: Nicolás Venturo <nicolas.venturo@gmail.com>
parent 8545c99f
......@@ -5,10 +5,10 @@ class MerkleTree {
// Filter empty strings and hash elements
this.elements = elements.filter(el => el).map(el => keccak256(el));
// Deduplicate elements
this.elements = this.bufDedup(this.elements);
// Sort elements
this.elements.sort(Buffer.compare);
// Deduplicate elements
this.elements = this.bufDedup(this.elements);
// Create layers
this.layers = this.getLayers(this.elements);
......@@ -113,7 +113,7 @@ class MerkleTree {
bufDedup (elements) {
return elements.filter((el, idx) => {
return this.bufIndexOf(el, elements) === idx;
return idx === 0 || !elements[idx - 1].equals(el);
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment