From 1bb83c68662383499502679c8711019339816ada Mon Sep 17 00:00:00 2001 From: theSatvik Date: Mon, 30 Aug 2021 16:05:57 +0530 Subject: [PATCH] added hash based methods --- .../tree/merkle-tree/MerkleTree.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/data-structures/tree/merkle-tree/MerkleTree.js b/src/data-structures/tree/merkle-tree/MerkleTree.js index ce4efba3..e504b763 100644 --- a/src/data-structures/tree/merkle-tree/MerkleTree.js +++ b/src/data-structures/tree/merkle-tree/MerkleTree.js @@ -70,6 +70,23 @@ class MerkleTree { // Set the final hash as root this.root = currentRow[0] } + inputHash(node) { + return this.hashBase(node, this.option.inputHash) + } + + hash(node) { + return this.hashBase(node, this.option.hash) + } + + hashBase(node, method = this.option.hash) { + node = this._toString(node) + if (method && (typeof method === 'function')) { + return method(node) + } + const hash = crypto.createHash(method) + return hash.update(node, 'utf8').digest('hex') + } + }