postchain-client 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/built/cjs/index.js +138 -1421
- package/built/cjs/index.js.map +1 -1
- package/built/esm/index.js +12400 -13410
- package/built/esm/index.js.map +1 -1
- package/built/index.d.ts +0 -1
- package/built/index.js +0 -2
- package/built/index.js.map +1 -1
- package/built/src/ICCF/IccfProofTxMaterialBuilder.d.ts +3 -2
- package/built/src/ICCF/IccfProofTxMaterialBuilder.js +23 -10
- package/built/src/ICCF/IccfProofTxMaterialBuilder.js.map +1 -1
- package/built/src/blockchainClient/blockchainClient.js +7 -3
- package/built/src/blockchainClient/blockchainClient.js.map +1 -1
- package/built/src/blockchainClient/failoverStrategies.js +2 -1
- package/built/src/blockchainClient/failoverStrategies.js.map +1 -1
- package/built/src/blockchainClient/nodeManager.d.ts +3 -0
- package/built/src/blockchainClient/nodeManager.js +7 -0
- package/built/src/blockchainClient/nodeManager.js.map +1 -1
- package/built/src/blockchainClient/types.d.ts +1 -0
- package/built/src/blockchainClient/utils.d.ts +11 -1
- package/built/src/blockchainClient/utils.js +14 -1
- package/built/src/blockchainClient/utils.js.map +1 -1
- package/built/src/gtv/index.d.ts +2 -2
- package/built/src/gtv/index.js +4 -6
- package/built/src/gtv/index.js.map +1 -1
- package/built/test/pcctf/getSuites.test.js +106 -0
- package/built/test/pcctf/getSuites.test.js.map +1 -0
- package/built/test/pcctf/helpers.d.ts +92 -0
- package/built/test/pcctf/helpers.js +239 -0
- package/built/test/pcctf/helpers.js.map +1 -0
- package/built/test/unit/blockchainClient/client.test.js +2 -0
- package/built/test/unit/blockchainClient/client.test.js.map +1 -1
- package/built/test/unit/failoverStrategies.test.js +1 -1
- package/built/test/unit/failoverStrategies.test.js.map +1 -1
- package/built/umd/index.js +14393 -13535
- package/built/umd/index.js.map +1 -1
- package/changelog.md +33 -1
- package/package.json +8 -4
- package/built/src/merkle/binarytree.d.ts +0 -131
- package/built/src/merkle/binarytree.js +0 -146
- package/built/src/merkle/binarytree.js.map +0 -1
- package/built/src/merkle/binarytreefactory.d.ts +0 -86
- package/built/src/merkle/binarytreefactory.js +0 -251
- package/built/src/merkle/binarytreefactory.js.map +0 -1
- package/built/src/merkle/merkleHelper.d.ts +0 -17
- package/built/src/merkle/merkleHelper.js +0 -109
- package/built/src/merkle/merkleHelper.js.map +0 -1
- package/built/src/merkle/merklehashcalculator.d.ts +0 -37
- package/built/src/merkle/merklehashcalculator.js +0 -73
- package/built/src/merkle/merklehashcalculator.js.map +0 -1
- package/built/src/merkle/path.d.ts +0 -151
- package/built/src/merkle/path.js +0 -306
- package/built/src/merkle/path.js.map +0 -1
- package/built/src/merkle/proof/merklehashcarrier.d.ts +0 -17
- package/built/src/merkle/proof/merklehashcarrier.js +0 -23
- package/built/src/merkle/proof/merklehashcarrier.js.map +0 -1
- package/built/src/merkle/proof/merklehashsummaryfactory.d.ts +0 -53
- package/built/src/merkle/proof/merklehashsummaryfactory.js +0 -82
- package/built/src/merkle/proof/merklehashsummaryfactory.js.map +0 -1
- package/built/src/merkle/proof/merkleproof.d.ts +0 -36
- package/built/src/merkle/proof/merkleproof.js +0 -61
- package/built/src/merkle/proof/merkleproof.js.map +0 -1
- package/built/src/merkle/proof/merkleprooftree.d.ts +0 -124
- package/built/src/merkle/proof/merkleprooftree.js +0 -117
- package/built/src/merkle/proof/merkleprooftree.js.map +0 -1
- package/built/src/merkle/proof/merkleprooftreefactory.d.ts +0 -47
- package/built/src/merkle/proof/merkleprooftreefactory.js +0 -123
- package/built/src/merkle/proof/merkleprooftreefactory.js.map +0 -1
- package/built/src/merkle/types.d.ts +0 -11
- package/built/src/merkle/types.js +0 -2
- package/built/src/merkle/types.js.map +0 -1
- package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js +0 -85
- package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js.map +0 -1
- /package/built/test/{unit/merkle/merkleHelper/merkleHelperTest.d.ts → pcctf/getSuites.test.d.ts} +0 -0
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {Buffer} prefix
|
|
4
|
-
* @param {MerkleProofElement} left
|
|
5
|
-
* @param {MerkleProofElement} right
|
|
6
|
-
*/
|
|
7
|
-
export function ProofNode(prefix: Buffer, left: typeof MerkleProofElement, right: typeof MerkleProofElement): void;
|
|
8
|
-
export class ProofNode {
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param {Buffer} prefix
|
|
12
|
-
* @param {MerkleProofElement} left
|
|
13
|
-
* @param {MerkleProofElement} right
|
|
14
|
-
*/
|
|
15
|
-
constructor(prefix: Buffer, left: typeof MerkleProofElement, right: typeof MerkleProofElement);
|
|
16
|
-
prefix: Buffer;
|
|
17
|
-
left: typeof MerkleProofElement;
|
|
18
|
-
right: typeof MerkleProofElement;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* @param {MerkleProofElement} left
|
|
23
|
-
* @param {MerkleProofElement} right
|
|
24
|
-
*/
|
|
25
|
-
export function ProofNodeSimple(left: typeof MerkleProofElement, right: typeof MerkleProofElement): void;
|
|
26
|
-
export class ProofNodeSimple {
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* @param {MerkleProofElement} left
|
|
30
|
-
* @param {MerkleProofElement} right
|
|
31
|
-
*/
|
|
32
|
-
constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* @param {Buffer} merkleHash
|
|
37
|
-
*/
|
|
38
|
-
export function ProofHashedLeaf(merkleHash: Buffer): void;
|
|
39
|
-
export class ProofHashedLeaf {
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @param {Buffer} merkleHash
|
|
43
|
-
*/
|
|
44
|
-
constructor(merkleHash: Buffer);
|
|
45
|
-
merkleHash: Buffer;
|
|
46
|
-
/**
|
|
47
|
-
* @param {ProofHashedLeaf} other
|
|
48
|
-
*/
|
|
49
|
-
equals(other: ProofHashedLeaf): boolean;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
* @param {*} content
|
|
54
|
-
* @param {SearchablePathElement} pathElem
|
|
55
|
-
*/
|
|
56
|
-
export function ProofValueLeaf(content: any, pathElem: SearchablePathElement): void;
|
|
57
|
-
export class ProofValueLeaf {
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* @param {*} content
|
|
61
|
-
* @param {SearchablePathElement} pathElem
|
|
62
|
-
*/
|
|
63
|
-
constructor(content: any, pathElem: SearchablePathElement);
|
|
64
|
-
content: any;
|
|
65
|
-
pathElem: SearchablePathElement;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
* @param {MerkleProofElement} left
|
|
70
|
-
* @param {MerkleProofElement} right
|
|
71
|
-
* @param {SearchablePathElement} pathElem
|
|
72
|
-
*/
|
|
73
|
-
export function ProofNodeArrayHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
|
|
74
|
-
export class ProofNodeArrayHead {
|
|
75
|
-
/**
|
|
76
|
-
*
|
|
77
|
-
* @param {MerkleProofElement} left
|
|
78
|
-
* @param {MerkleProofElement} right
|
|
79
|
-
* @param {SearchablePathElement} pathElem
|
|
80
|
-
*/
|
|
81
|
-
constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
|
|
82
|
-
pathElem: SearchablePathElement;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
* @param {MerkleProofElement} left
|
|
87
|
-
* @param {MerkleProofElement} right
|
|
88
|
-
* @param {SearchablePathElement} pathElem
|
|
89
|
-
*/
|
|
90
|
-
export function ProofNodeDictHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
|
|
91
|
-
export class ProofNodeDictHead {
|
|
92
|
-
/**
|
|
93
|
-
*
|
|
94
|
-
* @param {MerkleProofElement} left
|
|
95
|
-
* @param {MerkleProofElement} right
|
|
96
|
-
* @param {SearchablePathElement} pathElem
|
|
97
|
-
*/
|
|
98
|
-
constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
|
|
99
|
-
pathElem: SearchablePathElement;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
*
|
|
103
|
-
*/
|
|
104
|
-
export function MerkleProofElement(): void;
|
|
105
|
-
/**
|
|
106
|
-
*
|
|
107
|
-
* @param {MerkleProofElement} root
|
|
108
|
-
*/
|
|
109
|
-
export function MerkleProofTree(root: typeof MerkleProofElement): void;
|
|
110
|
-
export class MerkleProofTree {
|
|
111
|
-
/**
|
|
112
|
-
*
|
|
113
|
-
* @param {MerkleProofElement} root
|
|
114
|
-
*/
|
|
115
|
-
constructor(root: typeof MerkleProofElement);
|
|
116
|
-
root: typeof MerkleProofElement;
|
|
117
|
-
maxLevel(): any;
|
|
118
|
-
/**
|
|
119
|
-
* @param {MerkleProofElement} node
|
|
120
|
-
*/
|
|
121
|
-
maxLevelInternal(node: typeof MerkleProofElement): any;
|
|
122
|
-
}
|
|
123
|
-
import SearchablePathElement_1 = require("../path");
|
|
124
|
-
import SearchablePathElement = SearchablePathElement_1.SearchablePathElement;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var SearchablePathElement = require('../path').SearchablePathElement;
|
|
3
|
-
var HASH_PREFIX_NODE = require('../binarytree').HASH_PREFIX_NODE;
|
|
4
|
-
var HASH_PREFIX_NODE_ARRAY = require('../binarytree').HASH_PREFIX_NODE_ARRAY;
|
|
5
|
-
var HASH_PREFIX_NODE_DICT = require('../binarytree').HASH_PREFIX_NODE_DICT;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
function MerkleProofElement() { }
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param {Buffer} prefix
|
|
13
|
-
* @param {MerkleProofElement} left
|
|
14
|
-
* @param {MerkleProofElement} right
|
|
15
|
-
*/
|
|
16
|
-
function ProofNode(prefix, left, right) {
|
|
17
|
-
this.prefix = prefix;
|
|
18
|
-
this.left = left;
|
|
19
|
-
this.right = right;
|
|
20
|
-
}
|
|
21
|
-
ProofNode.prototype = Object.create(MerkleProofElement.prototype);
|
|
22
|
-
ProofNode.prototype.constructor = ProofNode;
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
* @param {MerkleProofElement} left
|
|
26
|
-
* @param {MerkleProofElement} right
|
|
27
|
-
*/
|
|
28
|
-
function ProofNodeSimple(left, right) {
|
|
29
|
-
ProofNode.call(this, HASH_PREFIX_NODE, left, right);
|
|
30
|
-
}
|
|
31
|
-
ProofNodeSimple.prototype = Object.create(ProofNode.prototype);
|
|
32
|
-
ProofNodeSimple.prototype.constructor = ProofNodeSimple;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @param {*} content
|
|
36
|
-
* @param {SearchablePathElement} pathElem
|
|
37
|
-
*/
|
|
38
|
-
function ProofValueLeaf(content, pathElem) {
|
|
39
|
-
this.content = content;
|
|
40
|
-
this.pathElem = pathElem;
|
|
41
|
-
}
|
|
42
|
-
ProofValueLeaf.prototype = Object.create(MerkleProofElement.prototype);
|
|
43
|
-
ProofValueLeaf.prototype.constructor = ProofValueLeaf;
|
|
44
|
-
/**
|
|
45
|
-
*
|
|
46
|
-
* @param {Buffer} merkleHash
|
|
47
|
-
*/
|
|
48
|
-
function ProofHashedLeaf(merkleHash) {
|
|
49
|
-
this.merkleHash = merkleHash;
|
|
50
|
-
}
|
|
51
|
-
ProofHashedLeaf.prototype = Object.create(MerkleProofElement.prototype);
|
|
52
|
-
ProofHashedLeaf.prototype.constructor = ProofHashedLeaf;
|
|
53
|
-
/**
|
|
54
|
-
* @param {ProofHashedLeaf} other
|
|
55
|
-
*/
|
|
56
|
-
ProofHashedLeaf.prototype.equals = function (other) {
|
|
57
|
-
if (other instanceof ProofHashedLeaf) {
|
|
58
|
-
return this.merkleHash.equals(other.merkleHash);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
* @param {MerkleProofElement} left
|
|
67
|
-
* @param {MerkleProofElement} right
|
|
68
|
-
* @param {SearchablePathElement} pathElem
|
|
69
|
-
*/
|
|
70
|
-
function ProofNodeArrayHead(left, right, pathElem = null) {
|
|
71
|
-
ProofNode.call(this, HASH_PREFIX_NODE_ARRAY, left, right);
|
|
72
|
-
this.pathElem = pathElem;
|
|
73
|
-
}
|
|
74
|
-
ProofNodeArrayHead.prototype = Object.create(ProofNode.prototype);
|
|
75
|
-
ProofNodeArrayHead.prototype.constructor = ProofNodeArrayHead;
|
|
76
|
-
/**
|
|
77
|
-
*
|
|
78
|
-
* @param {MerkleProofElement} left
|
|
79
|
-
* @param {MerkleProofElement} right
|
|
80
|
-
* @param {SearchablePathElement} pathElem
|
|
81
|
-
*/
|
|
82
|
-
function ProofNodeDictHead(left, right, pathElem = null) {
|
|
83
|
-
ProofNode.call(this, HASH_PREFIX_NODE_DICT, left, right);
|
|
84
|
-
this.pathElem = pathElem;
|
|
85
|
-
}
|
|
86
|
-
ProofNodeDictHead.prototype = Object.create(ProofNode.prototype);
|
|
87
|
-
ProofNodeDictHead.prototype.constructor = ProofNodeDictHead;
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
* @param {MerkleProofElement} root
|
|
91
|
-
*/
|
|
92
|
-
function MerkleProofTree(root) {
|
|
93
|
-
this.root = root;
|
|
94
|
-
}
|
|
95
|
-
MerkleProofTree.prototype.maxLevel = function () {
|
|
96
|
-
return this.maxLevelInternal(this.root);
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* @param {MerkleProofElement} node
|
|
100
|
-
*/
|
|
101
|
-
MerkleProofTree.prototype.maxLevelInternal = function (node) {
|
|
102
|
-
if (node instanceof ProofValueLeaf) {
|
|
103
|
-
return 1;
|
|
104
|
-
}
|
|
105
|
-
else if (node instanceof ProofHashedLeaf) {
|
|
106
|
-
return 1;
|
|
107
|
-
}
|
|
108
|
-
else if (node instanceof ProofNode) {
|
|
109
|
-
return Math.max(this.maxLevelInternal(node.left), this.maxLevelInternal(node.right)) + 1;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
throw new Error("Should be able to handle node type: " + typeof node);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
module.exports = { ProofNode, ProofNodeSimple, ProofHashedLeaf, ProofValueLeaf,
|
|
116
|
-
ProofNodeArrayHead, ProofNodeDictHead, MerkleProofElement, MerkleProofTree };
|
|
117
|
-
//# sourceMappingURL=merkleprooftree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merkleprooftree.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merkleprooftree.js"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
|
-
export function MerkleProofTreeFactory(): void;
|
|
5
|
-
export class MerkleProofTreeFactory {
|
|
6
|
-
/**
|
|
7
|
-
* @param {BinaryTree} originalTree
|
|
8
|
-
*/
|
|
9
|
-
buildFromBinaryTree(originalTree: BinaryTree, calculator: any): MerkleProofTree;
|
|
10
|
-
/**
|
|
11
|
-
* @param {BinaryTreeElement} elem
|
|
12
|
-
* @param {*} calculator
|
|
13
|
-
*/
|
|
14
|
-
buildFromBinaryTreeInternal(elem: BinaryTreeElement, calculator: any): any;
|
|
15
|
-
/**
|
|
16
|
-
* @param {Node} node
|
|
17
|
-
*/
|
|
18
|
-
convertNode(node: Node, calculator: any): any;
|
|
19
|
-
/**
|
|
20
|
-
* @param {ArrayHeadNode} node
|
|
21
|
-
*/
|
|
22
|
-
extractSearchablePathElement(node: ArrayHeadNode): any;
|
|
23
|
-
/**
|
|
24
|
-
* @param {Node} node
|
|
25
|
-
* @param {MerkleProofElement} left
|
|
26
|
-
* @param {MerkleProofElement} right
|
|
27
|
-
*/
|
|
28
|
-
buildNodeOfCorrectType(node: Node, left: typeof MerkleProofElement, right: typeof MerkleProofElement): ProofNodeSimple | ProofNodeArrayHead | ProofNodeDictHead;
|
|
29
|
-
}
|
|
30
|
-
import BinaryTree_1 = require("../binarytree");
|
|
31
|
-
import BinaryTree = BinaryTree_1.BinaryTree;
|
|
32
|
-
import MerkleProofTree_1 = require("./merkleprooftree");
|
|
33
|
-
import MerkleProofTree = MerkleProofTree_1.MerkleProofTree;
|
|
34
|
-
import BinaryTreeElement_1 = require("../binarytree");
|
|
35
|
-
import BinaryTreeElement = BinaryTreeElement_1.BinaryTreeElement;
|
|
36
|
-
import Node_1 = require("../binarytree");
|
|
37
|
-
import Node = Node_1.Node;
|
|
38
|
-
import ArrayHeadNode_1 = require("../binarytree");
|
|
39
|
-
import ArrayHeadNode = ArrayHeadNode_1.ArrayHeadNode;
|
|
40
|
-
import MerkleProofElement_1 = require("./merkleprooftree");
|
|
41
|
-
import MerkleProofElement = MerkleProofElement_1.MerkleProofElement;
|
|
42
|
-
import ProofNodeSimple_1 = require("./merkleprooftree");
|
|
43
|
-
import ProofNodeSimple = ProofNodeSimple_1.ProofNodeSimple;
|
|
44
|
-
import ProofNodeArrayHead_1 = require("./merkleprooftree");
|
|
45
|
-
import ProofNodeArrayHead = ProofNodeArrayHead_1.ProofNodeArrayHead;
|
|
46
|
-
import ProofNodeDictHead_1 = require("./merkleprooftree");
|
|
47
|
-
import ProofNodeDictHead = ProofNodeDictHead_1.ProofNodeDictHead;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const { Buffer } = require('buffer');
|
|
3
|
-
var BinaryTreeElement = require('../binarytree').BinaryTreeElement;
|
|
4
|
-
var Node = require('../binarytree').Node;
|
|
5
|
-
var Leaf = require('../binarytree').Leaf;
|
|
6
|
-
var EmptyLeaf = require('../binarytree').EmptyLeaf;
|
|
7
|
-
var BinaryTree = require('../binarytree').BinaryTree;
|
|
8
|
-
var ProofHashedLeaf = require('./merkleprooftree').ProofHashedLeaf;
|
|
9
|
-
var ProofValueLeaf = require('./merkleprooftree').ProofValueLeaf;
|
|
10
|
-
var MerkleProofElement = require('./merkleprooftree').MerkleProofElement;
|
|
11
|
-
var MerkleProofTree = require('./merkleprooftree').MerkleProofTree;
|
|
12
|
-
var ProofNodeArrayHead = require('./merkleprooftree').ProofNodeArrayHead;
|
|
13
|
-
var ProofNodeDictHead = require('./merkleprooftree').ProofNodeDictHead;
|
|
14
|
-
var PathLeafElement = require('../path').PathLeafElement;
|
|
15
|
-
var SubTreeRootNode = require('../binarytree').SubTreeRootNode;
|
|
16
|
-
var ArrayHeadNode = require('../binarytree').ArrayHeadNode;
|
|
17
|
-
var DictHeadNode = require('../binarytree').DictHeadNode;
|
|
18
|
-
var ProofNodeSimple = require('./merkleprooftree').ProofNodeSimple;
|
|
19
|
-
const EMPTY_HASH = new Buffer.alloc(32);
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
*/
|
|
23
|
-
function MerkleProofTreeFactory() { }
|
|
24
|
-
/**
|
|
25
|
-
* @param {BinaryTree} originalTree
|
|
26
|
-
*/
|
|
27
|
-
MerkleProofTreeFactory.prototype.buildFromBinaryTree = function (originalTree, calculator) {
|
|
28
|
-
var rootElem = this.buildFromBinaryTreeInternal(originalTree.root, calculator);
|
|
29
|
-
return new MerkleProofTree(rootElem);
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* @param {BinaryTreeElement} elem
|
|
33
|
-
* @param {*} calculator
|
|
34
|
-
*/
|
|
35
|
-
MerkleProofTreeFactory.prototype.buildFromBinaryTreeInternal = function (elem, calculator) {
|
|
36
|
-
if (elem instanceof EmptyLeaf) {
|
|
37
|
-
return new ProofHashedLeaf(EMPTY_HASH);
|
|
38
|
-
}
|
|
39
|
-
else if (elem instanceof Leaf) {
|
|
40
|
-
var pathElem = elem.pathElem;
|
|
41
|
-
if (pathElem != null) {
|
|
42
|
-
if (pathElem instanceof PathLeafElement) {
|
|
43
|
-
return new ProofValueLeaf(elem.content, pathElem.previous);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error("The path and structure don't match. We are at a leaf, but path elem is not a leaf: " + pathElem);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// make a hash
|
|
51
|
-
var hash = calculator.calculateLeafHash(elem.content);
|
|
52
|
-
return new ProofHashedLeaf(hash);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else if (elem instanceof SubTreeRootNode) {
|
|
56
|
-
var pathElem = elem.pathElem;
|
|
57
|
-
if (pathElem != null) {
|
|
58
|
-
if (pathElem instanceof PathLeafElement) {
|
|
59
|
-
// Don't convert it
|
|
60
|
-
return new ProofValueLeaf(elem.content, pathElem.previous);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
return this.convertNode(elem, calculator);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return this.convertNode(elem, calculator);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else if (elem instanceof Node) {
|
|
71
|
-
return this.convertNode(elem, calculator);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
throw new Error("Cannot handle " + elem);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* @param {Node} node
|
|
79
|
-
*/
|
|
80
|
-
MerkleProofTreeFactory.prototype.convertNode = function (node, calculator) {
|
|
81
|
-
var left = this.buildFromBinaryTreeInternal(node.left, calculator);
|
|
82
|
-
var right = this.buildFromBinaryTreeInternal(node.right, calculator);
|
|
83
|
-
if (left instanceof ProofHashedLeaf && right instanceof ProofHashedLeaf) {
|
|
84
|
-
var addedHash = calculator.calculateNodeHash(node.getPrefixByte(), left.merkleHash, right.merkleHash);
|
|
85
|
-
return new ProofHashedLeaf(addedHash);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
return this.buildNodeOfCorrectType(node, left, right);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* @param {ArrayHeadNode} node
|
|
93
|
-
*/
|
|
94
|
-
MerkleProofTreeFactory.prototype.extractSearchablePathElement = function (node) {
|
|
95
|
-
var pathElem = node.pathElem;
|
|
96
|
-
if (pathElem != null) {
|
|
97
|
-
return pathElem.previous;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* @param {Node} node
|
|
105
|
-
* @param {MerkleProofElement} left
|
|
106
|
-
* @param {MerkleProofElement} right
|
|
107
|
-
*/
|
|
108
|
-
MerkleProofTreeFactory.prototype.buildNodeOfCorrectType = function (node, left, right) {
|
|
109
|
-
if (node instanceof ArrayHeadNode) {
|
|
110
|
-
return new ProofNodeArrayHead(left, right, this.extractSearchablePathElement(node));
|
|
111
|
-
}
|
|
112
|
-
else if (node instanceof DictHeadNode) {
|
|
113
|
-
return new ProofNodeDictHead(left, right, this.extractSearchablePathElement(node));
|
|
114
|
-
}
|
|
115
|
-
else if (node instanceof Node) {
|
|
116
|
-
return new ProofNodeSimple(left, right);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
throw new Error("Should have taken care of this node type: " + node);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
module.exports = { MerkleProofTreeFactory };
|
|
123
|
-
//# sourceMappingURL=merkleprooftreefactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merkleprooftreefactory.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merkleprooftreefactory.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/merkle/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
import { hash256 } from "../../../../src/encryption/encryption";
|
|
3
|
-
import { calculateRoot, merklePath, validateMerklePath } from "../../../../src/merkle/merkleHelper";
|
|
4
|
-
function merkleRoot(stringList) {
|
|
5
|
-
return calculateRoot(hashList(stringList));
|
|
6
|
-
}
|
|
7
|
-
function stringToHash(string) {
|
|
8
|
-
return hash256(Buffer.from(string));
|
|
9
|
-
}
|
|
10
|
-
function hashList(stringList) {
|
|
11
|
-
return stringList.map(stringToHash);
|
|
12
|
-
}
|
|
13
|
-
function checkDifferent(list1, list2) {
|
|
14
|
-
const root1 = merkleRoot(list1);
|
|
15
|
-
const root2 = merkleRoot(list2);
|
|
16
|
-
expect(root1.equals(root2)).toBeFalsy();
|
|
17
|
-
}
|
|
18
|
-
function testPath(stringList, stringToProve) {
|
|
19
|
-
const path = merklePath(hashList(stringList), stringToHash(stringToProve));
|
|
20
|
-
expect(validateMerklePath(path, stringToHash(stringToProve), merkleRoot(stringList))).toBeTruthy();
|
|
21
|
-
}
|
|
22
|
-
const a = ["a"];
|
|
23
|
-
const aa = ["a", "a"];
|
|
24
|
-
const abcde = ["a", "b", "c", "d", "e"];
|
|
25
|
-
const abcdee = ["a", "b", "c", "d", "e", "e"];
|
|
26
|
-
const abcdef = ["a", "b", "c", "d", "e", "f"];
|
|
27
|
-
const abcdefef = ["a", "b", "c", "d", "e", "f", "e", "f"];
|
|
28
|
-
describe("MerkleHelper", function () {
|
|
29
|
-
it("merkle root of empty list is 32 0s", () => {
|
|
30
|
-
expect(merkleRoot([]).equals(Buffer.alloc(32))).toBeTruthy();
|
|
31
|
-
});
|
|
32
|
-
it("merkle root of single element", () => {
|
|
33
|
-
expect(merkleRoot(a).equals(stringToHash("a"))).toBeTruthy();
|
|
34
|
-
});
|
|
35
|
-
it("merkle root collisions", function () {
|
|
36
|
-
checkDifferent(a, aa);
|
|
37
|
-
checkDifferent(abcde, abcdee);
|
|
38
|
-
checkDifferent(abcdef, abcdefef);
|
|
39
|
-
});
|
|
40
|
-
it("merkle proof throws on empty list", () => {
|
|
41
|
-
assert.throws(() => {
|
|
42
|
-
merklePath([], stringToHash("a"));
|
|
43
|
-
}, Error);
|
|
44
|
-
});
|
|
45
|
-
it("merkle proof throws if tx not exist in list", () => {
|
|
46
|
-
assert.throws(() => {
|
|
47
|
-
merklePath(hashList(abcdee), stringToHash("f"));
|
|
48
|
-
}, Error);
|
|
49
|
-
});
|
|
50
|
-
it("merkle proof structure", () => {
|
|
51
|
-
const path = merklePath(hashList(abcde), stringToHash("e"));
|
|
52
|
-
assert.equal(path.length, 3);
|
|
53
|
-
assert.equal(path[0].side, 1); // right
|
|
54
|
-
assert.equal(path[1].side, 1); // right
|
|
55
|
-
assert.equal(path[2].side, 0); // left
|
|
56
|
-
expect(validateMerklePath(path, stringToHash("e"), merkleRoot(abcde))).toBeTruthy();
|
|
57
|
-
expect(validateMerklePath(path, stringToHash("c"), merkleRoot(abcde))).toBeFalsy();
|
|
58
|
-
});
|
|
59
|
-
it("merkle proof structure fails without hashes", () => {
|
|
60
|
-
assert.throws(() => merklePath([], stringToHash("e")), Error);
|
|
61
|
-
});
|
|
62
|
-
it("merkle path to size 20", () => {
|
|
63
|
-
const txs = [];
|
|
64
|
-
for (let i = 1; i < 20; i++) {
|
|
65
|
-
txs.push(`${i}`);
|
|
66
|
-
for (let j = 1; j <= i; j++) {
|
|
67
|
-
testPath(txs, `${j}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}, 400000);
|
|
71
|
-
it("dummy", () => {
|
|
72
|
-
testPath(["1", "2", "3"], "1");
|
|
73
|
-
});
|
|
74
|
-
it("merkle path negative test wrong side", () => {
|
|
75
|
-
const path = merklePath(hashList(abcde), stringToHash("d"));
|
|
76
|
-
path[1].side = 1; // Flip side of one path component
|
|
77
|
-
expect(validateMerklePath(path, stringToHash("d"), merkleRoot(abcde))).toBeFalsy();
|
|
78
|
-
});
|
|
79
|
-
it("merkle path negative test wrong hash", () => {
|
|
80
|
-
const path = merklePath(hashList(abcde), stringToHash("d"));
|
|
81
|
-
path[2].hash = stringToHash("invalid"); // wrong hash
|
|
82
|
-
expect(validateMerklePath(path, stringToHash("d"), merkleRoot(abcde))).toBeFalsy();
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=merkleHelperTest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merkleHelperTest.js","sourceRoot":"","sources":["../../../../../test/unit/merkle/merkleHelper/merkleHelperTest.ts"],"names":[],"mappings":"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"}
|
/package/built/test/{unit/merkle/merkleHelper/merkleHelperTest.d.ts → pcctf/getSuites.test.d.ts}
RENAMED
|
File without changes
|