@bitgo/sdk-coin-dot 4.3.15 → 4.4.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 (88) hide show
  1. package/.mocharc.yml +1 -1
  2. package/CHANGELOG.md +6 -0
  3. package/LICENSE +191 -0
  4. package/dist/src/dot.d.ts +154 -0
  5. package/dist/src/dot.d.ts.map +1 -0
  6. package/dist/src/dot.js +576 -0
  7. package/dist/src/index.d.ts +5 -0
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +21 -0
  10. package/dist/src/lib/addressInitializationBuilder.d.ts +79 -0
  11. package/dist/src/lib/addressInitializationBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/addressInitializationBuilder.js +182 -0
  13. package/dist/src/lib/batchTransactionBuilder.d.ts +62 -0
  14. package/dist/src/lib/batchTransactionBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/batchTransactionBuilder.js +229 -0
  16. package/dist/src/lib/claimBuilder.d.ts +58 -0
  17. package/dist/src/lib/claimBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/claimBuilder.js +117 -0
  19. package/dist/src/lib/errors.d.ts +8 -0
  20. package/dist/src/lib/errors.d.ts.map +1 -0
  21. package/dist/src/lib/errors.js +19 -0
  22. package/dist/src/lib/iface.d.ts +337 -0
  23. package/dist/src/lib/iface.d.ts.map +1 -0
  24. package/dist/src/lib/iface.js +128 -0
  25. package/dist/src/lib/iface_utils.d.ts +59 -0
  26. package/dist/src/lib/iface_utils.d.ts.map +1 -0
  27. package/dist/src/lib/iface_utils.js +92 -0
  28. package/dist/src/lib/index.d.ts +19 -0
  29. package/dist/src/lib/index.d.ts.map +1 -0
  30. package/dist/src/lib/index.js +71 -0
  31. package/dist/src/lib/keyPair.d.ts +38 -0
  32. package/dist/src/lib/keyPair.d.ts.map +1 -0
  33. package/dist/src/lib/keyPair.js +117 -0
  34. package/dist/src/lib/nativeTransferBuilder.d.ts +84 -0
  35. package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/nativeTransferBuilder.js +219 -0
  37. package/dist/src/lib/proxyBuilder.d.ts +54 -0
  38. package/dist/src/lib/proxyBuilder.d.ts.map +1 -0
  39. package/dist/src/lib/proxyBuilder.js +116 -0
  40. package/dist/src/lib/singletonRegistry.d.ts +7 -0
  41. package/dist/src/lib/singletonRegistry.d.ts.map +1 -0
  42. package/dist/src/lib/singletonRegistry.js +20 -0
  43. package/dist/src/lib/stakingBuilder.d.ts +66 -0
  44. package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
  45. package/dist/src/lib/stakingBuilder.js +167 -0
  46. package/dist/src/lib/transaction.d.ts +83 -0
  47. package/dist/src/lib/transaction.d.ts.map +1 -0
  48. package/dist/src/lib/transaction.js +610 -0
  49. package/dist/src/lib/transactionBuilder.d.ts +131 -0
  50. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilder.js +351 -0
  52. package/dist/src/lib/transactionBuilderFactory.d.ts +28 -0
  53. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  54. package/dist/src/lib/transactionBuilderFactory.js +104 -0
  55. package/dist/src/lib/transferBuilder.d.ts +11 -0
  56. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transferBuilder.js +11 -0
  58. package/dist/src/lib/txnSchema.d.ts +15 -0
  59. package/dist/src/lib/txnSchema.d.ts.map +1 -0
  60. package/dist/src/lib/txnSchema.js +117 -0
  61. package/dist/src/lib/unnominateBuilder.d.ts +24 -0
  62. package/dist/src/lib/unnominateBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/unnominateBuilder.js +48 -0
  64. package/dist/src/lib/unstakeBuilder.d.ts +38 -0
  65. package/dist/src/lib/unstakeBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/unstakeBuilder.js +87 -0
  67. package/dist/src/lib/utils.d.ts +261 -0
  68. package/dist/src/lib/utils.d.ts.map +1 -0
  69. package/dist/src/lib/utils.js +482 -0
  70. package/dist/src/lib/withdrawUnstakedBuilder.d.ts +38 -0
  71. package/dist/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/withdrawUnstakedBuilder.js +88 -0
  73. package/dist/src/register.d.ts +3 -0
  74. package/dist/src/register.d.ts.map +1 -0
  75. package/dist/src/register.js +11 -0
  76. package/dist/src/resources/index.d.ts +3 -0
  77. package/dist/src/resources/index.d.ts.map +1 -0
  78. package/dist/src/resources/index.js +19 -0
  79. package/dist/src/resources/mainnet.d.ts +2 -0
  80. package/dist/src/resources/mainnet.d.ts.map +1 -0
  81. package/dist/src/resources/mainnet.js +5 -0
  82. package/dist/src/resources/westend.d.ts +2 -0
  83. package/dist/src/resources/westend.d.ts.map +1 -0
  84. package/dist/src/resources/westend.js +5 -0
  85. package/dist/src/tdot.d.ts +12 -0
  86. package/dist/src/tdot.d.ts.map +1 -0
  87. package/dist/src/tdot.js +27 -0
  88. package/package.json +7 -7
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BatchTransactionBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
+ const iface_1 = require("./iface");
10
+ const iface_utils_1 = require("./iface_utils");
11
+ const transactionBuilder_1 = require("./transactionBuilder");
12
+ const txnSchema_1 = require("./txnSchema");
13
+ const utils_1 = __importDefault(require("./utils"));
14
+ class BatchTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this._atomic = false;
18
+ }
19
+ /** @inheritDoc */
20
+ buildTransaction() {
21
+ return this.buildBatchTransaction();
22
+ }
23
+ /**
24
+ * Build a transaction which batches together multiple transactions.
25
+ * The transactions which are batched together are passed in as an array of hex strings
26
+ * which are composed of the method to call and the arguments to pass into the method.
27
+ *
28
+ * @returns {UnsignedTransaction}
29
+ *
30
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#batchcalls-veccall
31
+ */
32
+ buildBatchTransaction() {
33
+ const baseTxInfo = this.createBaseTxInfo();
34
+ if (this._atomic) {
35
+ return txwrapper_polkadot_1.methods.utility.batchAll({
36
+ calls: this._calls,
37
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
38
+ }
39
+ else {
40
+ return txwrapper_polkadot_1.methods.utility.batch({
41
+ calls: this._calls,
42
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
43
+ }
44
+ }
45
+ get transactionType() {
46
+ return sdk_core_1.TransactionType.Batch;
47
+ }
48
+ /**
49
+ * Set multiple unsigned transactions to be batched and broadcast as a single transaction
50
+ *
51
+ * @param {BatchCall[]} calls unsigned transactions
52
+ * @returns {BatchTransactionBuilder} This batch transaction builder.
53
+ */
54
+ calls(calls) {
55
+ this.validateCalls(calls);
56
+ this._calls = calls;
57
+ return this;
58
+ }
59
+ /**
60
+ * If true when a batched call fails the entire transactions is rolled back, if false no roll back
61
+ * is performed and the effects of any successful call prior to the error remain.
62
+ *
63
+ * @param atomic true if calls must succeed atomically, false otherwise.
64
+ */
65
+ atomic(atomic) {
66
+ this._atomic = atomic;
67
+ return this;
68
+ }
69
+ /** @inheritdoc */
70
+ validateDecodedTransaction(decodedTxn) {
71
+ const txMethod = decodedTxn.method.args;
72
+ const validationResult = this.validateBatchTransactionFields(txMethod.calls);
73
+ if (validationResult.error) {
74
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
75
+ }
76
+ }
77
+ /** @inheritdoc */
78
+ fromImplementation(rawTransaction) {
79
+ const tx = super.fromImplementation(rawTransaction);
80
+ if (this._method?.name === iface_1.MethodNames.Batch || this._method?.name === iface_1.MethodNames.BatchAll) {
81
+ if (this._method?.name === iface_1.MethodNames.BatchAll) {
82
+ this.atomic(true);
83
+ }
84
+ const txMethod = this._method.args;
85
+ if (!txMethod.calls) {
86
+ throw new sdk_core_1.InvalidTransactionError('failed to decode calls from batch transaction');
87
+ }
88
+ const callsToBatch = [];
89
+ txMethod.calls.forEach((call) => {
90
+ const method = call.callIndex;
91
+ const decodedMethod = (0, sdk_core_1.toUint8Array)(utils_1.default.stripHexPrefix(method));
92
+ const decodedCall = this._registry.findMetaCall(decodedMethod);
93
+ if (decodedCall.section === iface_1.SectionNames.Proxy &&
94
+ (decodedCall.method === iface_1.MethodNames.Anonymous || decodedCall.method === iface_1.MethodNames.PureProxy)) {
95
+ callsToBatch.push(this.getPureProxyCall(call.args));
96
+ }
97
+ else if (decodedCall.section === iface_1.SectionNames.Proxy && decodedCall.method === iface_1.MethodNames.AddProxy) {
98
+ callsToBatch.push(this.getAddProxyCall(call.args));
99
+ }
100
+ else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.BondExtra) {
101
+ callsToBatch.push(this.getBondExtraCall(call.args));
102
+ }
103
+ else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Bond) {
104
+ callsToBatch.push(this.getBondCall(call.args));
105
+ }
106
+ else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Unbond) {
107
+ callsToBatch.push(this.getUnbondCall(call.args));
108
+ }
109
+ else if (decodedCall.section === iface_1.SectionNames.Staking && decodedCall.method === iface_1.MethodNames.Chill) {
110
+ callsToBatch.push(this.getChillCall());
111
+ }
112
+ else if (decodedCall.section === iface_1.SectionNames.Proxy && decodedCall.method === iface_1.MethodNames.RemoveProxy) {
113
+ callsToBatch.push(this.getRemoveProxyCall(call.args));
114
+ }
115
+ else {
116
+ throw new sdk_core_1.NotImplementedError(`batching of transaction with index ${method} unsupported`);
117
+ }
118
+ });
119
+ this.calls(callsToBatch);
120
+ }
121
+ else {
122
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected ${iface_1.MethodNames.Batch}`);
123
+ }
124
+ return tx;
125
+ }
126
+ /** @inheritdoc */
127
+ validateTransaction(_) {
128
+ super.validateTransaction(_);
129
+ this.validateFields();
130
+ }
131
+ /**
132
+ * Validate list of unsigned transactions added to batch
133
+ *
134
+ * @param {string[]} calls
135
+ *
136
+ */
137
+ validateCalls(calls) {
138
+ calls.forEach((call) => {
139
+ if (call.slice(0, 2) !== '0x') {
140
+ // example: '0x160400000000000000'
141
+ throw new sdk_core_1.BuildTransactionError('call in string format must be hex format of a method and its arguments');
142
+ }
143
+ });
144
+ }
145
+ validateFields() {
146
+ const validationResult = this.validateBatchTransactionFields(this._calls);
147
+ if (validationResult.error) {
148
+ throw new sdk_core_1.InvalidTransactionError(`AddressInitialization Transaction validation failed: ${validationResult.error.message}`);
149
+ }
150
+ }
151
+ validateBatchTransactionFields(calls) {
152
+ return txnSchema_1.BatchTransactionSchema.validate({
153
+ calls,
154
+ });
155
+ }
156
+ getPureProxyCall(args) {
157
+ const baseTxInfo = this.createBaseTxInfo();
158
+ const unsigned = utils_1.default.pureProxy({
159
+ proxyType: args.proxy_type,
160
+ index: args.index,
161
+ delay: args.delay,
162
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
163
+ return unsigned.method;
164
+ }
165
+ getBondCall(args) {
166
+ const baseTxInfo = this.createBaseTxInfo();
167
+ const unsigned = txwrapper_polkadot_1.methods.staking.bond({
168
+ value: args.value,
169
+ payee: this.getPayee(args.payee),
170
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
171
+ return unsigned.method;
172
+ }
173
+ getUnbondCall(args) {
174
+ const baseTxInfo = this.createBaseTxInfo();
175
+ const unsigned = txwrapper_polkadot_1.methods.staking.unbond({
176
+ value: args.value,
177
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
178
+ return unsigned.method;
179
+ }
180
+ getPayee(payee) {
181
+ if ((0, iface_utils_1.isStakeBatchCallPayeeStash)(payee)) {
182
+ return 'Stash';
183
+ }
184
+ else if ((0, iface_utils_1.isStakeBatchCallPayeeController)(payee)) {
185
+ return 'Controller';
186
+ }
187
+ else if ((0, iface_utils_1.isStakeBatchCallPayeeAccount)(payee)) {
188
+ return { Account: payee.account };
189
+ }
190
+ else if ((0, iface_utils_1.isStakeBatchCallPayeeStaked)(payee)) {
191
+ return 'Staked';
192
+ }
193
+ else {
194
+ throw new Error(`Invalid payee: ${payee}`);
195
+ }
196
+ }
197
+ getAddProxyCall(args) {
198
+ const baseTxInfo = this.createBaseTxInfo();
199
+ const unsigned = txwrapper_polkadot_1.methods.proxy.addProxy({
200
+ delegate: (0, iface_utils_1.getDelegateAddress)(args),
201
+ proxyType: args.proxy_type,
202
+ delay: args.delay,
203
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
204
+ return unsigned.method;
205
+ }
206
+ getBondExtraCall(args) {
207
+ const baseTxInfo = this.createBaseTxInfo();
208
+ const unsigned = txwrapper_polkadot_1.methods.staking.bondExtra({
209
+ maxAdditional: args.max_additional,
210
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
211
+ return unsigned.method;
212
+ }
213
+ getRemoveProxyCall(args) {
214
+ const baseTxInfo = this.createBaseTxInfo();
215
+ const unsigned = txwrapper_polkadot_1.methods.proxy.removeProxy({
216
+ delegate: (0, iface_utils_1.getDelegateAddress)(args),
217
+ proxyType: args.proxy_type,
218
+ delay: args.delay,
219
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
220
+ return unsigned.method;
221
+ }
222
+ getChillCall() {
223
+ const baseTxInfo = this.createBaseTxInfo();
224
+ const unsigned = txwrapper_polkadot_1.methods.staking.chill({}, baseTxInfo.baseTxInfo, baseTxInfo.options);
225
+ return unsigned.method;
226
+ }
227
+ }
228
+ exports.BatchTransactionBuilder = BatchTransactionBuilder;
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2JhdGNoVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQU15QjtBQUd6QixzRUFBd0Q7QUFFeEQsbUNBWWlCO0FBQ2pCLCtDQU11QjtBQUV2Qiw2REFBMEQ7QUFDMUQsMkNBQXFEO0FBQ3JELG9EQUE0QjtBQUU1QixNQUFhLHVCQUF3QixTQUFRLHVDQUFrQjtJQUs3RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDN0I7Z0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ25CLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQzFCO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTthQUNuQixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9CLENB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QUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUEyQjtRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3hDO1lBQ0UsUUFBUSxFQUFFLElBQUEsZ0NBQWtCLEVBQUMsSUFBSSxDQUFDO1lBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLDRCQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEYsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQXBRRCwwREFvUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RJbXBsZW1lbnRlZEVycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIHRvVWludDhBcnJheSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICdqb2knO1xuaW1wb3J0IHtcbiAgQWRkQW5vbnltb3VzUHJveHlCYXRjaENhbGxBcmdzLFxuICBBZGRQcm94eUJhdGNoQ2FsbEFyZ3MsXG4gIEJhdGNoQ2FsbE9iamVjdCxcbiAgQmF0Y2hBcmdzLFxuICBNZXRob2ROYW1lcyxcbiAgU2VjdGlvbk5hbWVzLFxuICBTdGFrZUFyZ3NQYXllZSxcbiAgU3Rha2VCYXRjaENhbGxBcmdzLFxuICBTdGFrZUJhdGNoQ2FsbFBheWVlLFxuICBVbmJvbmRDYWxsQXJncyxcbiAgU3Rha2VNb3JlQ2FsbEFyZ3MsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHtcbiAgZ2V0RGVsZWdhdGVBZGRyZXNzLFxuICBpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFrZWQsXG4gIGlzU3Rha2VCYXRjaENhbGxQYXllZVN0YXNoLFxuICBpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVDb250cm9sbGVyLFxuICBpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVBY2NvdW50LFxufSBmcm9tICcuL2lmYWNlX3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYXRjaFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2NhbGxzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHByaXZhdGUgX2F0b21pYyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5idWlsZEJhdGNoVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHRyYW5zYWN0aW9uIHdoaWNoIGJhdGNoZXMgdG9nZXRoZXIgbXVsdGlwbGUgdHJhbnNhY3Rpb25zLlxuICAgKiBUaGUgdHJhbnNhY3Rpb25zIHdoaWNoIGFyZSBiYXRjaGVkIHRvZ2V0aGVyIGFyZSBwYXNzZWQgaW4gYXMgYW4gYXJyYXkgb2YgaGV4IHN0cmluZ3NcbiAgICogd2hpY2ggYXJlIGNvbXBvc2VkIG9mIHRoZSBtZXRob2QgdG8gY2FsbCBhbmQgdGhlIGFyZ3VtZW50cyB0byBwYXNzIGludG8gdGhlIG1ldGhvZC5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jYmF0Y2hjYWxscy12ZWNjYWxsXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRCYXRjaFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBpZiAodGhpcy5fYXRvbWljKSB7XG4gICAgICByZXR1cm4gbWV0aG9kcy51dGlsaXR5LmJhdGNoQWxsKFxuICAgICAgICB7XG4gICAgICAgICAgY2FsbHM6IHRoaXMuX2NhbGxzLFxuICAgICAgICB9LFxuICAgICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ldGhvZHMudXRpbGl0eS5iYXRjaChcbiAgICAgICAge1xuICAgICAgICAgIGNhbGxzOiB0aGlzLl9jYWxscyxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkJhdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBtdWx0aXBsZSB1bnNpZ25lZCB0cmFuc2FjdGlvbnMgdG8gYmUgYmF0Y2hlZCBhbmQgYnJvYWRjYXN0IGFzIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7QmF0Y2hDYWxsW119IGNhbGxzIHVuc2lnbmVkIHRyYW5zYWN0aW9uc1xuICAgKiBAcmV0dXJucyB7QmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgYmF0Y2ggdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICovXG4gIGNhbGxzKGNhbGxzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVDYWxscyhjYWxscyk7XG4gICAgdGhpcy5fY2FsbHMgPSBjYWxscztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0cnVlIHdoZW4gYSBiYXRjaGVkIGNhbGwgZmFpbHMgdGhlIGVudGlyZSB0cmFuc2FjdGlvbnMgaXMgcm9sbGVkIGJhY2ssIGlmIGZhbHNlIG5vIHJvbGwgYmFja1xuICAgKiBpcyBwZXJmb3JtZWQgYW5kIHRoZSBlZmZlY3RzIG9mIGFueSBzdWNjZXNzZnVsIGNhbGwgcHJpb3IgdG8gdGhlIGVycm9yIHJlbWFpbi5cbiAgICpcbiAgICogQHBhcmFtIGF0b21pYyB0cnVlIGlmIGNhbGxzIG11c3Qgc3VjY2VlZCBhdG9taWNhbGx5LCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBhdG9taWMoYXRvbWljOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fYXRvbWljID0gYXRvbWljO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEJhdGNoQXJncztcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gdGhpcy52YWxpZGF0ZUJhdGNoVHJhbnNhY3Rpb25GaWVsZHModHhNZXRob2QuY2FsbHMpO1xuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5CYXRjaCB8fCB0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkJhdGNoQWxsKSB7XG4gICAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5CYXRjaEFsbCkge1xuICAgICAgICB0aGlzLmF0b21pYyh0cnVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgQmF0Y2hBcmdzO1xuICAgICAgaWYgKCF0eE1ldGhvZC5jYWxscykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgY2FsbHMgZnJvbSBiYXRjaCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgY2FsbHNUb0JhdGNoOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgdHhNZXRob2QuY2FsbHMuZm9yRWFjaCgoY2FsbCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2QgPSAoY2FsbCBhcyBCYXRjaENhbGxPYmplY3QpLmNhbGxJbmRleDtcbiAgICAgICAgY29uc3QgZGVjb2RlZE1ldGhvZCA9IHRvVWludDhBcnJheSh1dGlscy5zdHJpcEhleFByZWZpeChtZXRob2QpKTtcbiAgICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB0aGlzLl9yZWdpc3RyeS5maW5kTWV0YUNhbGwoZGVjb2RlZE1ldGhvZCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkZWNvZGVkQ2FsbC5zZWN0aW9uID09PSBTZWN0aW9uTmFtZXMuUHJveHkgJiZcbiAgICAgICAgICAoZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5Bbm9ueW1vdXMgfHwgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5QdXJlUHJveHkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhbGxzVG9CYXRjaC5wdXNoKHRoaXMuZ2V0UHVyZVByb3h5Q2FsbChjYWxsLmFyZ3MgYXMgQWRkQW5vbnltb3VzUHJveHlCYXRjaENhbGxBcmdzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlByb3h5ICYmIGRlY29kZWRDYWxsLm1ldGhvZCA9PT0gTWV0aG9kTmFtZXMuQWRkUHJveHkpIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldEFkZFByb3h5Q2FsbChjYWxsLmFyZ3MgYXMgQWRkUHJveHlCYXRjaENhbGxBcmdzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgJiYgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5Cb25kRXh0cmEpIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldEJvbmRFeHRyYUNhbGwoY2FsbC5hcmdzIGFzIFN0YWtlTW9yZUNhbGxBcmdzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgJiYgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5Cb25kKSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRCb25kQ2FsbChjYWxsLmFyZ3MgYXMgU3Rha2VCYXRjaENhbGxBcmdzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgJiYgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5VbmJvbmQpIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldFVuYm9uZENhbGwoY2FsbC5hcmdzIGFzIFVuYm9uZENhbGxBcmdzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZENhbGwuc2VjdGlvbiA9PT0gU2VjdGlvbk5hbWVzLlN0YWtpbmcgJiYgZGVjb2RlZENhbGwubWV0aG9kID09PSBNZXRob2ROYW1lcy5DaGlsbCkge1xuICAgICAgICAgIGNhbGxzVG9CYXRjaC5wdXNoKHRoaXMuZ2V0Q2hpbGxDYWxsKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGRlY29kZWRDYWxsLnNlY3Rpb24gPT09IFNlY3Rpb25OYW1lcy5Qcm94eSAmJiBkZWNvZGVkQ2FsbC5tZXRob2QgPT09IE1ldGhvZE5hbWVzLlJlbW92ZVByb3h5KSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRSZW1vdmVQcm94eUNhbGwoY2FsbC5hcmdzIGFzIEFkZFByb3h5QmF0Y2hDYWxsQXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKGBiYXRjaGluZyBvZiB0cmFuc2FjdGlvbiB3aXRoIGluZGV4ICR7bWV0aG9kfSB1bnN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2FsbHMoY2FsbHNUb0JhdGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkICR7TWV0aG9kTmFtZXMuQmF0Y2h9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBsaXN0IG9mIHVuc2lnbmVkIHRyYW5zYWN0aW9ucyBhZGRlZCB0byBiYXRjaFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjYWxsc1xuICAgKlxuICAgKi9cbiAgdmFsaWRhdGVDYWxscyhjYWxsczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjYWxscy5mb3JFYWNoKChjYWxsKSA9PiB7XG4gICAgICBpZiAoY2FsbC5zbGljZSgwLCAyKSAhPT0gJzB4Jykge1xuICAgICAgICAvLyBleGFtcGxlOiAnMHgxNjA0MDAwMDAwMDAwMDAwMDAnXG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2NhbGwgaW4gc3RyaW5nIGZvcm1hdCBtdXN0IGJlIGhleCBmb3JtYXQgb2YgYSBtZXRob2QgYW5kIGl0cyBhcmd1bWVudHMnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKHRoaXMuX2NhbGxzKTtcbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgQWRkcmVzc0luaXRpYWxpemF0aW9uIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKGNhbGxzOiAoc3RyaW5nIHwgQmF0Y2hDYWxsT2JqZWN0KVtdKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgcmV0dXJuIEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgY2FsbHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFB1cmVQcm94eUNhbGwoYXJnczogQWRkQW5vbnltb3VzUHJveHlCYXRjaENhbGxBcmdzKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdW5zaWduZWQgPSB1dGlscy5wdXJlUHJveHkoXG4gICAgICB7XG4gICAgICAgIHByb3h5VHlwZTogYXJncy5wcm94eV90eXBlLFxuICAgICAgICBpbmRleDogYXJncy5pbmRleCxcbiAgICAgICAgZGVsYXk6IGFyZ3MuZGVsYXksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gdW5zaWduZWQubWV0aG9kO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb25kQ2FsbChhcmdzOiBTdGFrZUJhdGNoQ2FsbEFyZ3MpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB1bnNpZ25lZCA9IG1ldGhvZHMuc3Rha2luZy5ib25kKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXJncy52YWx1ZSxcbiAgICAgICAgcGF5ZWU6IHRoaXMuZ2V0UGF5ZWUoYXJncy5wYXllZSksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gdW5zaWduZWQubWV0aG9kO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVbmJvbmRDYWxsKGFyZ3M6IFVuYm9uZENhbGxBcmdzKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdW5zaWduZWQgPSBtZXRob2RzLnN0YWtpbmcudW5ib25kKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXJncy52YWx1ZSxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cblxuICBwcml2YXRlIGdldFBheWVlKHBheWVlOiBTdGFrZUJhdGNoQ2FsbFBheWVlKTogU3Rha2VBcmdzUGF5ZWUge1xuICAgIGlmIChpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVTdGFzaChwYXllZSkpIHtcbiAgICAgIHJldHVybiAnU3Rhc2gnO1xuICAgIH0gZWxzZSBpZiAoaXNTdGFrZUJhdGNoQ2FsbFBheWVlQ29udHJvbGxlcihwYXllZSkpIHtcbiAgICAgIHJldHVybiAnQ29udHJvbGxlcic7XG4gICAgfSBlbHNlIGlmIChpc1N0YWtlQmF0Y2hDYWxsUGF5ZWVBY2NvdW50KHBheWVlKSkge1xuICAgICAgcmV0dXJuIHsgQWNjb3VudDogcGF5ZWUuYWNjb3VudCB9O1xuICAgIH0gZWxzZSBpZiAoaXNTdGFrZUJhdGNoQ2FsbFBheWVlU3Rha2VkKHBheWVlKSkge1xuICAgICAgcmV0dXJuICdTdGFrZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF5ZWU6ICR7cGF5ZWV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBZGRQcm94eUNhbGwoYXJnczogQWRkUHJveHlCYXRjaENhbGxBcmdzKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdW5zaWduZWQgPSBtZXRob2RzLnByb3h5LmFkZFByb3h5KFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0ZTogZ2V0RGVsZWdhdGVBZGRyZXNzKGFyZ3MpLFxuICAgICAgICBwcm94eVR5cGU6IGFyZ3MucHJveHlfdHlwZSxcbiAgICAgICAgZGVsYXk6IGFyZ3MuZGVsYXksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gdW5zaWduZWQubWV0aG9kO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb25kRXh0cmFDYWxsKGFyZ3M6IFN0YWtlTW9yZUNhbGxBcmdzKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgY29uc3QgdW5zaWduZWQgPSBtZXRob2RzLnN0YWtpbmcuYm9uZEV4dHJhKFxuICAgICAge1xuICAgICAgICBtYXhBZGRpdGlvbmFsOiBhcmdzLm1heF9hZGRpdGlvbmFsLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVtb3ZlUHJveHlDYWxsKGFyZ3M6IEFkZFByb3h5QmF0Y2hDYWxsQXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gbWV0aG9kcy5wcm94eS5yZW1vdmVQcm94eShcbiAgICAgIHtcbiAgICAgICAgZGVsZWdhdGU6IGdldERlbGVnYXRlQWRkcmVzcyhhcmdzKSxcbiAgICAgICAgcHJveHlUeXBlOiBhcmdzLnByb3h5X3R5cGUsXG4gICAgICAgIGRlbGF5OiBhcmdzLmRlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hpbGxDYWxsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHVuc2lnbmVkID0gbWV0aG9kcy5zdGFraW5nLmNoaWxsKHt9LCBiYXNlVHhJbmZvLmJhc2VUeEluZm8sIGJhc2VUeEluZm8ub3B0aW9ucyk7XG4gICAgcmV0dXJuIHVuc2lnbmVkLm1ldGhvZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,58 @@
1
+ import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
4
+ import { Transaction } from './transaction';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ export declare class ClaimBuilder extends TransactionBuilder {
7
+ protected _validatorStash: string;
8
+ protected _claimEra: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ /**
11
+ *
12
+ * Pay out all the stakers behind a single validator for a single era.
13
+ * Any account can create this transaction.
14
+ *
15
+ * @returns {UnsignedTransaction} an unsigned Dot transaction
16
+ *
17
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
18
+ */
19
+ protected buildTransaction(): UnsignedTransaction;
20
+ /**
21
+ * Get the transaction type.
22
+ */
23
+ protected get transactionType(): TransactionType;
24
+ /**
25
+ *
26
+ * The stash account of the validator.
27
+ *
28
+ * @param {string} validatorStash
29
+ * @returns {ClaimBuilder} This claim builder.
30
+ *
31
+ */
32
+ validatorStash(validatorStash: BaseAddress): this;
33
+ /**
34
+ * The era to claim.
35
+ *
36
+ * @param {string} claimEra
37
+ * @returns {ClaimBuilder} This claim builder.
38
+ *
39
+ */
40
+ claimEra(claimEra: string): this;
41
+ /** @inheritdoc */
42
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
43
+ /** @inheritdoc */
44
+ protected fromImplementation(rawTransaction: string): Transaction;
45
+ /** @inheritdoc */
46
+ validateTransaction(_: Transaction): void;
47
+ /**
48
+ *
49
+ * The stash account of the validator.
50
+ *
51
+ * @param {string} claimEra
52
+ * @param {string} validatorStash
53
+ * @throws {Error} If the expected fields are not valid.
54
+ *
55
+ */
56
+ private validateFields;
57
+ }
58
+ //# sourceMappingURL=claimBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/claimBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIxG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD;;OAEG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI;IAMjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMhC,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAYrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAiBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClaimBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const iface_1 = require("./iface");
11
+ const transactionBuilder_1 = require("./transactionBuilder");
12
+ const txnSchema_1 = require("./txnSchema");
13
+ const utils_1 = __importDefault(require("./utils"));
14
+ class ClaimBuilder extends transactionBuilder_1.TransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ }
18
+ /**
19
+ *
20
+ * Pay out all the stakers behind a single validator for a single era.
21
+ * Any account can create this transaction.
22
+ *
23
+ * @returns {UnsignedTransaction} an unsigned Dot transaction
24
+ *
25
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#payoutstakersvalidator_stash-accountid32-era-u32
26
+ */
27
+ buildTransaction() {
28
+ const baseTxInfo = this.createBaseTxInfo();
29
+ return txwrapper_polkadot_1.methods.staking.payoutStakers({
30
+ validatorStash: this._validatorStash,
31
+ era: this._claimEra,
32
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
33
+ }
34
+ /**
35
+ * Get the transaction type.
36
+ */
37
+ get transactionType() {
38
+ return sdk_core_1.TransactionType.StakingClaim;
39
+ }
40
+ /**
41
+ *
42
+ * The stash account of the validator.
43
+ *
44
+ * @param {string} validatorStash
45
+ * @returns {ClaimBuilder} This claim builder.
46
+ *
47
+ */
48
+ validatorStash(validatorStash) {
49
+ this.validateAddress(validatorStash);
50
+ this._validatorStash = validatorStash.address;
51
+ return this;
52
+ }
53
+ /**
54
+ * The era to claim.
55
+ *
56
+ * @param {string} claimEra
57
+ * @returns {ClaimBuilder} This claim builder.
58
+ *
59
+ */
60
+ claimEra(claimEra) {
61
+ this.validateValue(new bignumber_js_1.default(claimEra));
62
+ this._claimEra = claimEra;
63
+ return this;
64
+ }
65
+ /** @inheritdoc */
66
+ validateDecodedTransaction(decodedTxn) {
67
+ if (decodedTxn.method?.name === iface_1.MethodNames.PayoutStakers) {
68
+ const txMethod = decodedTxn.method.args;
69
+ const claimEra = txMethod.era;
70
+ const validatorStash = txMethod.validatorStash;
71
+ const validationResult = txnSchema_1.ClaimTransactionSchema.validate({ claimEra, validatorStash });
72
+ if (validationResult.error) {
73
+ throw new sdk_core_1.InvalidTransactionError(`Claim Transaction validation failed: ${validationResult.error.message}`);
74
+ }
75
+ }
76
+ }
77
+ /** @inheritdoc */
78
+ fromImplementation(rawTransaction) {
79
+ const tx = super.fromImplementation(rawTransaction);
80
+ if (this._method?.name === iface_1.MethodNames.PayoutStakers) {
81
+ const txMethod = this._method.args;
82
+ this.validatorStash({
83
+ address: utils_1.default.decodeDotAddress(txMethod.validatorStash, utils_1.default.getAddressFormat(this._coinConfig.name)),
84
+ });
85
+ this.claimEra(txMethod.era);
86
+ }
87
+ else {
88
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected payoutStakers`);
89
+ }
90
+ return tx;
91
+ }
92
+ /** @inheritdoc */
93
+ validateTransaction(_) {
94
+ super.validateTransaction(_);
95
+ this.validateFields(this._claimEra, this._validatorStash);
96
+ }
97
+ /**
98
+ *
99
+ * The stash account of the validator.
100
+ *
101
+ * @param {string} claimEra
102
+ * @param {string} validatorStash
103
+ * @throws {Error} If the expected fields are not valid.
104
+ *
105
+ */
106
+ validateFields(claimEra, validatorStash) {
107
+ const validationResult = txnSchema_1.ClaimTransactionSchema.validate({
108
+ claimEra,
109
+ validatorStash,
110
+ });
111
+ if (validationResult.error) {
112
+ throw new sdk_core_1.InvalidTransactionError(`Claim Builder Transaction validation failed: ${validationResult.error.message}`);
113
+ }
114
+ }
115
+ }
116
+ exports.ClaimBuilder = ClaimBuilder;
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGFpbUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXVHO0FBR3ZHLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFDckMsbUNBQWlEO0FBRWpELDZEQUEwRDtBQUMxRCwyQ0FBcUQ7QUFDckQsb0RBQTRCO0FBRTVCLE1BQWEsWUFBYSxTQUFRLHVDQUFrQjtJQUlsRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQ2xDO1lBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNwQixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxjQUEyQjtRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQ7UUFDNUUsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxtQkFBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBNEIsQ0FBQztZQUNoRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzlCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0NBQXdDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzlHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLG1CQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFpQixDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRSxlQUFLLENBQUMsZ0JBQWdCLENBQzdCLFFBQVEsQ0FBQyxjQUFjLEVBQ3ZCLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FDL0Q7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLDBCQUEwQixDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxDQUFjO1FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLGNBQWMsQ0FBQyxRQUFnQixFQUFFLGNBQXNCO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsa0NBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3ZELFFBQVE7WUFDUixjQUFjO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLGdEQUFnRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2pGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekhELG9DQXlIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IENsYWltQXJncywgTWV0aG9kTmFtZXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBDbGFpbVRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ2xhaW1CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF92YWxpZGF0b3JTdGFzaDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NsYWltRXJhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFBheSBvdXQgYWxsIHRoZSBzdGFrZXJzIGJlaGluZCBhIHNpbmdsZSB2YWxpZGF0b3IgZm9yIGEgc2luZ2xlIGVyYS5cbiAgICogQW55IGFjY291bnQgY2FuIGNyZWF0ZSB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcGF5b3V0c3Rha2Vyc3ZhbGlkYXRvcl9zdGFzaC1hY2NvdW50aWQzMi1lcmEtdTMyXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIG1ldGhvZHMuc3Rha2luZy5wYXlvdXRTdGFrZXJzKFxuICAgICAge1xuICAgICAgICB2YWxpZGF0b3JTdGFzaDogdGhpcy5fdmFsaWRhdG9yU3Rhc2gsXG4gICAgICAgIGVyYTogdGhpcy5fY2xhaW1FcmEsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0NsYWltO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBzdGFzaCBhY2NvdW50IG9mIHRoZSB2YWxpZGF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxpZGF0b3JTdGFzaFxuICAgKiBAcmV0dXJucyB7Q2xhaW1CdWlsZGVyfSBUaGlzIGNsYWltIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICB2YWxpZGF0b3JTdGFzaCh2YWxpZGF0b3JTdGFzaDogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh2YWxpZGF0b3JTdGFzaCk7XG4gICAgdGhpcy5fdmFsaWRhdG9yU3Rhc2ggPSB2YWxpZGF0b3JTdGFzaC5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlcmEgdG8gY2xhaW0uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFpbUVyYVxuICAgKiBAcmV0dXJucyB7Q2xhaW1CdWlsZGVyfSBUaGlzIGNsYWltIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICBjbGFpbUVyYShjbGFpbUVyYTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoY2xhaW1FcmEpKTtcbiAgICB0aGlzLl9jbGFpbUVyYSA9IGNsYWltRXJhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUGF5b3V0U3Rha2Vycykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgQ2xhaW1BcmdzO1xuICAgICAgY29uc3QgY2xhaW1FcmEgPSB0eE1ldGhvZC5lcmE7XG4gICAgICBjb25zdCB2YWxpZGF0b3JTdGFzaCA9IHR4TWV0aG9kLnZhbGlkYXRvclN0YXNoO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IENsYWltVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyBjbGFpbUVyYSwgdmFsaWRhdG9yU3Rhc2ggfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYENsYWltIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5QYXlvdXRTdGFrZXJzKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIENsYWltQXJncztcbiAgICAgIHRoaXMudmFsaWRhdG9yU3Rhc2goe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKFxuICAgICAgICAgIHR4TWV0aG9kLnZhbGlkYXRvclN0YXNoLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2xhaW1FcmEodHhNZXRob2QuZXJhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgcGF5b3V0U3Rha2Vyc2ApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl9jbGFpbUVyYSwgdGhpcy5fdmFsaWRhdG9yU3Rhc2gpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBzdGFzaCBhY2NvdW50IG9mIHRoZSB2YWxpZGF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFpbUVyYVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsaWRhdG9yU3Rhc2hcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBleHBlY3RlZCBmaWVsZHMgYXJlIG5vdCB2YWxpZC5cbiAgICpcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoY2xhaW1FcmE6IHN0cmluZywgdmFsaWRhdG9yU3Rhc2g6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBDbGFpbVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGNsYWltRXJhLFxuICAgICAgdmFsaWRhdG9yU3Rhc2gsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgQ2xhaW0gQnVpbGRlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { BuildTransactionError } from '@bitgo/sdk-core';
2
+ export declare class AddressValidationError extends BuildTransactionError {
3
+ constructor(malformedAddress: string);
4
+ }
5
+ export declare class InvalidFeeError extends BuildTransactionError {
6
+ constructor(type?: string, expectedType?: string);
7
+ }
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,sBAAuB,SAAQ,qBAAqB;gBACnD,gBAAgB,EAAE,MAAM;CAIrC;AAED,qBAAa,eAAgB,SAAQ,qBAAqB;gBAC5C,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAIjD"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidFeeError = exports.AddressValidationError = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ class AddressValidationError extends sdk_core_1.BuildTransactionError {
6
+ constructor(malformedAddress) {
7
+ super(`The address '${malformedAddress}' is not a well-formed dot address`);
8
+ this.name = AddressValidationError.name;
9
+ }
10
+ }
11
+ exports.AddressValidationError = AddressValidationError;
12
+ class InvalidFeeError extends sdk_core_1.BuildTransactionError {
13
+ constructor(type, expectedType) {
14
+ super(`The specified type: "${type}" is not valid. Please provide the type: "${expectedType}"`);
15
+ this.name = InvalidFeeError.name;
16
+ }
17
+ }
18
+ exports.InvalidFeeError = InvalidFeeError;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXdEO0FBRXhELE1BQWEsc0JBQXVCLFNBQVEsZ0NBQXFCO0lBQy9ELFlBQVksZ0JBQXdCO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsZ0JBQWdCLG9DQUFvQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBTEQsd0RBS0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsZ0NBQXFCO0lBQ3hELFlBQVksSUFBYSxFQUFFLFlBQXFCO1FBQzlDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSw2Q0FBNkMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBTEQsMENBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5leHBvcnQgY2xhc3MgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciBleHRlbmRzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1hbGZvcm1lZEFkZHJlc3M6IHN0cmluZykge1xuICAgIHN1cGVyKGBUaGUgYWRkcmVzcyAnJHttYWxmb3JtZWRBZGRyZXNzfScgaXMgbm90IGEgd2VsbC1mb3JtZWQgZG90IGFkZHJlc3NgKTtcbiAgICB0aGlzLm5hbWUgPSBBZGRyZXNzVmFsaWRhdGlvbkVycm9yLm5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRGZWVFcnJvciBleHRlbmRzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHR5cGU/OiBzdHJpbmcsIGV4cGVjdGVkVHlwZT86IHN0cmluZykge1xuICAgIHN1cGVyKGBUaGUgc3BlY2lmaWVkIHR5cGU6IFwiJHt0eXBlfVwiIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHByb3ZpZGUgdGhlIHR5cGU6IFwiJHtleHBlY3RlZFR5cGV9XCJgKTtcbiAgICB0aGlzLm5hbWUgPSBJbnZhbGlkRmVlRXJyb3IubmFtZTtcbiAgfVxufVxuIl19