postchain-client 2.0.0 → 2.0.1
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/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/changelog.md +0 -637
- /package/built/test/{unit/merkle/merkleHelper/merkleHelperTest.d.ts → pcctf/getSuites.test.d.ts} +0 -0
package/built/src/merkle/path.js
DELETED
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var util = require('../formatter');
|
|
3
|
-
function PathElement(previous) {
|
|
4
|
-
this.previous = previous;
|
|
5
|
-
}
|
|
6
|
-
PathElement.prototype.getSearchKey = function () { };
|
|
7
|
-
function PathLeafElement(previous) {
|
|
8
|
-
PathElement.call(this, previous);
|
|
9
|
-
}
|
|
10
|
-
PathLeafElement.prototype = Object.create(PathElement.prototype);
|
|
11
|
-
PathLeafElement.prototype.constructor = PathLeafElement;
|
|
12
|
-
PathLeafElement.prototype.equals = function (other) {
|
|
13
|
-
if (this === other)
|
|
14
|
-
return true;
|
|
15
|
-
if (typeof this !== typeof other)
|
|
16
|
-
return false;
|
|
17
|
-
return true;
|
|
18
|
-
};
|
|
19
|
-
function SearchablePathElement(previous) {
|
|
20
|
-
PathElement.call(this, previous);
|
|
21
|
-
}
|
|
22
|
-
SearchablePathElement.prototype = Object.create(PathElement.prototype);
|
|
23
|
-
SearchablePathElement.prototype.constructor = SearchablePathElement;
|
|
24
|
-
SearchablePathElement.prototype.getSearchKey = function () { };
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @param {SearchablePathElement} previous
|
|
28
|
-
* @param {number} index
|
|
29
|
-
*/
|
|
30
|
-
function ArrayPathElement(previous, index) {
|
|
31
|
-
SearchablePathElement.call(this, previous);
|
|
32
|
-
this.index = index;
|
|
33
|
-
}
|
|
34
|
-
ArrayPathElement.prototype = Object.create(SearchablePathElement.prototype);
|
|
35
|
-
ArrayPathElement.prototype.constructor = ArrayPathElement;
|
|
36
|
-
ArrayPathElement.prototype.getSearchKey = function () {
|
|
37
|
-
return this.index;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* @param {ArrayPathElement} other
|
|
41
|
-
*/
|
|
42
|
-
ArrayPathElement.prototype.equals = function (other) {
|
|
43
|
-
if (this === other)
|
|
44
|
-
return true;
|
|
45
|
-
if (typeof this !== typeof other)
|
|
46
|
-
return false;
|
|
47
|
-
if (this.index != other.index)
|
|
48
|
-
return false;
|
|
49
|
-
return true;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
* @param {SearchablePathElement} previous
|
|
54
|
-
* @param {string} key
|
|
55
|
-
*/
|
|
56
|
-
function DictPathElement(previous, key) {
|
|
57
|
-
SearchablePathElement.call(this, previous);
|
|
58
|
-
this.key = key;
|
|
59
|
-
}
|
|
60
|
-
DictPathElement.prototype = Object.create(SearchablePathElement.prototype);
|
|
61
|
-
DictPathElement.prototype.constructor = DictPathElement;
|
|
62
|
-
DictPathElement.prototype.getSearchKey = function () {
|
|
63
|
-
return this.key;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* @param {DictPathElement} other
|
|
67
|
-
*/
|
|
68
|
-
DictPathElement.prototype.equals = function (other) {
|
|
69
|
-
if (this === other)
|
|
70
|
-
return true;
|
|
71
|
-
if (typeof this !== typeof other)
|
|
72
|
-
return false;
|
|
73
|
-
if (this.key != other.key)
|
|
74
|
-
return false;
|
|
75
|
-
return true;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
* @param {Array} pathElements
|
|
80
|
-
*/
|
|
81
|
-
function Path(pathElements) {
|
|
82
|
-
this.pathElements = pathElements;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
*/
|
|
87
|
-
Path.prototype.getCurrentPathElement = function () {
|
|
88
|
-
return this.pathElements[0];
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
*
|
|
92
|
-
*/
|
|
93
|
-
Path.prototype.size = function () {
|
|
94
|
-
return this.pathElements.length;
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
*
|
|
98
|
-
*/
|
|
99
|
-
Path.prototype.tail = function () {
|
|
100
|
-
if (this.pathElements.length == 0) {
|
|
101
|
-
throw new Error("Impossible to tail this array");
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
var tail = this.pathElements.slice(1);
|
|
105
|
-
return new Path(tail);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
Path.prototype.debugString = function () {
|
|
109
|
-
var sb = "";
|
|
110
|
-
this.pathElements.forEach(elem => {
|
|
111
|
-
if (elem instanceof SearchablePathElement) {
|
|
112
|
-
sb = sb + "-> " + elem.getSearchKey();
|
|
113
|
-
}
|
|
114
|
-
else if (elem instanceof PathLeafElement) {
|
|
115
|
-
sb = sb + "-> Leaf";
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
return sb;
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* @param {Path} other
|
|
122
|
-
*/
|
|
123
|
-
Path.prototype.equals = function (other) {
|
|
124
|
-
if (this === other)
|
|
125
|
-
return true;
|
|
126
|
-
if (typeof this != typeof other)
|
|
127
|
-
return false;
|
|
128
|
-
return this.pathElements == other.pathElements;
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* @param {number} index
|
|
132
|
-
* @param {Path} path
|
|
133
|
-
*/
|
|
134
|
-
var getTailIfFirstElementIsArrayOfThisIndex = function (index, path) {
|
|
135
|
-
return getTail(index, path);
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
*
|
|
139
|
-
* @param {string} key
|
|
140
|
-
* @param {Path} path
|
|
141
|
-
*/
|
|
142
|
-
var getTailIfFirstElementIsDictOfThisKey = function (key, path) {
|
|
143
|
-
return getTail(key, path);
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
*
|
|
147
|
-
* @param {string|number} searchKey
|
|
148
|
-
* @param {Path} path
|
|
149
|
-
*/
|
|
150
|
-
var getTail = function (searchKey, path) {
|
|
151
|
-
if (searchKey === null) {
|
|
152
|
-
throw new Error("Have to provide a search key");
|
|
153
|
-
}
|
|
154
|
-
try {
|
|
155
|
-
var firstElement = path.pathElements[0];
|
|
156
|
-
if (firstElement instanceof SearchablePathElement) {
|
|
157
|
-
if (firstElement.getSearchKey() == searchKey) {
|
|
158
|
-
return path.tail();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
catch (err) {
|
|
163
|
-
util.logError("Why are we dropping first element of an empty path? " + err);
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
return null;
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
*
|
|
170
|
-
* @param {Array} paths
|
|
171
|
-
*/
|
|
172
|
-
function PathSet(paths) {
|
|
173
|
-
this.paths = paths;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
*
|
|
177
|
-
*/
|
|
178
|
-
PathSet.prototype.isEmpty = function () {
|
|
179
|
-
return this.paths.length == 0;
|
|
180
|
-
};
|
|
181
|
-
/**
|
|
182
|
-
*
|
|
183
|
-
*/
|
|
184
|
-
PathSet.prototype.getPathLeafOrElseAnyCurrentPathElement = function () {
|
|
185
|
-
var leafElem = null;
|
|
186
|
-
var currElem = null;
|
|
187
|
-
var prev = {
|
|
188
|
-
"path": null,
|
|
189
|
-
"elem": null,
|
|
190
|
-
};
|
|
191
|
-
this.paths.forEach(path => {
|
|
192
|
-
currElem = path.getCurrentPathElement();
|
|
193
|
-
if (currElem instanceof PathLeafElement) {
|
|
194
|
-
leafElem = currElem;
|
|
195
|
-
}
|
|
196
|
-
prev = this.errorCheckUnequalParent(path, currElem, prev.path, prev.elem);
|
|
197
|
-
});
|
|
198
|
-
if (leafElem != null) {
|
|
199
|
-
return leafElem;
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
return currElem; // It doesn't matter which one we return (Next step we will get the "previous" from this one)
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* Yeah, this might be a completely un-needed check (but it MIGHT save us later on if we forget this rule).
|
|
207
|
-
* What we are looking for here is an impossible state where two paths in the same set don't have the same parent.
|
|
208
|
-
* (Since we usually only have one path in a path set, this check should be cheap)
|
|
209
|
-
*
|
|
210
|
-
* @param {Path} currPath
|
|
211
|
-
* @param {PathElement} currElem
|
|
212
|
-
* @param {Path} prevPath
|
|
213
|
-
* @param {PathElement} prevElem
|
|
214
|
-
*/
|
|
215
|
-
PathSet.prototype.errorCheckUnequalParent = function (currPath, currElem, prevPath, prevElem) {
|
|
216
|
-
if (prevElem != null) {
|
|
217
|
-
// weird: javascript cannot compare null == null then we have to compare each with null separately :(
|
|
218
|
-
if (currElem.previous == null && prevElem.previous == null) {
|
|
219
|
-
return {
|
|
220
|
-
"path": currPath,
|
|
221
|
-
"elem": currElem
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
else if ((currElem.previous == null && prevElem.previous != null) || (currElem.previous != null && prevElem.previous == null)) {
|
|
225
|
-
throw new Error("Something is wrong, these paths do not have the same parent. (" + currPath + ") (" + prevPath + ")");
|
|
226
|
-
}
|
|
227
|
-
else if (!currElem.previous.equals(prevElem.previous)) {
|
|
228
|
-
throw new Error("Something is wrong, these paths do not have the same parent. (" + currPath + ") (" + prevPath + ")");
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return {
|
|
232
|
-
"path": currPath,
|
|
233
|
-
"elem": currElem
|
|
234
|
-
};
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
*
|
|
238
|
-
*/
|
|
239
|
-
PathSet.prototype.keepOnlyArrayPaths = function () {
|
|
240
|
-
var filteredPaths = this.paths.filter(path => {
|
|
241
|
-
return path.pathElements[0] instanceof ArrayPathElement;
|
|
242
|
-
});
|
|
243
|
-
return new PathSet(filteredPaths);
|
|
244
|
-
};
|
|
245
|
-
/**
|
|
246
|
-
*
|
|
247
|
-
*/
|
|
248
|
-
PathSet.prototype.keepOnlyDictPaths = function () {
|
|
249
|
-
var filteredPaths = this.paths.filter(path => {
|
|
250
|
-
return path.pathElements[0] instanceof DictPathElement;
|
|
251
|
-
});
|
|
252
|
-
return new PathSet(filteredPaths);
|
|
253
|
-
};
|
|
254
|
-
/**
|
|
255
|
-
*
|
|
256
|
-
*/
|
|
257
|
-
PathSet.prototype.getTailIfFirstElementIsArrayOfThisIndexFromList = function (index) {
|
|
258
|
-
return this.getTailFromList(index, getTailIfFirstElementIsArrayOfThisIndex);
|
|
259
|
-
};
|
|
260
|
-
/**
|
|
261
|
-
*
|
|
262
|
-
*/
|
|
263
|
-
PathSet.prototype.getTailIfFirstElementIsDictOfThisKeyFromList = function (key) {
|
|
264
|
-
return this.getTailFromList(key, getTailIfFirstElementIsDictOfThisKey);
|
|
265
|
-
};
|
|
266
|
-
/**
|
|
267
|
-
*
|
|
268
|
-
*/
|
|
269
|
-
PathSet.prototype.getTailFromList = function (searchKey, filterFunc) {
|
|
270
|
-
var retPaths = new Array();
|
|
271
|
-
this.paths.forEach(path => {
|
|
272
|
-
var newPath = filterFunc(searchKey, path);
|
|
273
|
-
if (newPath != null) {
|
|
274
|
-
retPaths.push(newPath);
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
return new PathSet(retPaths);
|
|
278
|
-
};
|
|
279
|
-
/**
|
|
280
|
-
*
|
|
281
|
-
* @param {Array} arr
|
|
282
|
-
*/
|
|
283
|
-
var buildPathFromArray = function (arr) {
|
|
284
|
-
var pathElements = new Array();
|
|
285
|
-
var lastPathElem = null;
|
|
286
|
-
arr.forEach(item => {
|
|
287
|
-
var newElem = null;
|
|
288
|
-
if (typeof item === 'number') {
|
|
289
|
-
newElem = new ArrayPathElement(lastPathElem, item);
|
|
290
|
-
}
|
|
291
|
-
else if (typeof item === 'string') {
|
|
292
|
-
newElem = new DictPathElement(lastPathElem, item);
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
throw new Error("A path structure must only consist of Ints and Strings, not " + item);
|
|
296
|
-
}
|
|
297
|
-
pathElements.push(newElem);
|
|
298
|
-
lastPathElem = newElem;
|
|
299
|
-
});
|
|
300
|
-
var lastOne = lastPathElem;
|
|
301
|
-
pathElements.push(new PathLeafElement(lastOne));
|
|
302
|
-
return new Path(pathElements);
|
|
303
|
-
};
|
|
304
|
-
module.exports = { Path, PathElement, PathLeafElement, ArrayPathElement, SearchablePathElement, DictPathElement, PathSet,
|
|
305
|
-
getTailIfFirstElementIsArrayOfThisIndex, buildPathFromArray };
|
|
306
|
-
//# sourceMappingURL=path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/merkle/path.js"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {Buffer} merkleHash
|
|
4
|
-
*/
|
|
5
|
-
export function MerkleHashSummary(merkleHash: Buffer): void;
|
|
6
|
-
export class MerkleHashSummary {
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param {Buffer} merkleHash
|
|
10
|
-
*/
|
|
11
|
-
constructor(merkleHash: Buffer);
|
|
12
|
-
merkleHash: Buffer;
|
|
13
|
-
/**
|
|
14
|
-
* @param {MerkleHashSummary} other
|
|
15
|
-
*/
|
|
16
|
-
equals(other: MerkleHashSummary): boolean;
|
|
17
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {Buffer} merkleHash
|
|
5
|
-
*/
|
|
6
|
-
function MerkleHashSummary(merkleHash) {
|
|
7
|
-
this.merkleHash = merkleHash;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* @param {MerkleHashSummary} other
|
|
11
|
-
*/
|
|
12
|
-
MerkleHashSummary.prototype.equals = function (other) {
|
|
13
|
-
if (this === other)
|
|
14
|
-
return true;
|
|
15
|
-
if (typeof this != typeof other)
|
|
16
|
-
return false;
|
|
17
|
-
if (this.merkleHash.compare(other.merkleHash) === 0) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
};
|
|
22
|
-
module.exports = { MerkleHashSummary };
|
|
23
|
-
//# sourceMappingURL=merklehashcarrier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merklehashcarrier.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merklehashcarrier.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;GAGG;AACH,SAAS,iBAAiB,CAAC,UAAU;IACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,KAAK;IACjD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAC/B,IAAI,OAAO,IAAI,IAAI,OAAO,KAAK;QAAE,OAAO,KAAK,CAAA;IAE7C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAGD,MAAM,CAAC,OAAO,GAAG,EAAC,iBAAiB,EAAC,CAAA"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {BinaryTreeFactory} treeFactory
|
|
4
|
-
* @param {MerkleProofTreeFactory} proofFactory
|
|
5
|
-
*/
|
|
6
|
-
export function MerkleHashSummaryFactory(treeFactory: BinaryTreeFactory, proofFactory: MerkleProofTreeFactory): void;
|
|
7
|
-
export class MerkleHashSummaryFactory {
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param {BinaryTreeFactory} treeFactory
|
|
11
|
-
* @param {MerkleProofTreeFactory} proofFactory
|
|
12
|
-
*/
|
|
13
|
-
constructor(treeFactory: BinaryTreeFactory, proofFactory: MerkleProofTreeFactory);
|
|
14
|
-
treeFactory: BinaryTreeFactory;
|
|
15
|
-
proofFactory: MerkleProofTreeFactory;
|
|
16
|
-
/**
|
|
17
|
-
* @param {any} value
|
|
18
|
-
* @param {MerkleHashCalculator} calculator
|
|
19
|
-
*/
|
|
20
|
-
calculateMerkleRoot(value: any, calculator: MerkleHashCalculator, merkleHashVersion: any): MerkleHashSummary;
|
|
21
|
-
/**
|
|
22
|
-
* @param {MerkleProofTree} value
|
|
23
|
-
* @param {MerkleHashCalculator} calculator
|
|
24
|
-
*/
|
|
25
|
-
calculateMerkleTreeRoot(tree: any, calculator: MerkleHashCalculator, merkleHashVersion: any): MerkleHashSummary;
|
|
26
|
-
/**
|
|
27
|
-
* @param {MerkleProofTree} proofTree
|
|
28
|
-
* @param {MerkleHashCalculator} calculator
|
|
29
|
-
*/
|
|
30
|
-
calculateMerkleRootOfTree(proofTree: MerkleProofTree, calculator: MerkleHashCalculator, merkleHashVersion: any): MerkleHashSummary;
|
|
31
|
-
/**
|
|
32
|
-
* @param {MerkleProofElement} currentElement
|
|
33
|
-
* @param {MerkleHashCalculator} calculator
|
|
34
|
-
*/
|
|
35
|
-
calculateMerkleRootInternal(currentElement: typeof MerkleProofElement, calculator: MerkleHashCalculator, merkleHashVersion: any): any;
|
|
36
|
-
/**
|
|
37
|
-
* @param {any} value
|
|
38
|
-
* @param {MerkleHashCalculator} calculator
|
|
39
|
-
*/
|
|
40
|
-
buildProofTree(value: any, calculator: MerkleHashCalculator, merkleHashVersion: any): MerkleProofTree;
|
|
41
|
-
}
|
|
42
|
-
import BinaryTreeFactory_1 = require("../binarytreefactory");
|
|
43
|
-
import BinaryTreeFactory = BinaryTreeFactory_1.BinaryTreeFactory;
|
|
44
|
-
import MerkleProofTreeFactory_1 = require("./merkleprooftreefactory");
|
|
45
|
-
import MerkleProofTreeFactory = MerkleProofTreeFactory_1.MerkleProofTreeFactory;
|
|
46
|
-
import MerkleHashCalculator_1 = require("../merklehashcalculator");
|
|
47
|
-
import MerkleHashCalculator = MerkleHashCalculator_1.MerkleHashCalculator;
|
|
48
|
-
import MerkleHashSummary_1 = require("./merklehashcarrier");
|
|
49
|
-
import MerkleHashSummary = MerkleHashSummary_1.MerkleHashSummary;
|
|
50
|
-
import MerkleProofTree_1 = require("./merkleprooftree");
|
|
51
|
-
import MerkleProofTree = MerkleProofTree_1.MerkleProofTree;
|
|
52
|
-
import MerkleProofElement_1 = require("./merkleprooftree");
|
|
53
|
-
import MerkleProofElement = MerkleProofElement_1.MerkleProofElement;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var BinaryTreeFactory = require('../binarytreefactory').BinaryTreeFactory;
|
|
3
|
-
var MerkleProofTreeFactory = require('./merkleprooftreefactory').MerkleProofTreeFactory;
|
|
4
|
-
var MerkleHashCalculator = require('../merklehashcalculator').MerkleHashCalculator;
|
|
5
|
-
var MerkleProofTree = require('./merkleprooftree').MerkleProofTree;
|
|
6
|
-
var MerkleProofElement = require('./merkleprooftree').MerkleProofElement;
|
|
7
|
-
var ProofHashedLeaf = require('./merkleprooftree').ProofHashedLeaf;
|
|
8
|
-
var ProofValueLeaf = require('./merkleprooftree').ProofValueLeaf;
|
|
9
|
-
var ProofNode = require('./merkleprooftree').ProofNode;
|
|
10
|
-
var MerkleHashSummary = require('./merklehashcarrier').MerkleHashSummary;
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param {BinaryTreeFactory} treeFactory
|
|
14
|
-
* @param {MerkleProofTreeFactory} proofFactory
|
|
15
|
-
*/
|
|
16
|
-
function MerkleHashSummaryFactory(treeFactory, proofFactory) {
|
|
17
|
-
this.treeFactory = treeFactory;
|
|
18
|
-
this.proofFactory = proofFactory;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @param {any} value
|
|
22
|
-
* @param {MerkleHashCalculator} calculator
|
|
23
|
-
*/
|
|
24
|
-
MerkleHashSummaryFactory.prototype.calculateMerkleRoot = function (value, calculator, merkleHashVersion) {
|
|
25
|
-
var binaryTree = this.treeFactory.build(value, merkleHashVersion);
|
|
26
|
-
var proofTree = this.proofFactory.buildFromBinaryTree(binaryTree, calculator);
|
|
27
|
-
return this.calculateMerkleRootOfTree(proofTree, calculator);
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @param {MerkleProofTree} value
|
|
31
|
-
* @param {MerkleHashCalculator} calculator
|
|
32
|
-
*/
|
|
33
|
-
MerkleHashSummaryFactory.prototype.calculateMerkleTreeRoot = function (tree, calculator, merkleHashVersion) {
|
|
34
|
-
return this.calculateMerkleRootOfTree(tree, calculator, merkleHashVersion);
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* @param {MerkleProofTree} proofTree
|
|
38
|
-
* @param {MerkleHashCalculator} calculator
|
|
39
|
-
*/
|
|
40
|
-
MerkleHashSummaryFactory.prototype.calculateMerkleRootOfTree = function (proofTree, calculator, merkleHashVersion) {
|
|
41
|
-
var calculatedSummary = this.calculateMerkleRootInternal(proofTree.root, calculator, merkleHashVersion);
|
|
42
|
-
return new MerkleHashSummary(calculatedSummary);
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* @param {MerkleProofElement} currentElement
|
|
46
|
-
* @param {MerkleHashCalculator} calculator
|
|
47
|
-
*/
|
|
48
|
-
MerkleHashSummaryFactory.prototype.calculateMerkleRootInternal = function (currentElement, calculator, merkleHashVersion) {
|
|
49
|
-
if (currentElement instanceof ProofHashedLeaf) {
|
|
50
|
-
return currentElement.merkleHash;
|
|
51
|
-
}
|
|
52
|
-
else if (currentElement instanceof ProofValueLeaf) {
|
|
53
|
-
var value = currentElement.content;
|
|
54
|
-
if (calculator.isContainerProofValueLeaf(value)) {
|
|
55
|
-
// We have a container value to prove, so need to convert the value to a binary tree, and THEN hash it
|
|
56
|
-
var merkleProofTree = this.buildProofTree(value, calculator, merkleHashVersion);
|
|
57
|
-
return this.calculateMerkleRootInternal(merkleProofTree.root, calculator, merkleHashVersion);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
// This is a primitive value, just hash it
|
|
61
|
-
return calculator.calculateLeafHash(value, merkleHashVersion);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else if (currentElement instanceof ProofNode) {
|
|
65
|
-
var left = this.calculateMerkleRootInternal(currentElement.left, calculator, merkleHashVersion);
|
|
66
|
-
var right = this.calculateMerkleRootInternal(currentElement.right, calculator, merkleHashVersion);
|
|
67
|
-
return calculator.calculateNodeHash(currentElement.prefix, left, right);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
throw new Error("Should have handled this type? " + typeof currentElement);
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* @param {any} value
|
|
75
|
-
* @param {MerkleHashCalculator} calculator
|
|
76
|
-
*/
|
|
77
|
-
MerkleHashSummaryFactory.prototype.buildProofTree = function (value, calculator, merkleHashVersion) {
|
|
78
|
-
var root = this.treeFactory.build(value, merkleHashVersion);
|
|
79
|
-
return this.proofFactory.buildFromBinaryTree(root, calculator);
|
|
80
|
-
};
|
|
81
|
-
module.exports = { MerkleHashSummaryFactory };
|
|
82
|
-
//# sourceMappingURL=merklehashsummaryfactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merklehashsummaryfactory.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merklehashsummaryfactory.js"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Calculates the merkle root hash of the structure.
|
|
3
|
-
*
|
|
4
|
-
* @param {any} value
|
|
5
|
-
* @param {MerkleHashCalculator} calculator describes the method we use for hashing and serialization
|
|
6
|
-
* @return the merkle root hash (32 bytes) of the data structure.
|
|
7
|
-
*/
|
|
8
|
-
export function merkleHash(value: any, calculator: MerkleHashCalculator, merkleHashVersion: any): Buffer;
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param {MerkleProofTree} tree
|
|
12
|
-
* @param {MerkleHashCalculator} calculator
|
|
13
|
-
*/
|
|
14
|
-
export function merkleTreeHash(tree: MerkleProofTree, calculator: MerkleHashCalculator, merkleHashVersion: any): Buffer;
|
|
15
|
-
/**
|
|
16
|
-
* Calculates the merkle root hash of the structure
|
|
17
|
-
*
|
|
18
|
-
* @param {any} value
|
|
19
|
-
* @param {MerkleHashCalculator} calculator describes the method we use for hashing and serialization
|
|
20
|
-
* @return the merkle root hash summary
|
|
21
|
-
*/
|
|
22
|
-
export function merkleHashSummary(value: any, calculator: MerkleHashCalculator, merkleHashVersion: any): import("./merklehashcarrier").MerkleHashSummary;
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
* @param {any} value
|
|
26
|
-
* @param {PathSet} pathSet
|
|
27
|
-
* @param {MerkleHashCalculator} calculator
|
|
28
|
-
* @param {number} merkleHashVersion
|
|
29
|
-
*/
|
|
30
|
-
export function generateProof(value: any, pathSet: PathSet, calculator: MerkleHashCalculator, merkleHashVersion: number): MerkleProofTree;
|
|
31
|
-
import MerkleHashCalculator_1 = require("../merklehashcalculator");
|
|
32
|
-
import MerkleHashCalculator = MerkleHashCalculator_1.MerkleHashCalculator;
|
|
33
|
-
import MerkleProofTree_1 = require("./merkleprooftree");
|
|
34
|
-
import MerkleProofTree = MerkleProofTree_1.MerkleProofTree;
|
|
35
|
-
import PathSet_1 = require("../path");
|
|
36
|
-
import PathSet = PathSet_1.PathSet;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var MerkleHashCalculator = require('../merklehashcalculator').MerkleHashCalculator;
|
|
3
|
-
var MerkleHashSummaryFactory = require('./merklehashsummaryfactory').MerkleHashSummaryFactory;
|
|
4
|
-
var BinaryTreeFactory = require('../binarytreefactory').BinaryTreeFactory;
|
|
5
|
-
var MerkleProofTreeFactory = require('./merkleprooftreefactory').MerkleProofTreeFactory;
|
|
6
|
-
var treeFactory = new BinaryTreeFactory();
|
|
7
|
-
var proofFactory = new MerkleProofTreeFactory();
|
|
8
|
-
var PathSet = require('../path').PathSet;
|
|
9
|
-
var MerkleProofTree = require('./merkleprooftree').MerkleProofTree;
|
|
10
|
-
/**
|
|
11
|
-
* Calculates the merkle root hash of the structure.
|
|
12
|
-
*
|
|
13
|
-
* @param {any} value
|
|
14
|
-
* @param {MerkleHashCalculator} calculator describes the method we use for hashing and serialization
|
|
15
|
-
* @return the merkle root hash (32 bytes) of the data structure.
|
|
16
|
-
*/
|
|
17
|
-
function merkleHash(value, calculator, merkleHashVersion) {
|
|
18
|
-
return merkleHashSummary(value, calculator, merkleHashVersion).merkleHash;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* @param {MerkleProofTree} tree
|
|
23
|
-
* @param {MerkleHashCalculator} calculator
|
|
24
|
-
*/
|
|
25
|
-
function merkleTreeHash(tree, calculator, merkleHashVersion) {
|
|
26
|
-
return merkleProofHashSummary(tree, calculator, merkleHashVersion).merkleHash;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Calculates the merkle root hash of the structure
|
|
30
|
-
*
|
|
31
|
-
* @param {any} value
|
|
32
|
-
* @param {MerkleHashCalculator} calculator describes the method we use for hashing and serialization
|
|
33
|
-
* @return the merkle root hash summary
|
|
34
|
-
*/
|
|
35
|
-
function merkleHashSummary(value, calculator, merkleHashVersion) {
|
|
36
|
-
var summaryFactory = new MerkleHashSummaryFactory(treeFactory, proofFactory);
|
|
37
|
-
return summaryFactory.calculateMerkleRoot(value, calculator, merkleHashVersion);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param {MerkleProofTree} tree
|
|
42
|
-
* @param {MerkleHashCalculator} calculator
|
|
43
|
-
* @param {number} merkleHashVersion
|
|
44
|
-
*/
|
|
45
|
-
function merkleProofHashSummary(tree, calculator, merkleHashVersion) {
|
|
46
|
-
var summaryFactory = new MerkleHashSummaryFactory(treeFactory, proofFactory);
|
|
47
|
-
return summaryFactory.calculateMerkleTreeRoot(tree, calculator, merkleHashVersion);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @param {any} value
|
|
52
|
-
* @param {PathSet} pathSet
|
|
53
|
-
* @param {MerkleHashCalculator} calculator
|
|
54
|
-
* @param {number} merkleHashVersion
|
|
55
|
-
*/
|
|
56
|
-
function generateProof(value, pathSet, calculator, merkleHashVersion) {
|
|
57
|
-
var binaryTree = treeFactory.buildWithPath(value, pathSet, merkleHashVersion);
|
|
58
|
-
return proofFactory.buildFromBinaryTree(binaryTree, calculator);
|
|
59
|
-
}
|
|
60
|
-
module.exports = { merkleHash, merkleTreeHash, merkleHashSummary, generateProof };
|
|
61
|
-
//# sourceMappingURL=merkleproof.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merkleproof.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merkleproof.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,IAAI,oBAAoB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAA;AAClF,IAAI,wBAAwB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,wBAAwB,CAAA;AAC7F,IAAI,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,iBAAiB,CAAA;AACzE,IAAI,sBAAsB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,sBAAsB,CAAA;AACvF,IAAI,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAA;AACzC,IAAI,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAA;AAC/C,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAA;AACxC,IAAI,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAA;AAElE;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB;IACtD,OAAO,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,UAAU,CAAA;AAC3E,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB;IACzD,OAAO,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,UAAU,CAAA;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB;IAC7D,IAAI,cAAc,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAC5E,OAAO,cAAc,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAA;AACjF,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB;IACjE,IAAI,cAAc,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAC5E,OAAO,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAA;AACpF,CAAC;AAED;;;;;;EAME;AACF,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB;IAClE,IAAI,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAC7E,OAAO,YAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAC,CAAA"}
|