@witnet/sdk 1.0.4 → 1.0.6

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 (213) hide show
  1. package/.env_witnet +6 -6
  2. package/LICENSE +21 -21
  3. package/README.md +103 -103
  4. package/dist/package.json +3 -4
  5. package/dist/src/bin/helpers.js +2 -2
  6. package/dist/src/index.js +1 -1
  7. package/dist/src/lib/crypto/account.d.ts +3 -1
  8. package/dist/src/lib/crypto/account.d.ts.map +1 -1
  9. package/dist/src/lib/crypto/account.js +7 -1
  10. package/dist/src/lib/crypto/coinbase.js +1 -1
  11. package/dist/src/lib/crypto/index.js +1 -1
  12. package/dist/src/lib/crypto/interfaces.d.ts +2 -0
  13. package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
  14. package/dist/src/lib/crypto/interfaces.js +1 -1
  15. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
  16. package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
  17. package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
  18. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
  19. package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
  20. package/dist/src/lib/crypto/payloads.js +12 -1
  21. package/dist/src/lib/crypto/signer.d.ts +1 -0
  22. package/dist/src/lib/crypto/signer.d.ts.map +1 -1
  23. package/dist/src/lib/crypto/signer.js +18 -1
  24. package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
  25. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
  26. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
  27. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
  28. package/dist/src/lib/crypto/transmitters.d.ts +1 -1
  29. package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
  30. package/dist/src/lib/crypto/transmitters.js +4 -4
  31. package/dist/src/lib/crypto/types.d.ts.map +1 -1
  32. package/dist/src/lib/crypto/types.js +2 -1
  33. package/dist/src/lib/crypto/utils.js +1 -1
  34. package/dist/src/lib/crypto/wallet.d.ts +3 -1
  35. package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
  36. package/dist/src/lib/crypto/wallet.js +10 -1
  37. package/dist/src/lib/index.js +1 -1
  38. package/dist/src/lib/radon/ccdr/eth.js +1 -1
  39. package/dist/src/lib/radon/ccdr/index.js +1 -1
  40. package/dist/src/lib/radon/ccdr/wit.js +1 -1
  41. package/dist/src/lib/radon/filters.js +1 -1
  42. package/dist/src/lib/radon/index.js +1 -1
  43. package/dist/src/lib/radon/reducers.js +1 -1
  44. package/dist/src/lib/radon/types.js +1 -1
  45. package/dist/src/lib/radon/utils.js +1 -1
  46. package/dist/src/lib/rpc/index.js +1 -1
  47. package/dist/src/lib/rpc/nodes.js +1 -1
  48. package/dist/src/lib/rpc/provider.js +1 -1
  49. package/dist/src/lib/rpc/types.d.ts +6 -4
  50. package/dist/src/lib/rpc/types.d.ts.map +1 -1
  51. package/dist/src/lib/rpc/types.js +1 -1
  52. package/dist/src/lib/types.d.ts +0 -1
  53. package/dist/src/lib/types.d.ts.map +1 -1
  54. package/dist/src/lib/types.js +1 -1
  55. package/dist/src/lib/utils.js +1 -1
  56. package/dist/witnet/assets/index.js +1 -1
  57. package/dist/witnet/assets/modals/index.js +1 -1
  58. package/dist/witnet/assets/modals/web3/eth.js +1 -1
  59. package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
  60. package/dist/witnet/assets/modals/web3/wit.js +1 -1
  61. package/dist/witnet/assets/requests.js +1 -1
  62. package/package.json +3 -4
  63. package/src/bin/cli/history.js +31 -31
  64. package/src/bin/cli/inspect.js +405 -405
  65. package/src/bin/cli/network.js +594 -594
  66. package/src/bin/cli/nodes.js +364 -364
  67. package/src/bin/cli/radon.js +817 -815
  68. package/src/bin/cli/wallet.js +1121 -1117
  69. package/src/bin/helpers.js +840 -840
  70. package/src/bin/postinstall.js +9 -9
  71. package/src/bin/toolkit.js +295 -295
  72. package/witnet/assets/_index.js +8 -8
  73. package/witnet/assets/_requests.js +25 -25
  74. package/witnet/assets/_sources.js +36 -36
  75. package/witnet/assets/_templates.js +36 -36
  76. package/witnet/assets/index.js +4 -4
  77. package/witnet/assets/modals/index.js +9 -9
  78. package/witnet/assets/modals/web3/eth.js +29 -29
  79. package/witnet/assets/modals/web3/ipfs.js +19 -19
  80. package/witnet/assets/modals/web3/wit.js +21 -21
  81. package/witnet/assets/requests.js +95 -95
  82. package/dist/bin/helpers.d.ts +0 -88
  83. package/dist/bin/helpers.d.ts.map +0 -1
  84. package/dist/bin/helpers.js +0 -866
  85. package/dist/index.d.ts +0 -4
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -42
  88. package/dist/lib/crypto/account.d.ts +0 -18
  89. package/dist/lib/crypto/account.d.ts.map +0 -1
  90. package/dist/lib/crypto/account.js +0 -152
  91. package/dist/lib/crypto/coinbase.d.ts +0 -9
  92. package/dist/lib/crypto/coinbase.d.ts.map +0 -1
  93. package/dist/lib/crypto/coinbase.js +0 -39
  94. package/dist/lib/crypto/index.d.ts +0 -7
  95. package/dist/lib/crypto/index.d.ts.map +0 -1
  96. package/dist/lib/crypto/index.js +0 -28
  97. package/dist/lib/crypto/interfaces.d.ts +0 -80
  98. package/dist/lib/crypto/interfaces.d.ts.map +0 -1
  99. package/dist/lib/crypto/interfaces.js +0 -3
  100. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +0 -47
  101. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +0 -1
  102. package/dist/lib/crypto/payloads/DataRequestPayload.js +0 -384
  103. package/dist/lib/crypto/payloads/StakePayload.d.ts +0 -27
  104. package/dist/lib/crypto/payloads/StakePayload.d.ts.map +0 -1
  105. package/dist/lib/crypto/payloads/StakePayload.js +0 -184
  106. package/dist/lib/crypto/payloads/UnstakePayload.d.ts +0 -35
  107. package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +0 -1
  108. package/dist/lib/crypto/payloads/UnstakePayload.js +0 -244
  109. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +0 -24
  110. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +0 -1
  111. package/dist/lib/crypto/payloads/ValueTransferPayload.js +0 -182
  112. package/dist/lib/crypto/payloads.d.ts +0 -54
  113. package/dist/lib/crypto/payloads.d.ts.map +0 -1
  114. package/dist/lib/crypto/payloads.js +0 -224
  115. package/dist/lib/crypto/signer.d.ts +0 -26
  116. package/dist/lib/crypto/signer.d.ts.map +0 -1
  117. package/dist/lib/crypto/signer.js +0 -299
  118. package/dist/lib/crypto/transmitters/DataRequests.d.ts +0 -14
  119. package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +0 -1
  120. package/dist/lib/crypto/transmitters/DataRequests.js +0 -62
  121. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +0 -11
  122. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +0 -1
  123. package/dist/lib/crypto/transmitters/StakeDeposits.js +0 -48
  124. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +0 -17
  125. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +0 -1
  126. package/dist/lib/crypto/transmitters/StakeWithdrawals.js +0 -115
  127. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +0 -10
  128. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +0 -1
  129. package/dist/lib/crypto/transmitters/ValueTransfers.js +0 -47
  130. package/dist/lib/crypto/transmitters.d.ts +0 -46
  131. package/dist/lib/crypto/transmitters.d.ts.map +0 -1
  132. package/dist/lib/crypto/transmitters.js +0 -506
  133. package/dist/lib/crypto/types.d.ts +0 -127
  134. package/dist/lib/crypto/types.d.ts.map +0 -1
  135. package/dist/lib/crypto/types.js +0 -261
  136. package/dist/lib/crypto/utils.d.ts +0 -10
  137. package/dist/lib/crypto/utils.d.ts.map +0 -1
  138. package/dist/lib/crypto/utils.js +0 -97
  139. package/dist/lib/crypto/wallet.d.ts +0 -26
  140. package/dist/lib/crypto/wallet.d.ts.map +0 -1
  141. package/dist/lib/crypto/wallet.js +0 -327
  142. package/dist/lib/helpers.d.ts +0 -90
  143. package/dist/lib/helpers.d.ts.map +0 -1
  144. package/dist/lib/helpers.js +0 -1031
  145. package/dist/lib/index.d.ts +0 -5
  146. package/dist/lib/index.d.ts.map +0 -1
  147. package/dist/lib/index.js +0 -21
  148. package/dist/lib/radon/artifacts.d.ts +0 -55
  149. package/dist/lib/radon/artifacts.d.ts.map +0 -1
  150. package/dist/lib/radon/artifacts.js +0 -347
  151. package/dist/lib/radon/ccdr/eth.d.ts +0 -100
  152. package/dist/lib/radon/ccdr/eth.d.ts.map +0 -1
  153. package/dist/lib/radon/ccdr/eth.js +0 -237
  154. package/dist/lib/radon/ccdr/index.d.ts +0 -34
  155. package/dist/lib/radon/ccdr/index.d.ts.map +0 -1
  156. package/dist/lib/radon/ccdr/index.js +0 -63
  157. package/dist/lib/radon/ccdr/wit.d.ts +0 -29
  158. package/dist/lib/radon/ccdr/wit.d.ts.map +0 -1
  159. package/dist/lib/radon/ccdr/wit.js +0 -60
  160. package/dist/lib/radon/filters.d.ts +0 -14
  161. package/dist/lib/radon/filters.d.ts.map +0 -1
  162. package/dist/lib/radon/filters.js +0 -47
  163. package/dist/lib/radon/index.d.ts +0 -36
  164. package/dist/lib/radon/index.d.ts.map +0 -1
  165. package/dist/lib/radon/index.js +0 -154
  166. package/dist/lib/radon/reducers.d.ts +0 -29
  167. package/dist/lib/radon/reducers.d.ts.map +0 -1
  168. package/dist/lib/radon/reducers.js +0 -101
  169. package/dist/lib/radon/retrievals.d.ts +0 -120
  170. package/dist/lib/radon/retrievals.d.ts.map +0 -1
  171. package/dist/lib/radon/retrievals.js +0 -358
  172. package/dist/lib/radon/sources.d.ts +0 -102
  173. package/dist/lib/radon/sources.d.ts.map +0 -1
  174. package/dist/lib/radon/sources.js +0 -294
  175. package/dist/lib/radon/types.d.ts +0 -521
  176. package/dist/lib/radon/types.d.ts.map +0 -1
  177. package/dist/lib/radon/types.js +0 -1066
  178. package/dist/lib/radon/utils.d.ts +0 -55
  179. package/dist/lib/radon/utils.d.ts.map +0 -1
  180. package/dist/lib/radon/utils.js +0 -181
  181. package/dist/lib/rpc/farm.d.ts +0 -66
  182. package/dist/lib/rpc/farm.d.ts.map +0 -1
  183. package/dist/lib/rpc/farm.js +0 -808
  184. package/dist/lib/rpc/index.d.ts +0 -3
  185. package/dist/lib/rpc/index.d.ts.map +0 -1
  186. package/dist/lib/rpc/index.js +0 -19
  187. package/dist/lib/rpc/node.d.ts +0 -38
  188. package/dist/lib/rpc/node.d.ts.map +0 -1
  189. package/dist/lib/rpc/node.js +0 -335
  190. package/dist/lib/rpc/nodes.d.ts +0 -40
  191. package/dist/lib/rpc/nodes.d.ts.map +0 -1
  192. package/dist/lib/rpc/nodes.js +0 -531
  193. package/dist/lib/rpc/provider.d.ts +0 -72
  194. package/dist/lib/rpc/provider.d.ts.map +0 -1
  195. package/dist/lib/rpc/provider.js +0 -402
  196. package/dist/lib/rpc/reporter.d.ts +0 -18
  197. package/dist/lib/rpc/reporter.d.ts.map +0 -1
  198. package/dist/lib/rpc/reporter.js +0 -99
  199. package/dist/lib/rpc/types.d.ts +0 -396
  200. package/dist/lib/rpc/types.d.ts.map +0 -1
  201. package/dist/lib/rpc/types.js +0 -81
  202. package/dist/lib/rpc/wallet.d.ts +0 -72
  203. package/dist/lib/rpc/wallet.d.ts.map +0 -1
  204. package/dist/lib/rpc/wallet.js +0 -41
  205. package/dist/lib/types.d.ts +0 -19
  206. package/dist/lib/types.d.ts.map +0 -1
  207. package/dist/lib/types.js +0 -7
  208. package/dist/lib/utils.d.ts +0 -5
  209. package/dist/lib/utils.d.ts.map +0 -1
  210. package/dist/lib/utils.js +0 -51
  211. package/dist/src/lib/rpc/reporter.d.ts +0 -17
  212. package/dist/src/lib/rpc/reporter.d.ts.map +0 -1
  213. package/dist/src/lib/rpc/reporter.js +0 -27
@@ -1,384 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __read = (this && this.__read) || function (o, n) {
29
- var m = typeof Symbol === "function" && o[Symbol.iterator];
30
- if (!m) return o;
31
- var i = m.call(o), r, ar = [], e;
32
- try {
33
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
- }
35
- catch (error) { e = { error: error }; }
36
- finally {
37
- try {
38
- if (r && !r.done && (m = i["return"])) m.call(i);
39
- }
40
- finally { if (e) throw e.error; }
41
- }
42
- return ar;
43
- };
44
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
46
- if (ar || !(i in from)) {
47
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
48
- ar[i] = from[i];
49
- }
50
- }
51
- return to.concat(ar || Array.prototype.slice.call(from));
52
- };
53
- Object.defineProperty(exports, "__esModule", { value: true });
54
- exports.DataRequestPayload = void 0;
55
- var protobufjs_1 = require("protobufjs");
56
- var protoRoot = protobufjs_1.Root.fromJSON(require("../../../../witnet/witnet.proto.json"));
57
- var helpers_1 = require("../../../bin/helpers");
58
- var radon_1 = require("../../radon");
59
- var payloads_1 = require("../payloads");
60
- var types_1 = require("../types");
61
- var utils_1 = require("../utils");
62
- var DR_COMMIT_TX_WEIGHT = 400;
63
- var DR_REVEAL_TX_WEIGHT = 200;
64
- var DR_TALLY_TX_WEIGHT = 100;
65
- var DR_TX_WEIGHT_ALPHA = 1;
66
- var DR_TX_WEIGHT_BETA = 1;
67
- var TX_WEIGHT_INPUT_SIZE = 133;
68
- var TX_WEIGHT_OUTPUT_SIZE = 36;
69
- var DataRequestPayload = /** @class */ (function (_super) {
70
- __extends(DataRequestPayload, _super);
71
- function DataRequestPayload(protoTypeName, radon, initialTarget) {
72
- var _this = _super.call(this, protoTypeName, initialTarget) || this;
73
- if (radon instanceof radon_1.RadonRequest) {
74
- _this._request = radon;
75
- }
76
- else if (radon instanceof radon_1.RadonTemplate) {
77
- _this.template = radon;
78
- }
79
- return _this;
80
- }
81
- Object.defineProperty(DataRequestPayload.prototype, "burns", {
82
- get: function () {
83
- /* V2.1 */
84
- if (this._target && typeof this._target.witnesses === 'number') {
85
- var witnesses = this._target.witnesses;
86
- return witnesses * (this._target.fees
87
- + 2 * witnesses * (Math.floor(this._target.fees / 3 / this._target.witnesses)));
88
- }
89
- else {
90
- return undefined;
91
- }
92
- },
93
- enumerable: false,
94
- configurable: true
95
- });
96
- Object.defineProperty(DataRequestPayload.prototype, "droHash", {
97
- get: function () {
98
- var obj = this._toDrOutputProtobuf();
99
- if (obj) {
100
- var DataRequestOutput = protoRoot.lookupType("DataRequestOutput");
101
- var err = DataRequestOutput.verify(obj);
102
- if (err) {
103
- throw TypeError(err);
104
- }
105
- else {
106
- // console.log("\ndroHash.obj =>", JSON.stringify(obj))
107
- var message = DataRequestOutput.fromObject(obj);
108
- // console.log("\ndroHash.message =>", JSON.stringify(message))
109
- var bytecode = DataRequestOutput.encode(message).finish();
110
- // console.log("\ndroHash.bytecode =>", bytecode)
111
- return (0, helpers_1.toHexString)((0, utils_1.sha256)(bytecode));
112
- }
113
- }
114
- else {
115
- return undefined;
116
- }
117
- },
118
- enumerable: false,
119
- configurable: true
120
- });
121
- Object.defineProperty(DataRequestPayload.prototype, "droSLA", {
122
- get: function () {
123
- if (this._target) {
124
- var minConsensusPercentage = 51;
125
- var witnesses = (typeof this._target.witnesses === 'object'
126
- ? Object.keys(this._target.witnesses).length
127
- : this._target.witnesses);
128
- var commitAndRevealFee = Math.floor(this._target.fees / 3 / witnesses);
129
- var witnessReward = witnesses * commitAndRevealFee;
130
- var collateral = witnessReward * DataRequestPayload.COLLATERAL_RATIO;
131
- return {
132
- collateral: collateral,
133
- commitAndRevealFee: commitAndRevealFee,
134
- minConsensusPercentage: minConsensusPercentage,
135
- witnesses: witnesses,
136
- witnessReward: witnessReward,
137
- };
138
- }
139
- else {
140
- return undefined;
141
- }
142
- },
143
- enumerable: false,
144
- configurable: true
145
- });
146
- Object.defineProperty(DataRequestPayload.prototype, "fees", {
147
- get: function () {
148
- var _a;
149
- return ((_a = this._target) === null || _a === void 0 ? void 0 : _a.fees) || 0;
150
- },
151
- enumerable: false,
152
- configurable: true
153
- });
154
- Object.defineProperty(DataRequestPayload.prototype, "hash", {
155
- get: function () {
156
- var _bytecode = this.bytecode;
157
- if (_bytecode && this.droHash) {
158
- return (0, helpers_1.toHexString)((0, utils_1.sha256)(Buffer.concat([
159
- (0, helpers_1.fromHexString)(this.droHash),
160
- (0, utils_1.sha256)(_bytecode),
161
- ])));
162
- }
163
- else {
164
- return undefined;
165
- }
166
- },
167
- enumerable: false,
168
- configurable: true
169
- });
170
- Object.defineProperty(DataRequestPayload.prototype, "maxWeight", {
171
- get: function () {
172
- return DataRequestPayload.MAX_WEIGHT;
173
- },
174
- enumerable: false,
175
- configurable: true
176
- });
177
- Object.defineProperty(DataRequestPayload.prototype, "parameterized", {
178
- get: function () {
179
- return !!this.template;
180
- },
181
- enumerable: false,
182
- configurable: true
183
- });
184
- Object.defineProperty(DataRequestPayload.prototype, "prepared", {
185
- get: function () {
186
- return (this.covered
187
- && this._inputs.length > 0
188
- && !!this._request
189
- && !!this._target);
190
- },
191
- enumerable: false,
192
- configurable: true
193
- });
194
- Object.defineProperty(DataRequestPayload.prototype, "radArgs", {
195
- get: function () {
196
- var _a;
197
- return this.template ? (_a = this._target) === null || _a === void 0 ? void 0 : _a.args : undefined;
198
- },
199
- enumerable: false,
200
- configurable: true
201
- });
202
- Object.defineProperty(DataRequestPayload.prototype, "radHash", {
203
- get: function () {
204
- var _a;
205
- return (_a = this.request) === null || _a === void 0 ? void 0 : _a.radHash();
206
- },
207
- enumerable: false,
208
- configurable: true
209
- });
210
- Object.defineProperty(DataRequestPayload.prototype, "request", {
211
- get: function () {
212
- return this._request;
213
- },
214
- enumerable: false,
215
- configurable: true
216
- });
217
- Object.defineProperty(DataRequestPayload.prototype, "value", {
218
- get: function () {
219
- if (this._target) {
220
- if (typeof this._target.witnesses === 'object') {
221
- /* V2.1 */
222
- return Object.values(this._target.witnesses).reduce(function (prev, curr) { return prev + curr; }, 0);
223
- }
224
- else if (typeof this._target.witnesses === 'number') {
225
- /* V2.0 */
226
- var witnesses = this._target.witnesses;
227
- return witnesses * witnesses * (Math.floor(this._target.fees / 3 / this._target.witnesses));
228
- // /* V2.1 */
229
- // // return 0
230
- }
231
- }
232
- return 0;
233
- },
234
- enumerable: false,
235
- configurable: true
236
- });
237
- Object.defineProperty(DataRequestPayload.prototype, "weight", {
238
- get: function () {
239
- var _a;
240
- if (this._request && this._target) {
241
- var witnesses = typeof this._target.witnesses === 'object' ? Object.keys(this._target.witnesses).length : this._target.witnesses;
242
- return (DR_TX_WEIGHT_ALPHA * (this._request.weight() + 8 + 2 + 8 + 4 + 8),
243
- +this._inputs.length * TX_WEIGHT_INPUT_SIZE
244
- + this._outputs.length * TX_WEIGHT_OUTPUT_SIZE
245
- + witnesses * (DR_COMMIT_TX_WEIGHT
246
- + DR_REVEAL_TX_WEIGHT * DR_TX_WEIGHT_BETA
247
- + TX_WEIGHT_OUTPUT_SIZE // TODO V2.1: typeof this._target.witnesses === 'object' ? TX_WEIGHT_OUTPUT_SIZE : 0
248
- )
249
- + Math.max(DR_TALLY_TX_WEIGHT * DR_TX_WEIGHT_BETA, ((_a = this._target) === null || _a === void 0 ? void 0 : _a.maxResultSize) || 0));
250
- }
251
- else {
252
- return 0;
253
- }
254
- },
255
- enumerable: false,
256
- configurable: true
257
- });
258
- DataRequestPayload.prototype.intoReceipt = function (target) {
259
- return {
260
- burns: this.burns,
261
- droHash: this.droHash,
262
- radArgs: this.radArgs,
263
- radHash: this.radHash,
264
- witnesses: target.witnesses,
265
- };
266
- };
267
- DataRequestPayload.prototype.resetTarget = function (target) {
268
- var _a, _b;
269
- var _c;
270
- this._change = 0;
271
- this._covered = 0;
272
- this._inputs = [];
273
- this._outputs = [];
274
- this._target = target;
275
- if (((_c = this.droSLA) === null || _c === void 0 ? void 0 : _c.collateral) && this.droSLA.collateral < DataRequestPayload.MIN_COLLATERAL) {
276
- throw new TypeError("".concat(this.constructor.name, ": implicit witnessing collateral too low: ").concat((0, helpers_1.fromNanowits)(this.droSLA.collateral), " < ").concat((0, helpers_1.fromNanowits)(DataRequestPayload.MIN_COLLATERAL)));
277
- }
278
- if (this.template) {
279
- var args = target === null || target === void 0 ? void 0 : target.args;
280
- if (Array.isArray(args) && args.length > 0) {
281
- if (Array.isArray(args[0])) {
282
- this._request = (_a = this.template).buildRequest.apply(_a, __spreadArray([], __read(args), false));
283
- }
284
- else {
285
- if (this.template.homogeneous) {
286
- this._request = (_b = this.template).buildRequestModal.apply(_b, __spreadArray([], __read(args), false));
287
- }
288
- else {
289
- throw new TypeError("".concat(this.constructor.name, ": cannot build modal request out from heterogeneous sources: ").concat(args));
290
- }
291
- }
292
- }
293
- else if (typeof args === 'string'
294
- && this.template.homogeneous
295
- && this.template.argsCount === 1) {
296
- this._request = this.template.buildRequestModal(args);
297
- }
298
- else {
299
- throw new TypeError("".concat(this.constructor.name, ": unsupported args when building request out from template: ").concat(args));
300
- }
301
- }
302
- };
303
- DataRequestPayload.prototype.toJSON = function (humanize) {
304
- if (humanize === void 0) { humanize = false; }
305
- var droSLA = this.droSLA;
306
- return {
307
- inputs: this.inputs
308
- .map(function (_a) {
309
- var _b = __read(_a, 2), utxo = _b[1];
310
- return ({ output_pointer: utxo.output_pointer });
311
- }),
312
- outputs: this.outputs.map(function (vto) {
313
- return {
314
- pkh: vto.pkh,
315
- time_lock: vto.time_lock,
316
- value: vto.value,
317
- };
318
- }),
319
- dr_output: __assign(__assign({}, (this._request ? { data_request: this._request.toJSON(humanize) } : {})), { commit_and_reveal_fee: droSLA === null || droSLA === void 0 ? void 0 : droSLA.commitAndRevealFee, min_consensus_percentage: droSLA === null || droSLA === void 0 ? void 0 : droSLA.minConsensusPercentage, witnesses: droSLA === null || droSLA === void 0 ? void 0 : droSLA.witnesses, witness_reward: droSLA === null || droSLA === void 0 ? void 0 : droSLA.witnessReward, collateral: droSLA === null || droSLA === void 0 ? void 0 : droSLA.collateral })
320
- };
321
- };
322
- DataRequestPayload.prototype.toProtobuf = function () {
323
- if (this.prepared && this._target && this._request) {
324
- return {
325
- inputs: this.inputs
326
- .map(function (_a) {
327
- var _b = __read(_a, 2), utxo = _b[1];
328
- var transactionId = utxo.output_pointer.split(':')[0];
329
- var outputIndex = parseInt(utxo.output_pointer.split(':')[1]);
330
- return {
331
- outputPointer: __assign({ transactionId: { SHA256: Array.from((0, helpers_1.fromHexString)(transactionId)) } }, (outputIndex > 0 ? { outputIndex: outputIndex } : {})),
332
- };
333
- }),
334
- outputs: this.outputs.map(function (vto) { return (__assign({ pkh: { hash: Array.from(types_1.PublicKeyHash.fromBech32(vto.pkh).toBytes20()), }, value: vto.value }, (vto.time_lock > 0 ? { timeLock: vto.time_lock } : {}))); }),
335
- drOutput: this._toDrOutputProtobuf(),
336
- };
337
- }
338
- };
339
- DataRequestPayload.prototype.validateTarget = function (target) {
340
- target = this._cleanTargetExtras(target);
341
- if (target && Object.keys(target).length > 0) {
342
- if (!(target
343
- && (target === null || target === void 0 ? void 0 : target.fees)
344
- && parseInt(target === null || target === void 0 ? void 0 : target.fees) > 0
345
- && (target === null || target === void 0 ? void 0 : target.witnesses)
346
- && (!this.template || (target === null || target === void 0 ? void 0 : target.args)))) {
347
- throw new TypeError("".concat(this.constructor.name, ": invalid specs were provided: ").concat(JSON.stringify(target)));
348
- }
349
- else {
350
- if (typeof target.witnesses === 'object') {
351
- throw new TypeError("".concat(this.constructor.name, ": explicit witnessing committees not yet supported: ").concat(target.witnesses));
352
- }
353
- return target;
354
- }
355
- }
356
- else {
357
- return undefined;
358
- }
359
- };
360
- DataRequestPayload.prototype._cleanTargetExtras = function (target) {
361
- if (target) {
362
- return Object.fromEntries(Object.entries(target).filter(function (_a) {
363
- var _b = __read(_a, 1), key = _b[0];
364
- return [
365
- 'args',
366
- 'fees',
367
- 'maxResultSize',
368
- 'witnesses',
369
- ].includes(key);
370
- }));
371
- }
372
- };
373
- DataRequestPayload.prototype._toDrOutputProtobuf = function () {
374
- if (this._request) {
375
- return __assign(__assign({}, this.droSLA), { dataRequest: this._request.toProtobuf() });
376
- }
377
- };
378
- DataRequestPayload.COLLATERAL_RATIO = 125;
379
- DataRequestPayload.MAX_WEIGHT = 80000;
380
- DataRequestPayload.MIN_COLLATERAL = 20000000000;
381
- return DataRequestPayload;
382
- }(payloads_1.TransactionPayloadMultiSig));
383
- exports.DataRequestPayload = DataRequestPayload;
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RQYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUE4QztBQUM5QyxJQUFNLFNBQVMsR0FBRyxpQkFBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxDQUFBO0FBRXJGLGdEQUErRTtBQUUvRSxxQ0FBeUQ7QUFHekQsd0NBQXdEO0FBQ3hELGtDQUFnRjtBQUNoRixrQ0FBaUM7QUFrQmpDLElBQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBO0FBQy9CLElBQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBO0FBQy9CLElBQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBO0FBRTlCLElBQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO0FBQzVCLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFBO0FBRTNCLElBQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFBO0FBQ2hDLElBQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFBO0FBRWhDO0lBQXdDLHNDQUE2QztJQVNqRiw0QkFBYSxhQUFxQixFQUFFLEtBQW1DLEVBQUUsYUFBaUM7UUFDdEcsWUFBQSxNQUFLLFlBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxTQUFBO1FBQ25DLElBQUksS0FBSyxZQUFZLG9CQUFZLEVBQUUsQ0FBQztZQUNoQyxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUN6QixDQUFDO2FBQU0sSUFBSSxLQUFLLFlBQVkscUJBQWEsRUFBRSxDQUFDO1lBQ3hDLEtBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLENBQUM7O0lBQ0wsQ0FBQztJQUVELHNCQUFXLHFDQUFLO2FBQWhCO1lBQ0ksVUFBVTtZQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3RCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQTtnQkFDeEMsT0FBTyxTQUFTLEdBQUcsQ0FDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7c0JBQ1gsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDckYsQ0FBQTtZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLFNBQVMsQ0FBQTtZQUNwQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx1Q0FBTzthQUFsQjtZQUNJLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1lBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sSUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUE7Z0JBQ25FLElBQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDekMsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDTixNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDeEIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLHVEQUF1RDtvQkFDdkQsSUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNqRCwrREFBK0Q7b0JBQy9ELElBQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtvQkFDM0QsaURBQWlEO29CQUNqRCxPQUFPLElBQUEscUJBQVcsRUFBQyxJQUFBLGNBQU0sRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sU0FBUyxDQUFBO1lBQ3BCLENBQUM7UUFDTCxDQUFDOzs7T0FBQTtJQUVELHNCQUFXLHNDQUFNO2FBQWpCO1lBQ0ksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsSUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUE7Z0JBQ2pDLElBQU0sU0FBUyxHQUFHLENBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRO29CQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07b0JBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDL0IsQ0FBQztnQkFDRixJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO2dCQUN4RSxJQUFNLGFBQWEsR0FBRyxTQUFTLEdBQUcsa0JBQWtCLENBQUE7Z0JBQ3BELElBQU0sVUFBVSxHQUFHLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQTtnQkFDdEUsT0FBTztvQkFDSCxVQUFVLFlBQUE7b0JBQ1Ysa0JBQWtCLG9CQUFBO29CQUNsQixzQkFBc0Isd0JBQUE7b0JBQ3RCLFNBQVMsV0FBQTtvQkFDVCxhQUFhLGVBQUE7aUJBQ2hCLENBQUE7WUFFTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxTQUFTLENBQUE7WUFDcEIsQ0FBQztRQUNMLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsb0NBQUk7YUFBZjs7WUFDSSxPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLEtBQUksQ0FBQyxDQUFBO1FBQ2xDLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsb0NBQUk7YUFBZjtZQUNJLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7WUFDL0IsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixPQUFPLElBQUEscUJBQVcsRUFBQyxJQUFBLGNBQU0sRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUNwQyxJQUFBLHVCQUFhLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDM0IsSUFBQSxjQUFNLEVBQUMsU0FBUyxDQUFDO2lCQUNwQixDQUFDLENBQUMsQ0FBUyxDQUFBO1lBQ2hCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLFNBQVMsQ0FBQTtZQUNwQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx5Q0FBUzthQUFwQjtZQUNJLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFBO1FBQ3hDLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsNkNBQWE7YUFBeEI7WUFDSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQzFCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsd0NBQVE7YUFBbkI7WUFDSSxPQUFPLENBQ0gsSUFBSSxDQUFDLE9BQU87bUJBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQzttQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO21CQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUN4QixDQUFBO1FBQ0wsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx1Q0FBTzthQUFsQjs7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDekQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx1Q0FBTzthQUFsQjs7WUFDSSxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTyxFQUFFLENBQUE7UUFDbEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx1Q0FBTzthQUFsQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUN4QixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLHFDQUFLO2FBQWhCO1lBQ0ksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM3QyxVQUFVO29CQUNWLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLEdBQUcsSUFBSSxFQUFYLENBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFFdkYsQ0FBQztxQkFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ3BELFVBQVU7b0JBQ1YsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUE7b0JBQ3hDLE9BQU8sU0FBUyxHQUFHLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtvQkFDM0YsYUFBYTtvQkFDYixjQUFjO2dCQUNsQixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFBO1FBQ1osQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxzQ0FBTTthQUFqQjs7WUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxJQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUE7Z0JBQ2xJLE9BQU8sQ0FDSCxrQkFBa0IsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0QsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxvQkFBb0I7MEJBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHFCQUFxQjswQkFDNUMsU0FBUyxHQUFHLENBQ04sbUJBQW1COzhCQUNiLG1CQUFtQixHQUFHLGlCQUFpQjs4QkFDdkMscUJBQXFCLENBQUMsb0ZBQW9GO3lCQUN2SDswQkFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixFQUFFLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxhQUFhLEtBQUksQ0FBQyxDQUFDLENBQzNGLENBQUM7WUFDTixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLENBQUE7WUFDWixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFFTSx3Q0FBVyxHQUFsQixVQUFtQixNQUF5QjtRQUN4QyxPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztTQUM5QixDQUFBO0lBQ0wsQ0FBQztJQUVNLHdDQUFXLEdBQWxCLFVBQW1CLE1BQXlCOzs7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsVUFBVSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hGLE1BQU0sSUFBSSxTQUFTLENBQ2YsVUFBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksdURBQ3BCLElBQUEsc0JBQVksRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxnQkFFcEMsSUFBQSxzQkFBWSxFQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUNqRCxDQUNMLENBQUM7UUFDTixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBTSxJQUFJLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksQ0FBQTtZQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQSxLQUFBLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxZQUFZLG9DQUFLLElBQW1CLFVBQUMsQ0FBQTtnQkFDdkUsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFBLEtBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQSxDQUFDLGlCQUFpQixvQ0FBSyxJQUFpQixVQUFDLENBQUE7b0JBQzFFLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixNQUFNLElBQUksU0FBUyxDQUNmLFVBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDBFQUFnRSxJQUFJLENBQUUsQ0FDakcsQ0FBQztvQkFDTixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQ0gsT0FBTyxJQUFJLEtBQUssUUFBUTttQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO21CQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQ3RDLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pELENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLElBQUksU0FBUyxDQUNmLFVBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHlFQUErRCxJQUFJLENBQUUsQ0FDaEcsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1DQUFNLEdBQWIsVUFBYyxRQUFnQjtRQUFoQix5QkFBQSxFQUFBLGdCQUFnQjtRQUMxQixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzFCLE9BQU87WUFDSCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07aUJBQ2QsR0FBRyxDQUFDLFVBQUMsRUFBUTtvQkFBUixLQUFBLGFBQVEsRUFBTCxJQUFJLFFBQUE7Z0JBQU0sT0FBQSxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUF6QyxDQUF5QyxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFBLEdBQUc7Z0JBQU0sT0FBTztvQkFDdEMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO29CQUNaLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztvQkFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO2lCQUNuQixDQUFBO1lBQUEsQ0FBQyxDQUFDO1lBQ0gsU0FBUyx3QkFDRixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUMxRSxxQkFBcUIsRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsa0JBQWtCLEVBQ2pELHdCQUF3QixFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxzQkFBc0IsRUFDeEQsU0FBUyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLEVBQzVCLGNBQWMsRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxFQUNyQyxVQUFVLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsR0FDakM7U0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVNLHVDQUFVLEdBQWpCO1FBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pELE9BQU87Z0JBQ0gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO3FCQUNkLEdBQUcsQ0FBQyxVQUFDLEVBQVE7d0JBQVIsS0FBQSxhQUFRLEVBQUwsSUFBSSxRQUFBO29CQUNULElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUN2RCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDL0QsT0FBTzt3QkFDSCxhQUFhLGFBQ1QsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSx1QkFBYSxFQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFDaEUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsYUFBQSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUM5QztxQkFDSixDQUFBO2dCQUNMLENBQUMsQ0FBQztnQkFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxZQUM3QixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUN6RSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFDYixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUMzRCxFQUorQixDQUkvQixDQUFDO2dCQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7YUFDdkMsQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU0sMkNBQWMsR0FBckIsVUFBc0IsTUFBWTtRQUM5QixNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxDQUNELE1BQU07b0JBQ0MsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksQ0FBQTttQkFDWixRQUFRLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQzFCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLENBQUE7bUJBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLENBQUEsQ0FBQyxDQUMxQyxFQUFFLENBQUM7Z0JBQ0EsTUFBTSxJQUFJLFNBQVMsQ0FBQyxVQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSw0Q0FBa0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFDLENBQUE7WUFDM0csQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN2QyxNQUFNLElBQUksU0FBUyxDQUFDLFVBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGlFQUF1RCxNQUFNLENBQUMsU0FBUyxDQUFFLENBQUMsQ0FBQTtnQkFDMUgsQ0FBQztnQkFDRCxPQUFPLE1BQTJCLENBQUE7WUFDdEMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxTQUFTLENBQUE7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFFUywrQ0FBa0IsR0FBNUIsVUFBNkIsTUFBWTtRQUNyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLEVBQU07b0JBQU4sS0FBQSxhQUFNLEVBQUwsR0FBRyxRQUFBO2dCQUFPLE9BQUE7b0JBQ3RDLE1BQU07b0JBQ04sTUFBTTtvQkFDTixlQUFlO29CQUNmLFdBQVc7aUJBQ2QsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBTDJCLENBSzNCLENBQUMsQ0FDbkIsQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0lBRVMsZ0RBQW1CLEdBQTdCO1FBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsNkJBQ08sSUFBSSxDQUFDLE1BQU0sS0FDZCxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFDMUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQXRTYSxtQ0FBZ0IsR0FBRyxHQUFHLENBQUE7SUFDdEIsNkJBQVUsR0FBRyxLQUFNLENBQUE7SUFDbkIsaUNBQWMsR0FBRyxXQUFjLENBQUE7SUFxU2pELHlCQUFDO0NBQUEsQUF6U0QsQ0FBd0MscUNBQTBCLEdBeVNqRTtBQXpTWSxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb290IGFzIFByb3RvUm9vdCB9IGZyb20gXCJwcm90b2J1ZmpzXCJcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihyZXF1aXJlKFwiLi4vLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpKVxuXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCBmcm9tTmFub3dpdHMsIHRvSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcblxuaW1wb3J0IHsgUmFkb25SZXF1ZXN0LCBSYWRvblRlbXBsYXRlIH0gZnJvbSBcIi4uLy4uL3JhZG9uXCJcbmltcG9ydCB7IEhhc2gsIEhleFN0cmluZywgTmFub3dpdHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIlxuXG5pbXBvcnQgeyBUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyB9IGZyb20gXCIuLi9wYXlsb2Fkc1wiXG5pbXBvcnQgeyBQdWJsaWNLZXlIYXNoLCBQdWJsaWNLZXlIYXNoU3RyaW5nLCBUcmFuc2FjdGlvblBhcmFtcyB9IGZyb20gXCIuLi90eXBlc1wiXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi4vdXRpbHNcIlxuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFRlbXBsYXRlQXJncyA9IHN0cmluZyB8IHN0cmluZ1tdIHwgc3RyaW5nW11bXVxuICAgIFxuZXhwb3J0IHR5cGUgRGF0YVJlcXVlc3RQYXJhbXMgPSBUcmFuc2FjdGlvblBhcmFtcyAmIHtcbiAgICBhcmdzPzogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3MsXG4gICAgbWF4UmVzdWx0U2l6ZT86IG51bWJlcixcbiAgICB3aXRuZXNzZXM6IG51bWJlciB8IFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBOYW5vd2l0cz4sXG59XG5cbnR5cGUgRGF0YVJlcXVlc3RPdXRwdXRTTEEgPSB7XG4gICAgY29sbGF0ZXJhbDogbnVtYmVyLFxuICAgIGNvbW1pdEFuZFJldmVhbEZlZTogbnVtYmVyLFxuICAgIG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2U6IG51bWJlcixcbiAgICB3aXRuZXNzZXM6IG51bWJlcixcbiAgICB3aXRuZXNzUmV3YXJkOiBudW1iZXIsXG59XG5cbmNvbnN0IERSX0NPTU1JVF9UWF9XRUlHSFQgPSA0MDBcbmNvbnN0IERSX1JFVkVBTF9UWF9XRUlHSFQgPSAyMDBcbmNvbnN0IERSX1RBTExZX1RYX1dFSUdIVCA9IDEwMFxuXG5jb25zdCBEUl9UWF9XRUlHSFRfQUxQSEEgPSAxXG5jb25zdCBEUl9UWF9XRUlHSFRfQkVUQSA9IDFcblxuY29uc3QgVFhfV0VJR0hUX0lOUFVUX1NJWkUgPSAxMzNcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2XG5cbmV4cG9ydCBjbGFzcyBEYXRhUmVxdWVzdFBheWxvYWQgZXh0ZW5kcyBUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZzxEYXRhUmVxdWVzdFBhcmFtcz4ge1xuXG4gICAgcHVibGljIHN0YXRpYyBDT0xMQVRFUkFMX1JBVElPID0gMTI1XG4gICAgcHVibGljIHN0YXRpYyBNQVhfV0VJR0hUID0gODBfMDAwXG4gICAgcHVibGljIHN0YXRpYyBNSU5fQ09MTEFURVJBTCA9IDIwXzAwMF8wMDBfMDAwXG5cbiAgICBwcm90ZWN0ZWQgX3JlcXVlc3Q/OiBSYWRvblJlcXVlc3QgXG4gICAgcHVibGljIHJlYWRvbmx5IHRlbXBsYXRlPzogUmFkb25UZW1wbGF0ZVxuICAgIFxuICAgIGNvbnN0cnVjdG9yIChwcm90b1R5cGVOYW1lOiBzdHJpbmcsIHJhZG9uOiBSYWRvblJlcXVlc3QgfCBSYWRvblRlbXBsYXRlLCBpbml0aWFsVGFyZ2V0PzogRGF0YVJlcXVlc3RQYXJhbXMpIHtcbiAgICAgICAgc3VwZXIocHJvdG9UeXBlTmFtZSwgaW5pdGlhbFRhcmdldClcbiAgICAgICAgaWYgKHJhZG9uIGluc3RhbmNlb2YgUmFkb25SZXF1ZXN0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1ZXN0ID0gcmFkb25cbiAgICAgICAgfSBlbHNlIGlmIChyYWRvbiBpbnN0YW5jZW9mIFJhZG9uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGUgPSByYWRvblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBidXJucygpOiBOYW5vd2l0cyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8qIFYyLjEgKi9cbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldCAmJiB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpdG5lc3NlcyA9IHRoaXMuX3RhcmdldC53aXRuZXNzZXNcbiAgICAgICAgICAgIHJldHVybiB3aXRuZXNzZXMgKiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LmZlZXNcbiAgICAgICAgICAgICAgICAgICAgKyAyICogd2l0bmVzc2VzICogKE1hdGguZmxvb3IodGhpcy5fdGFyZ2V0LmZlZXMgLyAzIC8gdGhpcy5fdGFyZ2V0LndpdG5lc3NlcykpXG4gICAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRyb0hhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHRoaXMuX3RvRHJPdXRwdXRQcm90b2J1ZigpXG4gICAgICAgIGlmIChvYmopIHtcbiAgICAgICAgICAgIGNvbnN0IERhdGFSZXF1ZXN0T3V0cHV0ID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJEYXRhUmVxdWVzdE91dHB1dFwiKVxuICAgICAgICAgICAgY29uc3QgZXJyID0gRGF0YVJlcXVlc3RPdXRwdXQudmVyaWZ5KG9iailcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoZXJyKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlxcbmRyb0hhc2gub2JqID0+XCIsIEpTT04uc3RyaW5naWZ5KG9iaikpXG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IERhdGFSZXF1ZXN0T3V0cHV0LmZyb21PYmplY3Qob2JqKVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiXFxuZHJvSGFzaC5tZXNzYWdlID0+XCIsIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKVxuICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGVjb2RlID0gRGF0YVJlcXVlc3RPdXRwdXQuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJcXG5kcm9IYXNoLmJ5dGVjb2RlID0+XCIsIGJ5dGVjb2RlKVxuICAgICAgICAgICAgICAgIHJldHVybiB0b0hleFN0cmluZyhzaGEyNTYoYnl0ZWNvZGUpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkcm9TTEEoKTogRGF0YVJlcXVlc3RPdXRwdXRTTEEgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBtaW5Db25zZW5zdXNQZXJjZW50YWdlID0gNTFcbiAgICAgICAgICAgIGNvbnN0IHdpdG5lc3NlcyA9IChcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLl90YXJnZXQud2l0bmVzc2VzKS5sZW5ndGggXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fdGFyZ2V0LndpdG5lc3Nlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1pdEFuZFJldmVhbEZlZSA9IE1hdGguZmxvb3IodGhpcy5fdGFyZ2V0LmZlZXMgLyAzIC8gd2l0bmVzc2VzKVxuICAgICAgICAgICAgY29uc3Qgd2l0bmVzc1Jld2FyZCA9IHdpdG5lc3NlcyAqIGNvbW1pdEFuZFJldmVhbEZlZVxuICAgICAgICAgICAgY29uc3QgY29sbGF0ZXJhbCA9IHdpdG5lc3NSZXdhcmQgKiBEYXRhUmVxdWVzdFBheWxvYWQuQ09MTEFURVJBTF9SQVRJTyBcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29sbGF0ZXJhbCxcbiAgICAgICAgICAgICAgICBjb21taXRBbmRSZXZlYWxGZWUsXG4gICAgICAgICAgICAgICAgbWluQ29uc2Vuc3VzUGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICB3aXRuZXNzZXMsXG4gICAgICAgICAgICAgICAgd2l0bmVzc1Jld2FyZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZWVzKCk6IE5hbm93aXRzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldD8uZmVlcyB8fCAwXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNoKCk6IEhhc2ggfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBfYnl0ZWNvZGUgPSB0aGlzLmJ5dGVjb2RlXG4gICAgICAgIGlmIChfYnl0ZWNvZGUgJiYgdGhpcy5kcm9IYXNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9IZXhTdHJpbmcoc2hhMjU2KEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICAgICAgICAgIGZyb21IZXhTdHJpbmcodGhpcy5kcm9IYXNoKSxcbiAgICAgICAgICAgICAgICBzaGEyNTYoX2J5dGVjb2RlKSxcbiAgICAgICAgICAgIF0pKSkgYXMgSGFzaFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtYXhXZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJhbWV0ZXJpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRlbXBsYXRlXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcmVwYXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY292ZXJlZFxuICAgICAgICAgICAgICAgICYmIHRoaXMuX2lucHV0cy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgJiYgISF0aGlzLl9yZXF1ZXN0XG4gICAgICAgICAgICAgICAgJiYgISF0aGlzLl90YXJnZXRcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmFkQXJncygpOiBEYXRhUmVxdWVzdFRlbXBsYXRlQXJncyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlID8gdGhpcy5fdGFyZ2V0Py5hcmdzIDogdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcHVibGljIGdldCByYWRIYXNoKCk6IEhleFN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3Q/LnJhZEhhc2goKVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVxdWVzdCgpOiBSYWRvblJlcXVlc3QgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdFxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogTmFub3dpdHMge1xuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgLyogVjIuMSAqL1xuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX3RhcmdldC53aXRuZXNzZXMpLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIsIDApXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgLyogVjIuMCAqL1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpdG5lc3NlcyA9IHRoaXMuX3RhcmdldC53aXRuZXNzZXNcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0bmVzc2VzICogd2l0bmVzc2VzICogKE1hdGguZmxvb3IodGhpcy5fdGFyZ2V0LmZlZXMgLyAzIC8gdGhpcy5fdGFyZ2V0LndpdG5lc3NlcykpXG4gICAgICAgICAgICAgICAgLy8gLyogVjIuMSAqL1xuICAgICAgICAgICAgICAgIC8vIC8vIHJldHVybiAwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDBcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdlaWdodCgpOiBOYW5vd2l0cyB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0ICYmIHRoaXMuX3RhcmdldCkge1xuICAgICAgICAgICAgY29uc3Qgd2l0bmVzc2VzID0gdHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09ICdvYmplY3QnID8gT2JqZWN0LmtleXModGhpcy5fdGFyZ2V0LndpdG5lc3NlcykubGVuZ3RoIDogdGhpcy5fdGFyZ2V0LndpdG5lc3Nlc1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBEUl9UWF9XRUlHSFRfQUxQSEEgKiAodGhpcy5fcmVxdWVzdC53ZWlnaHQoKSArIDggKyAyICsgOCArIDQgKyA4KSxcbiAgICAgICAgICAgICAgICAgICAgKyB0aGlzLl9pbnB1dHMubGVuZ3RoICogVFhfV0VJR0hUX0lOUFVUX1NJWkUgXG4gICAgICAgICAgICAgICAgICAgICsgdGhpcy5fb3V0cHV0cy5sZW5ndGggKiBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgXG4gICAgICAgICAgICAgICAgICAgICsgd2l0bmVzc2VzICogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSX0NPTU1JVF9UWF9XRUlHSFRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBEUl9SRVZFQUxfVFhfV0VJR0hUICogRFJfVFhfV0VJR0hUX0JFVEEgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFRYX1dFSUdIVF9PVVRQVVRfU0laRSAvLyBUT0RPIFYyLjE6IHR5cGVvZiB0aGlzLl90YXJnZXQud2l0bmVzc2VzID09PSAnb2JqZWN0JyA/IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA6IDBcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICArIE1hdGgubWF4KERSX1RBTExZX1RYX1dFSUdIVCAqIERSX1RYX1dFSUdIVF9CRVRBLCB0aGlzLl90YXJnZXQ/Lm1heFJlc3VsdFNpemUgfHwgMClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGludG9SZWNlaXB0KHRhcmdldDogRGF0YVJlcXVlc3RQYXJhbXMpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYnVybnM6IHRoaXMuYnVybnMsXG4gICAgICAgICAgICBkcm9IYXNoOiB0aGlzLmRyb0hhc2gsXG4gICAgICAgICAgICByYWRBcmdzOiB0aGlzLnJhZEFyZ3MsXG4gICAgICAgICAgICByYWRIYXNoOiB0aGlzLnJhZEhhc2gsXG4gICAgICAgICAgICB3aXRuZXNzZXM6IHRhcmdldC53aXRuZXNzZXMsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRUYXJnZXQodGFyZ2V0OiBEYXRhUmVxdWVzdFBhcmFtcyk6IGFueSB7XG4gICAgICAgIHRoaXMuX2NoYW5nZSA9IDBcbiAgICAgICAgdGhpcy5fY292ZXJlZCA9IDBcbiAgICAgICAgdGhpcy5faW5wdXRzID0gW11cbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtdXG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldFxuICAgICAgICBpZiAodGhpcy5kcm9TTEE/LmNvbGxhdGVyYWwgJiYgdGhpcy5kcm9TTEEuY29sbGF0ZXJhbCA8IERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbXBsaWNpdCB3aXRuZXNzaW5nIGNvbGxhdGVyYWwgdG9vIGxvdzogJHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbU5hbm93aXRzKHRoaXMuZHJvU0xBLmNvbGxhdGVyYWwpXG4gICAgICAgICAgICAgICAgfSA8ICR7XG4gICAgICAgICAgICAgICAgICAgIGZyb21OYW5vd2l0cyhEYXRhUmVxdWVzdFBheWxvYWQuTUlOX0NPTExBVEVSQUwpXG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0YXJnZXQ/LmFyZ3NcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpICYmIGFyZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3NbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlcXVlc3QgPSB0aGlzLnRlbXBsYXRlLmJ1aWxkUmVxdWVzdCguLi4oYXJncyBhcyBzdHJpbmdbXVtdKSlcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZS5ob21vZ2VuZW91cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVxdWVzdCA9IHRoaXMudGVtcGxhdGUuYnVpbGRSZXF1ZXN0TW9kYWwoLi4uKGFyZ3MgYXMgc3RyaW5nW10pKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgYnVpbGQgbW9kYWwgcmVxdWVzdCBvdXQgZnJvbSBoZXRlcm9nZW5lb3VzIHNvdXJjZXM6ICR7YXJnc31gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0eXBlb2YgYXJncyA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy50ZW1wbGF0ZS5ob21vZ2VuZW91c1xuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnRlbXBsYXRlLmFyZ3NDb3VudCA9PT0gMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVxdWVzdCA9IHRoaXMudGVtcGxhdGUuYnVpbGRSZXF1ZXN0TW9kYWwoYXJncylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdW5zdXBwb3J0ZWQgYXJncyB3aGVuIGJ1aWxkaW5nIHJlcXVlc3Qgb3V0IGZyb20gdGVtcGxhdGU6ICR7YXJnc31gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0b0pTT04oaHVtYW5pemUgPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGRyb1NMQSA9IHRoaXMuZHJvU0xBICAgICAgICBcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0czogdGhpcy5pbnB1dHNcbiAgICAgICAgICAgICAgICAubWFwKChbLCB1dHhvXSkgPT4gKHsgb3V0cHV0X3BvaW50ZXI6IHV0eG8ub3V0cHV0X3BvaW50ZXIgfSkpLFxuICAgICAgICAgICAgb3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCh2dG8gPT4geyByZXR1cm4geyBcbiAgICAgICAgICAgICAgICBwa2g6IHZ0by5wa2gsXG4gICAgICAgICAgICAgICAgdGltZV9sb2NrOiB2dG8udGltZV9sb2NrLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2dG8udmFsdWUsXG4gICAgICAgICAgICB9fSksXG4gICAgICAgICAgICBkcl9vdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5fcmVxdWVzdCA/IHsgZGF0YV9yZXF1ZXN0OiB0aGlzLl9yZXF1ZXN0LnRvSlNPTihodW1hbml6ZSkgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICBjb21taXRfYW5kX3JldmVhbF9mZWU6IGRyb1NMQT8uY29tbWl0QW5kUmV2ZWFsRmVlLFxuICAgICAgICAgICAgICAgIG1pbl9jb25zZW5zdXNfcGVyY2VudGFnZTogZHJvU0xBPy5taW5Db25zZW5zdXNQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIHdpdG5lc3NlczogZHJvU0xBPy53aXRuZXNzZXMsXG4gICAgICAgICAgICAgICAgd2l0bmVzc19yZXdhcmQ6IGRyb1NMQT8ud2l0bmVzc1Jld2FyZCxcbiAgICAgICAgICAgICAgICBjb2xsYXRlcmFsOiBkcm9TTEE/LmNvbGxhdGVyYWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLnByZXBhcmVkICYmIHRoaXMuX3RhcmdldCAmJiB0aGlzLl9yZXF1ZXN0KSB7XG4gICAgICAgICAgICByZXR1cm4geyAgICBcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHRoaXMuaW5wdXRzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKFssIHV0eG9dKSA9PiB7IFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25JZCA9IHV0eG8ub3V0cHV0X3BvaW50ZXIuc3BsaXQoJzonKVswXVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0SW5kZXggPSBwYXJzZUludCh1dHhvLm91dHB1dF9wb2ludGVyLnNwbGl0KCc6JylbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFBvaW50ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZDogeyBTSEEyNTY6IEFycmF5LmZyb20oZnJvbUhleFN0cmluZyh0cmFuc2FjdGlvbklkKSkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKG91dHB1dEluZGV4ID4gMCA/IHsgb3V0cHV0SW5kZXggfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBvdXRwdXRzOiB0aGlzLm91dHB1dHMubWFwKHZ0byA9PiAoeyBcbiAgICAgICAgICAgICAgICAgICAgcGtoOiB7IGhhc2g6IEFycmF5LmZyb20oUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHZ0by5wa2gpLnRvQnl0ZXMyMCgpKSwgfSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZ0by52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHZ0by50aW1lX2xvY2sgPiAwID8geyB0aW1lTG9jazogdnRvLnRpbWVfbG9jayB9IDoge30pLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICBkck91dHB1dDogdGhpcy5fdG9Eck91dHB1dFByb3RvYnVmKCksXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogYW55KTogRGF0YVJlcXVlc3RQYXJhbXMgfCB1bmRlZmluZWQge1xuICAgICAgICB0YXJnZXQgPSB0aGlzLl9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQpXG4gICAgICAgIGlmICh0YXJnZXQgJiYgT2JqZWN0LmtleXModGFyZ2V0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIShcbiAgICAgICAgICAgICAgICB0YXJnZXRcbiAgICAgICAgICAgICAgICAgICAgJiYgdGFyZ2V0Py5mZWVzXG4gICAgICAgICAgICAgICAgICAgICYmIHBhcnNlSW50KHRhcmdldD8uZmVlcykgPiAwXG4gICAgICAgICAgICAgICAgICAgICYmIHRhcmdldD8ud2l0bmVzc2VzXG4gICAgICAgICAgICAgICAgICAgICYmICghdGhpcy50ZW1wbGF0ZSB8fCB0YXJnZXQ/LmFyZ3MpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIHNwZWNzIHdlcmUgcHJvdmlkZWQ6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRhcmdldC53aXRuZXNzZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhwbGljaXQgd2l0bmVzc2luZyBjb21taXR0ZWVzIG5vdCB5ZXQgc3VwcG9ydGVkOiAke3RhcmdldC53aXRuZXNzZXN9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldCBhcyBEYXRhUmVxdWVzdFBhcmFtc1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQ/OiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRhcmdldCkuZmlsdGVyKChba2V5LF0pID0+IFtcbiAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnLFxuICAgICAgICAgICAgICAgICAgICAnZmVlcycsXG4gICAgICAgICAgICAgICAgICAgICdtYXhSZXN1bHRTaXplJyxcbiAgICAgICAgICAgICAgICAgICAgJ3dpdG5lc3NlcycsXG4gICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF90b0RyT3V0cHV0UHJvdG9idWYoKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5kcm9TTEEsXG4gICAgICAgICAgICAgICAgZGF0YVJlcXVlc3Q6IHRoaXMuX3JlcXVlc3QudG9Qcm90b2J1ZigpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,27 +0,0 @@
1
- import { HexString, Nanowits, Network } from "../../types";
2
- import { TransactionPayloadMultiSig } from "../payloads";
3
- import { PublicKeyHashString, TransactionParams } from "../types";
4
- export type StakeDepositParams = TransactionParams & {
5
- authorization: HexString;
6
- value: Nanowits;
7
- withdrawer: PublicKeyHashString;
8
- };
9
- export declare class StakePayload extends TransactionPayloadMultiSig<StakeDepositParams> {
10
- static MAX_WEIGHT: number;
11
- static MIN_VALUE: number;
12
- constructor(protoTypeName: string, specs?: any);
13
- get maxWeight(): number;
14
- get prepared(): boolean;
15
- get value(): Nanowits;
16
- get weight(): Nanowits;
17
- intoReceipt(target: StakeDepositParams, network?: Network): {
18
- authorization: string;
19
- withdrawer: string;
20
- validator: string;
21
- };
22
- toJSON(_humanize?: boolean, network?: Network): any;
23
- toProtobuf(): any;
24
- validateTarget(target?: any): StakeDepositParams | undefined;
25
- protected _cleanTargetExtras(target?: any): any;
26
- }
27
- //# sourceMappingURL=StakePayload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StakePayload.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/payloads/StakePayload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAA4B,mBAAmB,EAAwB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACjD,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,mBAAmB,CAAC;CACnC,CAAA;AAMD,qBAAa,YAAa,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAE5E,OAAc,UAAU,SAAS;IACjC,OAAc,SAAS,SAAmB;gBAE7B,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAI/C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAM7B;IAED,IAAW,KAAK,IAAI,QAAQ,CAE3B;IAED,IAAW,MAAM,IAAI,QAAQ,CAM5B;IAEM,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO;;;;;IAQzD,MAAM,CAAC,SAAS,UAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,GAAG;IA6BjD,UAAU,IAAI,GAAG;IAoCjB,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IAsCnE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;CAYlD"}