postchain-client 1.0.2 → 1.1.0

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.
Files changed (98) hide show
  1. package/README.md +30 -49
  2. package/built/cjs/index.js +2571 -0
  3. package/built/cjs/index.js.map +1 -0
  4. package/built/esm/index.js +29927 -0
  5. package/built/esm/index.js.map +1 -0
  6. package/built/index.js +21 -3
  7. package/built/index.js.map +1 -0
  8. package/built/src/chromia/chromiaClientProvider.js +35 -0
  9. package/built/src/chromia/chromiaClientProvider.js.map +1 -0
  10. package/built/src/chromia/errors.js +6 -0
  11. package/built/src/chromia/errors.js.map +1 -0
  12. package/built/src/chromia/interfaces.js +2 -0
  13. package/built/src/chromia/interfaces.js.map +1 -0
  14. package/built/src/encryption/encryption.js +105 -0
  15. package/built/src/encryption/encryption.js.map +1 -0
  16. package/built/src/encryption/errors.js +11 -0
  17. package/built/src/encryption/errors.js.map +1 -0
  18. package/built/src/encryption/types.js +2 -0
  19. package/built/src/encryption/types.js.map +1 -0
  20. package/built/src/formatter.d.ts +2 -0
  21. package/built/src/formatter.js +119 -0
  22. package/built/src/formatter.js.map +1 -0
  23. package/built/src/gtv/definition.js +20 -0
  24. package/built/src/gtv/definition.js.map +1 -0
  25. package/built/src/gtv/index.d.ts +1 -0
  26. package/built/src/gtv/index.js +11 -0
  27. package/built/src/gtv/index.js.map +1 -0
  28. package/built/src/gtv/types.d.ts +2 -3
  29. package/built/src/gtv/types.js +2 -0
  30. package/built/src/gtv/types.js.map +1 -0
  31. package/built/src/gtx/errors.js +26 -0
  32. package/built/src/gtx/errors.js.map +1 -0
  33. package/built/src/gtx/gtx.d.ts +1 -1
  34. package/built/src/gtx/gtx.js +115 -0
  35. package/built/src/gtx/gtx.js.map +1 -0
  36. package/built/src/gtx/gtxclient.js +77 -0
  37. package/built/src/gtx/gtxclient.js.map +1 -0
  38. package/built/src/gtx/index.js +5 -0
  39. package/built/src/gtx/index.js.map +1 -0
  40. package/built/src/gtx/interfaces.js +2 -0
  41. package/built/src/gtx/interfaces.js.map +1 -0
  42. package/built/src/gtx/serialization.d.ts +3 -2
  43. package/built/src/gtx/serialization.js +95 -0
  44. package/built/src/gtx/serialization.js.map +1 -0
  45. package/built/src/gtx/types.d.ts +10 -1
  46. package/built/src/gtx/types.js +2 -0
  47. package/built/src/gtx/types.js.map +1 -0
  48. package/built/src/logger.d.ts +2 -1
  49. package/built/src/logger.js +53 -0
  50. package/built/src/logger.js.map +1 -0
  51. package/built/src/merkle/binarytree.d.ts +137 -0
  52. package/built/src/merkle/binarytree.js +146 -0
  53. package/built/src/merkle/binarytree.js.map +1 -0
  54. package/built/src/merkle/binarytreefactory.d.ts +86 -0
  55. package/built/src/merkle/binarytreefactory.js +235 -0
  56. package/built/src/merkle/binarytreefactory.js.map +1 -0
  57. package/built/src/merkle/merkleHelper.js +109 -0
  58. package/built/src/merkle/merkleHelper.js.map +1 -0
  59. package/built/src/merkle/merklehashcalculator.d.ts +35 -0
  60. package/built/src/merkle/merklehashcalculator.js +71 -0
  61. package/built/src/merkle/merklehashcalculator.js.map +1 -0
  62. package/built/src/merkle/path.d.ts +155 -0
  63. package/built/src/merkle/path.js +306 -0
  64. package/built/src/merkle/path.js.map +1 -0
  65. package/built/src/merkle/proof/merklehashcarrier.d.ts +17 -0
  66. package/built/src/merkle/proof/merklehashcarrier.js +23 -0
  67. package/built/src/merkle/proof/merklehashcarrier.js.map +1 -0
  68. package/built/src/merkle/proof/merklehashsummaryfactory.d.ts +53 -0
  69. package/built/src/merkle/proof/merklehashsummaryfactory.js +81 -0
  70. package/built/src/merkle/proof/merklehashsummaryfactory.js.map +1 -0
  71. package/built/src/merkle/proof/merkleproof.d.ts +35 -0
  72. package/built/src/merkle/proof/merkleproof.js +59 -0
  73. package/built/src/merkle/proof/merkleproof.js.map +1 -0
  74. package/built/src/merkle/proof/merkleprooftree.d.ts +130 -0
  75. package/built/src/merkle/proof/merkleprooftree.js +116 -0
  76. package/built/src/merkle/proof/merkleprooftree.js.map +1 -0
  77. package/built/src/merkle/proof/merkleprooftreefactory.d.ts +47 -0
  78. package/built/src/merkle/proof/merkleprooftreefactory.js +121 -0
  79. package/built/src/merkle/proof/merkleprooftreefactory.js.map +1 -0
  80. package/built/src/merkle/types.js +2 -0
  81. package/built/src/merkle/types.js.map +1 -0
  82. package/built/src/restclient/errors.js +54 -0
  83. package/built/src/restclient/errors.js.map +1 -0
  84. package/built/src/restclient/interfaces.d.ts +2 -1
  85. package/built/src/restclient/interfaces.js +2 -0
  86. package/built/src/restclient/interfaces.js.map +1 -0
  87. package/built/src/restclient/restclient.js +309 -0
  88. package/built/src/restclient/restclient.js.map +1 -0
  89. package/built/src/restclient/restclientutil.d.ts +4 -0
  90. package/built/src/restclient/restclientutil.js +137 -0
  91. package/built/src/restclient/restclientutil.js.map +1 -0
  92. package/built/src/restclient/types.d.ts +4 -0
  93. package/built/src/restclient/types.js +13 -0
  94. package/built/src/restclient/types.js.map +1 -0
  95. package/built/umd/index.js +29931 -0
  96. package/built/umd/index.js.map +1 -0
  97. package/package.json +30 -17
  98. package/built/index.js.LICENSE.txt +0 -657
@@ -0,0 +1,130 @@
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
+ constructor: typeof ProofNode;
20
+ }
21
+ /**
22
+ *
23
+ * @param {MerkleProofElement} left
24
+ * @param {MerkleProofElement} right
25
+ */
26
+ export function ProofNodeSimple(left: typeof MerkleProofElement, right: typeof MerkleProofElement): void;
27
+ export class ProofNodeSimple {
28
+ /**
29
+ *
30
+ * @param {MerkleProofElement} left
31
+ * @param {MerkleProofElement} right
32
+ */
33
+ constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement);
34
+ constructor: typeof ProofNodeSimple;
35
+ }
36
+ /**
37
+ *
38
+ * @param {Buffer} merkleHash
39
+ */
40
+ export function ProofHashedLeaf(merkleHash: Buffer): void;
41
+ export class ProofHashedLeaf {
42
+ /**
43
+ *
44
+ * @param {Buffer} merkleHash
45
+ */
46
+ constructor(merkleHash: Buffer);
47
+ merkleHash: Buffer;
48
+ constructor: typeof ProofHashedLeaf;
49
+ /**
50
+ * @param {ProofHashedLeaf} other
51
+ */
52
+ equals(other: ProofHashedLeaf): boolean;
53
+ }
54
+ /**
55
+ *
56
+ * @param {*} content
57
+ * @param {SearchablePathElement} pathElem
58
+ */
59
+ export function ProofValueLeaf(content: any, pathElem: SearchablePathElement): void;
60
+ export class ProofValueLeaf {
61
+ /**
62
+ *
63
+ * @param {*} content
64
+ * @param {SearchablePathElement} pathElem
65
+ */
66
+ constructor(content: any, pathElem: SearchablePathElement);
67
+ content: any;
68
+ pathElem: SearchablePathElement;
69
+ constructor: typeof ProofValueLeaf;
70
+ }
71
+ /**
72
+ *
73
+ * @param {MerkleProofElement} left
74
+ * @param {MerkleProofElement} right
75
+ * @param {SearchablePathElement} pathElem
76
+ */
77
+ export function ProofNodeArrayHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
78
+ export class ProofNodeArrayHead {
79
+ /**
80
+ *
81
+ * @param {MerkleProofElement} left
82
+ * @param {MerkleProofElement} right
83
+ * @param {SearchablePathElement} pathElem
84
+ */
85
+ constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
86
+ pathElem: SearchablePathElement;
87
+ constructor: typeof ProofNodeArrayHead;
88
+ }
89
+ /**
90
+ *
91
+ * @param {MerkleProofElement} left
92
+ * @param {MerkleProofElement} right
93
+ * @param {SearchablePathElement} pathElem
94
+ */
95
+ export function ProofNodeDictHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
96
+ export class ProofNodeDictHead {
97
+ /**
98
+ *
99
+ * @param {MerkleProofElement} left
100
+ * @param {MerkleProofElement} right
101
+ * @param {SearchablePathElement} pathElem
102
+ */
103
+ constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
104
+ pathElem: SearchablePathElement;
105
+ constructor: typeof ProofNodeDictHead;
106
+ }
107
+ /**
108
+ *
109
+ */
110
+ export function MerkleProofElement(): void;
111
+ /**
112
+ *
113
+ * @param {MerkleProofElement} root
114
+ */
115
+ export function MerkleProofTree(root: typeof MerkleProofElement): void;
116
+ export class MerkleProofTree {
117
+ /**
118
+ *
119
+ * @param {MerkleProofElement} root
120
+ */
121
+ constructor(root: typeof MerkleProofElement);
122
+ root: typeof MerkleProofElement;
123
+ maxLevel(): any;
124
+ /**
125
+ * @param {MerkleProofElement} node
126
+ */
127
+ maxLevelInternal(node: typeof MerkleProofElement): any;
128
+ }
129
+ import SearchablePathElement_1 = require("../path");
130
+ import SearchablePathElement = SearchablePathElement_1.SearchablePathElement;
@@ -0,0 +1,116 @@
1
+ var SearchablePathElement = require('../path').SearchablePathElement;
2
+ var HASH_PREFIX_NODE = require('../binarytree').HASH_PREFIX_NODE;
3
+ var HASH_PREFIX_NODE_ARRAY = require('../binarytree').HASH_PREFIX_NODE_ARRAY;
4
+ var HASH_PREFIX_NODE_DICT = require('../binarytree').HASH_PREFIX_NODE_DICT;
5
+ /**
6
+ *
7
+ */
8
+ function MerkleProofElement() { }
9
+ /**
10
+ *
11
+ * @param {Buffer} prefix
12
+ * @param {MerkleProofElement} left
13
+ * @param {MerkleProofElement} right
14
+ */
15
+ function ProofNode(prefix, left, right) {
16
+ this.prefix = prefix;
17
+ this.left = left;
18
+ this.right = right;
19
+ }
20
+ ProofNode.prototype = Object.create(MerkleProofElement.prototype);
21
+ ProofNode.prototype.constructor = ProofNode;
22
+ /**
23
+ *
24
+ * @param {MerkleProofElement} left
25
+ * @param {MerkleProofElement} right
26
+ */
27
+ function ProofNodeSimple(left, right) {
28
+ ProofNode.call(this, HASH_PREFIX_NODE, left, right);
29
+ }
30
+ ProofNodeSimple.prototype = Object.create(ProofNode.prototype);
31
+ ProofNodeSimple.prototype.constructor = ProofNodeSimple;
32
+ /**
33
+ *
34
+ * @param {*} content
35
+ * @param {SearchablePathElement} pathElem
36
+ */
37
+ function ProofValueLeaf(content, pathElem) {
38
+ this.content = content;
39
+ this.pathElem = pathElem;
40
+ }
41
+ ProofValueLeaf.prototype = Object.create(MerkleProofElement.prototype);
42
+ ProofValueLeaf.prototype.constructor = ProofValueLeaf;
43
+ /**
44
+ *
45
+ * @param {Buffer} merkleHash
46
+ */
47
+ function ProofHashedLeaf(merkleHash) {
48
+ this.merkleHash = merkleHash;
49
+ }
50
+ ProofHashedLeaf.prototype = Object.create(MerkleProofElement.prototype);
51
+ ProofHashedLeaf.prototype.constructor = ProofHashedLeaf;
52
+ /**
53
+ * @param {ProofHashedLeaf} other
54
+ */
55
+ ProofHashedLeaf.prototype.equals = function (other) {
56
+ if (other instanceof ProofHashedLeaf) {
57
+ return this.merkleHash.equals(other.merkleHash);
58
+ }
59
+ else {
60
+ return false;
61
+ }
62
+ };
63
+ /**
64
+ *
65
+ * @param {MerkleProofElement} left
66
+ * @param {MerkleProofElement} right
67
+ * @param {SearchablePathElement} pathElem
68
+ */
69
+ function ProofNodeArrayHead(left, right, pathElem = null) {
70
+ ProofNode.call(this, HASH_PREFIX_NODE_ARRAY, left, right);
71
+ this.pathElem = pathElem;
72
+ }
73
+ ProofNodeArrayHead.prototype = Object.create(ProofNode.prototype);
74
+ ProofNodeArrayHead.prototype.constructor = ProofNodeArrayHead;
75
+ /**
76
+ *
77
+ * @param {MerkleProofElement} left
78
+ * @param {MerkleProofElement} right
79
+ * @param {SearchablePathElement} pathElem
80
+ */
81
+ function ProofNodeDictHead(left, right, pathElem = null) {
82
+ ProofNode.call(this, HASH_PREFIX_NODE_DICT, left, right);
83
+ this.pathElem = pathElem;
84
+ }
85
+ ProofNodeDictHead.prototype = Object.create(ProofNode.prototype);
86
+ ProofNodeDictHead.prototype.constructor = ProofNodeDictHead;
87
+ /**
88
+ *
89
+ * @param {MerkleProofElement} root
90
+ */
91
+ function MerkleProofTree(root) {
92
+ this.root = root;
93
+ }
94
+ MerkleProofTree.prototype.maxLevel = function () {
95
+ return this.maxLevelInternal(this.root);
96
+ };
97
+ /**
98
+ * @param {MerkleProofElement} node
99
+ */
100
+ MerkleProofTree.prototype.maxLevelInternal = function (node) {
101
+ if (node instanceof ProofValueLeaf) {
102
+ return 1;
103
+ }
104
+ else if (node instanceof ProofHashedLeaf) {
105
+ return 1;
106
+ }
107
+ else if (node instanceof ProofNode) {
108
+ return Math.max(this.maxLevelInternal(node.left), this.maxLevelInternal(node.right)) + 1;
109
+ }
110
+ else {
111
+ throw new Error("Should be able to handle node type: " + typeof node);
112
+ }
113
+ };
114
+ module.exports = { ProofNode, ProofNodeSimple, ProofHashedLeaf, ProofValueLeaf,
115
+ ProofNodeArrayHead, ProofNodeDictHead, MerkleProofElement, MerkleProofTree };
116
+ //# sourceMappingURL=merkleprooftree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkleprooftree.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merkleprooftree.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ *
3
+ */
4
+ export function MerkleProofTreeFactory(): void;
5
+ export class MerkleProofTreeFactory {
6
+ /**
7
+ * @param {BinaryTree} orginalTree
8
+ */
9
+ buildFromBinaryTree(orginalTree: 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;
@@ -0,0 +1,121 @@
1
+ var BinaryTreeElement = require('../binarytree').BinaryTreeElement;
2
+ var Node = require('../binarytree').Node;
3
+ var Leaf = require('../binarytree').Leaf;
4
+ var EmptyLeaf = require('../binarytree').EmptyLeaf;
5
+ var BinaryTree = require('../binarytree').BinaryTree;
6
+ var ProofHashedLeaf = require('./merkleprooftree').ProofHashedLeaf;
7
+ var ProofValueLeaf = require('./merkleprooftree').ProofValueLeaf;
8
+ var MerkleProofElement = require('./merkleprooftree').MerkleProofElement;
9
+ var MerkleProofTree = require('./merkleprooftree').MerkleProofTree;
10
+ var ProofNodeArrayHead = require('./merkleprooftree').ProofNodeArrayHead;
11
+ var ProofNodeDictHead = require('./merkleprooftree').ProofNodeDictHead;
12
+ var PathLeafElement = require('../path').PathLeafElement;
13
+ var SubTreeRootNode = require('../binarytree').SubTreeRootNode;
14
+ var ArrayHeadNode = require('../binarytree').ArrayHeadNode;
15
+ var DictHeadNode = require('../binarytree').DictHeadNode;
16
+ var ProofNodeSimple = require('./merkleprooftree').ProofNodeSimple;
17
+ const EMPTY_HASH = new Buffer.alloc(32);
18
+ /**
19
+ *
20
+ */
21
+ function MerkleProofTreeFactory() { }
22
+ /**
23
+ * @param {BinaryTree} orginalTree
24
+ */
25
+ MerkleProofTreeFactory.prototype.buildFromBinaryTree = function (orginalTree, calculator) {
26
+ var rootElem = this.buildFromBinaryTreeInternal(orginalTree.root, calculator);
27
+ return new MerkleProofTree(rootElem);
28
+ };
29
+ /**
30
+ * @param {BinaryTreeElement} elem
31
+ * @param {*} calculator
32
+ */
33
+ MerkleProofTreeFactory.prototype.buildFromBinaryTreeInternal = function (elem, calculator) {
34
+ if (elem instanceof EmptyLeaf) {
35
+ return new ProofHashedLeaf(EMPTY_HASH);
36
+ }
37
+ else if (elem instanceof Leaf) {
38
+ var pathElem = elem.pathElem;
39
+ if (pathElem != null) {
40
+ if (pathElem instanceof PathLeafElement) {
41
+ return new ProofValueLeaf(elem.content, pathElem.previous);
42
+ }
43
+ else {
44
+ throw new Error("The path and structure don't match. We are at a leaf, but path elem is not a leaf: " + pathElem);
45
+ }
46
+ }
47
+ else {
48
+ // make a hash
49
+ var hash = calculator.calculateLeafHash(elem.content);
50
+ return new ProofHashedLeaf(hash);
51
+ }
52
+ }
53
+ else if (elem instanceof SubTreeRootNode) {
54
+ var pathElem = elem.pathElem;
55
+ if (pathElem != null) {
56
+ if (pathElem instanceof PathLeafElement) {
57
+ // Don't convert it
58
+ return new ProofValueLeaf(elem.content, pathElem.previous);
59
+ }
60
+ else {
61
+ return this.convertNode(elem, calculator);
62
+ }
63
+ }
64
+ else {
65
+ return this.convertNode(elem, calculator);
66
+ }
67
+ }
68
+ else if (elem instanceof Node) {
69
+ return this.convertNode(elem, calculator);
70
+ }
71
+ else {
72
+ throw new Error("Cannot handle " + elem);
73
+ }
74
+ };
75
+ /**
76
+ * @param {Node} node
77
+ */
78
+ MerkleProofTreeFactory.prototype.convertNode = function (node, calculator) {
79
+ var left = this.buildFromBinaryTreeInternal(node.left, calculator);
80
+ var right = this.buildFromBinaryTreeInternal(node.right, calculator);
81
+ if (left instanceof ProofHashedLeaf && right instanceof ProofHashedLeaf) {
82
+ var addedHash = calculator.calculateNodeHash(node.getPrefixByte(), left.merkleHash, right.merkleHash);
83
+ return new ProofHashedLeaf(addedHash);
84
+ }
85
+ else {
86
+ return this.buildNodeOfCorrectType(node, left, right);
87
+ }
88
+ };
89
+ /**
90
+ * @param {ArrayHeadNode} node
91
+ */
92
+ MerkleProofTreeFactory.prototype.extractSearchablePathElement = function (node) {
93
+ var pathElem = node.pathElem;
94
+ if (pathElem != null) {
95
+ return pathElem.previous;
96
+ }
97
+ else {
98
+ return null;
99
+ }
100
+ };
101
+ /**
102
+ * @param {Node} node
103
+ * @param {MerkleProofElement} left
104
+ * @param {MerkleProofElement} right
105
+ */
106
+ MerkleProofTreeFactory.prototype.buildNodeOfCorrectType = function (node, left, right) {
107
+ if (node instanceof ArrayHeadNode) {
108
+ return new ProofNodeArrayHead(left, right, this.extractSearchablePathElement(node));
109
+ }
110
+ else if (node instanceof DictHeadNode) {
111
+ return new ProofNodeDictHead(left, right, this.extractSearchablePathElement(node));
112
+ }
113
+ else if (node instanceof Node) {
114
+ return new ProofNodeSimple(left, right);
115
+ }
116
+ else {
117
+ throw new Error("Should have taken care of this node type: " + node);
118
+ }
119
+ };
120
+ module.exports = { MerkleProofTreeFactory };
121
+ //# sourceMappingURL=merkleprooftreefactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkleprooftreefactory.js","sourceRoot":"","sources":["../../../../src/merkle/proof/merkleprooftreefactory.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/merkle/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ export class TxRejectedError extends Error {
2
+ constructor(rejectReason) {
3
+ super("Transaction was rejected");
4
+ this.name = "TxRejectedError";
5
+ this.fullReason = rejectReason;
6
+ const parsed = rejectReason.match(/^\[(.+)\] Operation '(.+)' failed: (.+)$/);
7
+ if (parsed) {
8
+ this.shortReason = parsed[3];
9
+ this.rellLine = parsed[1];
10
+ this.operation = parsed[2];
11
+ }
12
+ }
13
+ }
14
+ export class UnexpectedStatusError extends Error {
15
+ constructor(status) {
16
+ super(`Unexpected status code from server: ${status}`);
17
+ }
18
+ }
19
+ export class LostMessageError extends Error {
20
+ constructor() {
21
+ super(`Server lost our message`);
22
+ }
23
+ }
24
+ export class UnexpectedResponseError extends Error {
25
+ constructor() {
26
+ super(`got unexpected response from server`);
27
+ }
28
+ }
29
+ export class UnvalidTxRidException extends Error {
30
+ constructor(txRID) {
31
+ super(`expected length 32 of txRID, but got ${txRID.length}`);
32
+ }
33
+ }
34
+ export class SerializedTransactionFormatException extends Error {
35
+ constructor() {
36
+ super(`messageHash is not a Buffer`);
37
+ }
38
+ }
39
+ export class GetBridFromChainException extends Error {
40
+ constructor(chainId, reason) {
41
+ super(`Error resolving BRID for chainId ${chainId}, reason: ${reason}`);
42
+ }
43
+ }
44
+ export class EmptyListOfUrlsException extends Error {
45
+ constructor() {
46
+ super(`Failed to initialize rest client with empty list of urls`);
47
+ }
48
+ }
49
+ export class InvalidBlochchainRIDException extends Error {
50
+ constructor() {
51
+ super(`Failed to initialize rest client with blockchain RID that is not 32 bytes`);
52
+ }
53
+ }
54
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/restclient/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAOxC,YAAY,YAAoB;QAC9B,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAC/B,0CAA0C,CAC3C,CAAC;QACF,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SAC5B;IACH,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAc;QACxB,KAAK,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,KAAa;QACvB,KAAK,CAAC,wCAAwC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,OAAO,oCAAqC,SAAQ,KAAK;IAC7D;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,oCAAoC,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AACD,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD;QACE,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACpE,CAAC;CACF;AACD,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD;QACE,KAAK,CACH,2EAA2E,CAC5E,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ import { RawGtv } from "../gtv/types";
2
3
  import { QueryObject, ResponseObjectProof, RestClientConfig, StatusObject } from "./types";
3
4
  export interface RestClient {
4
5
  config: RestClientConfig;
@@ -6,7 +7,7 @@ export interface RestClient {
6
7
  postTransaction: (serializedTransaction: Buffer, callback: (error: Error, responseObject: any) => void) => void;
7
8
  getConfirmationProof: (txRID: Buffer, callback: (error: Error, responseObjectProof: ResponseObjectProof) => void) => void;
8
9
  status: (txRID: Buffer, callback: (error: Error, responseBody: StatusObject) => void) => void;
9
- query: (queryObject: QueryObject, callback?: (error: Error, messages: any) => void) => Promise<any>;
10
+ query: (queryObject: QueryObject, callback?: (error: Error, messages: any) => void) => Promise<RawGtv>;
10
11
  waitConfirmation: (txRID: Buffer) => Promise<null | Error>;
11
12
  postAndWaitConfirmation: (serializedTransaction: Buffer, txRID: Buffer, validate?: boolean) => Promise<null>;
12
13
  getEndpointPool: () => string[];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/restclient/interfaces.ts"],"names":[],"mappings":""}