Compare leaf hash to root if no proof array. Closes #25
This commit is contained in:
parent
d78ea67599
commit
a246764d6b
7
index.ts
7
index.ts
|
@ -558,10 +558,11 @@ export class MerkleTree {
|
||||||
let hash = this._bufferify(targetNode)
|
let hash = this._bufferify(targetNode)
|
||||||
root = this._bufferify(root)
|
root = this._bufferify(root)
|
||||||
|
|
||||||
if (!Array.isArray(proof) ||
|
if (
|
||||||
!proof.length ||
|
!Array.isArray(proof) ||
|
||||||
!targetNode ||
|
!targetNode ||
|
||||||
!root) {
|
!root
|
||||||
|
) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "merkletreejs",
|
"name": "merkletreejs",
|
||||||
"version": "0.2.8",
|
"version": "0.2.9",
|
||||||
"description": "Construct Merkle Trees and verify proofs",
|
"description": "Construct Merkle Trees and verify proofs",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
|
|
@ -488,6 +488,21 @@ test('crypto-js SHA3 leaves SHA256 hash algo', t => {
|
||||||
t.equal(verifications.every(Boolean), true)
|
t.equal(verifications.every(Boolean), true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('crypto-js SHA3 1 leaf SHA256 hash algo', t => {
|
||||||
|
t.plan(4)
|
||||||
|
|
||||||
|
const leaves = ['a'].map(SHA3)
|
||||||
|
const tree = new MerkleTree(leaves, SHA256)
|
||||||
|
t.deepEqual(tree.getLeaves(), leaves.map(MerkleTree.bufferify))
|
||||||
|
const root = tree.getRoot()
|
||||||
|
|
||||||
|
const leaf = leaves[0]
|
||||||
|
const proof = tree.getProof(leaf)
|
||||||
|
t.equal(proof.length, 0)
|
||||||
|
t.equal(MerkleTree.bufferify(leaf).toString('hex'), root.toString('hex'))
|
||||||
|
t.equal(tree.verify(proof, leaf, root), true)
|
||||||
|
})
|
||||||
|
|
||||||
test('crypto-js bufferify', t => {
|
test('crypto-js bufferify', t => {
|
||||||
t.plan(1)
|
t.plan(1)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue