From ad634a6b3ae9a9684217400f977bfda04aa71275 Mon Sep 17 00:00:00 2001 From: Sergei SMART Date: Thu, 10 Mar 2022 19:41:32 +1000 Subject: [PATCH] implementing getTreeSlices --- src/FixedMerkleTree.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/FixedMerkleTree.ts b/src/FixedMerkleTree.ts index 93b4914..8b4af73 100644 --- a/src/FixedMerkleTree.ts +++ b/src/FixedMerkleTree.ts @@ -195,17 +195,21 @@ export default class MerkleTree { return { edgePath, edgeElement, edgeIndex } } - getTreeSlices(count: number): { edge: TreeEdge, elements: Element[] }[] { + /** + * 🪓 + * @param count + */ + getTreeSlices(count = 4): { edge: TreeEdge, elements: Element[] }[] { const length = this._layers[0].length let size = Math.ceil(length / count) size % 2 && size++ - const indexes = [] + const slices = [] for (let i = length - size - 1; i > -size; i -= size) { const edgeLeft = i >= 0 ? i : 0 const edgeRight = i + size - indexes.push({ edge: this.getTreeEdge(edgeLeft), elements: this.elements.slice(edgeLeft, edgeRight) }) + slices.push({ edge: this.getTreeEdge(edgeLeft), elements: this.elements.slice(edgeLeft, edgeRight) }) } - return indexes + return slices.reverse() } /**