@bitgo/account-lib 2.20.0-rc.33 → 2.20.0-rc.36

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 (102) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/src/coin/polygon/transactionBuilder.d.ts +2 -2
  3. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -1
  4. package/dist/src/coin/polygon/transactionBuilder.js +3 -3
  5. package/dist/src/index.d.ts +2 -2
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +3 -3
  8. package/dist/tsconfig.tsbuildinfo +16628 -21871
  9. package/package.json +20 -26
  10. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
  11. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
  12. package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
  13. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
  14. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
  15. package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
  16. package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
  17. package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
  18. package/dist/src/coin/dot/claimBuilder.js +0 -119
  19. package/dist/src/coin/dot/errors.d.ts +0 -8
  20. package/dist/src/coin/dot/errors.d.ts.map +0 -1
  21. package/dist/src/coin/dot/errors.js +0 -19
  22. package/dist/src/coin/dot/iface.d.ts +0 -194
  23. package/dist/src/coin/dot/iface.d.ts.map +0 -1
  24. package/dist/src/coin/dot/iface.js +0 -39
  25. package/dist/src/coin/dot/index.d.ts +0 -17
  26. package/dist/src/coin/dot/index.d.ts.map +0 -1
  27. package/dist/src/coin/dot/index.js +0 -53
  28. package/dist/src/coin/dot/keyPair.d.ts +0 -31
  29. package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
  30. package/dist/src/coin/dot/keyPair.js +0 -70
  31. package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
  32. package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
  33. package/dist/src/coin/dot/singletonRegistry.js +0 -20
  34. package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
  35. package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
  36. package/dist/src/coin/dot/stakingBuilder.js +0 -139
  37. package/dist/src/coin/dot/transaction.d.ts +0 -65
  38. package/dist/src/coin/dot/transaction.d.ts.map +0 -1
  39. package/dist/src/coin/dot/transaction.js +0 -396
  40. package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
  41. package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
  42. package/dist/src/coin/dot/transactionBuilder.js +0 -332
  43. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
  44. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
  45. package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
  46. package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
  47. package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
  48. package/dist/src/coin/dot/transferBuilder.js +0 -177
  49. package/dist/src/coin/dot/txnSchema.d.ts +0 -14
  50. package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
  51. package/dist/src/coin/dot/txnSchema.js +0 -104
  52. package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
  53. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
  54. package/dist/src/coin/dot/unnominateBuilder.js +0 -50
  55. package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
  56. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
  57. package/dist/src/coin/dot/unstakeBuilder.js +0 -89
  58. package/dist/src/coin/dot/utils.d.ts +0 -145
  59. package/dist/src/coin/dot/utils.d.ts.map +0 -1
  60. package/dist/src/coin/dot/utils.js +0 -283
  61. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
  62. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
  63. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
  64. package/dist/src/coin/hbar/coinTransferBuilder.d.ts +0 -46
  65. package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +0 -1
  66. package/dist/src/coin/hbar/coinTransferBuilder.js +0 -143
  67. package/dist/src/coin/hbar/constants.d.ts +0 -8
  68. package/dist/src/coin/hbar/constants.d.ts.map +0 -1
  69. package/dist/src/coin/hbar/constants.js +0 -12
  70. package/dist/src/coin/hbar/iface.d.ts +0 -49
  71. package/dist/src/coin/hbar/iface.d.ts.map +0 -1
  72. package/dist/src/coin/hbar/iface.js +0 -3
  73. package/dist/src/coin/hbar/index.d.ts +0 -9
  74. package/dist/src/coin/hbar/index.d.ts.map +0 -1
  75. package/dist/src/coin/hbar/index.js +0 -37
  76. package/dist/src/coin/hbar/keyPair.d.ts +0 -23
  77. package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
  78. package/dist/src/coin/hbar/keyPair.js +0 -70
  79. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +0 -38
  80. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +0 -1
  81. package/dist/src/coin/hbar/tokenAssociateBuilder.js +0 -126
  82. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +0 -25
  83. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +0 -1
  84. package/dist/src/coin/hbar/tokenTransferBuilder.js +0 -115
  85. package/dist/src/coin/hbar/transaction.d.ts +0 -106
  86. package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
  87. package/dist/src/coin/hbar/transaction.js +0 -318
  88. package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -111
  89. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
  90. package/dist/src/coin/hbar/transactionBuilder.js +0 -270
  91. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -47
  92. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
  93. package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -88
  94. package/dist/src/coin/hbar/transferBuilder.d.ts +0 -24
  95. package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
  96. package/dist/src/coin/hbar/transferBuilder.js +0 -74
  97. package/dist/src/coin/hbar/utils.d.ts +0 -193
  98. package/dist/src/coin/hbar/utils.d.ts.map +0 -1
  99. package/dist/src/coin/hbar/utils.js +0 -410
  100. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
  101. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
  102. package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -110
@@ -1,332 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.TransactionBuilder = void 0;
26
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
27
- const _ = __importStar(require("lodash"));
28
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
29
- const sdk_core_1 = require("@bitgo/sdk-core");
30
- const errors_1 = require("./errors");
31
- const keyPair_1 = require("./keyPair");
32
- const transaction_1 = require("./transaction");
33
- const txnSchema_1 = require("./txnSchema");
34
- const singletonRegistry_1 = require("./singletonRegistry");
35
- const utils_1 = __importDefault(require("./utils"));
36
- class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
37
- constructor(_coinConfig) {
38
- super(_coinConfig);
39
- // signatures that will be used to sign a transaction when building
40
- // not the same as the _signatures in transaction which is the signature in
41
- // string hex format used for validation after we call .build()
42
- this._signatures = []; // only support single sig for now
43
- this._transaction = new transaction_1.Transaction(_coinConfig);
44
- }
45
- /**
46
- * Sets the address of sending account.
47
- *
48
- * @param {BaseAddress} address The SS58-encoded address.
49
- * @returns {TransactionBuilder} This transaction builder.
50
- *
51
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
52
- */
53
- sender({ address }) {
54
- this.validateAddress({ address });
55
- this._sender = address;
56
- this._transaction.sender(address);
57
- return this;
58
- }
59
- /**
60
- * The nonce for this transaction.
61
- *
62
- * @param {number} nonce
63
- * @returns {TransactionBuilder} This transaction builder.
64
- *
65
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
66
- */
67
- sequenceId(nonce) {
68
- const value = new bignumber_js_1.default(nonce.value);
69
- this.validateValue(value);
70
- this._nonce = value.toNumber();
71
- return this;
72
- }
73
- /**
74
- * The tip to increase transaction priority.
75
- *
76
- * @param {number | undefined} [fee.type] options for building fee tx
77
- * @returns {TransactionBuilder} This transaction builder.
78
- *
79
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
80
- */
81
- fee(fee) {
82
- if (fee.type !== 'tip') {
83
- throw new errors_1.InvalidFeeError(fee.type, 'tip');
84
- }
85
- const tipBN = new bignumber_js_1.default(fee.amount);
86
- this.validateValue(tipBN);
87
- this._tip = tipBN.toNumber();
88
- return this;
89
- }
90
- /**
91
- * The number of the checkpoint block after which the transaction is valid
92
- *
93
- * @param {ValidityWindow} firstValid block checkpoint where transaction is first valid
94
- * @param {ValidityWindow} maxDuration number of blocks after checkpoint for which transaction is valid
95
- * @returns {TransactionBuilder} This transaction builder.
96
- *
97
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
98
- */
99
- validity({ firstValid, maxDuration }) {
100
- if (!_.isUndefined(firstValid)) {
101
- this.validateValue(new bignumber_js_1.default(firstValid));
102
- this._blockNumber = firstValid;
103
- }
104
- if (!_.isUndefined(maxDuration)) {
105
- this.validateValue(new bignumber_js_1.default(maxDuration));
106
- this._eraPeriod = maxDuration;
107
- }
108
- return this;
109
- }
110
- /**
111
- * The hash of the checkpoint block.
112
- *
113
- * @param {number} referenceBlock block hash checkpoint from where the transaction is valid
114
- * @returns {TransactionBuilder} This transaction builder.
115
- *
116
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
117
- * @see https://wiki.polkadot.network/docs/build-protocol-info#transaction-mortality
118
- */
119
- referenceBlock(referenceBlock) {
120
- this._referenceBlock = referenceBlock;
121
- return this;
122
- }
123
- /**
124
- * The current version for transaction format.
125
- *
126
- * @param {number} transactionVersion
127
- * @returns {TransactionBuilder} This transaction builder.
128
- *
129
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
130
- * @deprecated This field was added in material data.
131
- */
132
- version(transactionVersion) {
133
- // this._transactionVersion = transactionVersion;
134
- return this;
135
- }
136
- method(method) {
137
- this._method = method;
138
- return this;
139
- }
140
- /**
141
- * The material data for the block.
142
- *
143
- * @param {Material} material
144
- * @returns {TransactionBuilder} This transaction builder.
145
- *
146
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
147
- */
148
- material(material) {
149
- this.__material = material;
150
- this._registry = singletonRegistry_1.SingletonRegistry.getInstance(material);
151
- return this;
152
- }
153
- get _material() {
154
- if (!this.__material) {
155
- const m = utils_1.default.getMaterial(this._coinConfig);
156
- this.material(m);
157
- return m;
158
- }
159
- return this.__material;
160
- }
161
- /** @inheritdoc */
162
- get transaction() {
163
- return this._transaction;
164
- }
165
- /** @inheritdoc */
166
- set transaction(transaction) {
167
- this._transaction = transaction;
168
- }
169
- /** @inheritdoc */
170
- fromImplementation(rawTransaction) {
171
- const decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
172
- metadataRpc: this._material.metadata,
173
- registry: this._registry,
174
- });
175
- if (utils_1.default.isSigningPayload(decodedTxn)) {
176
- this.referenceBlock(decodedTxn.blockHash);
177
- }
178
- else {
179
- const keypair = utils_1.default.decodeDotAddressToKeyPair(decodedTxn.address);
180
- this.sender({ address: keypair.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name)) });
181
- const edSignature = utils_1.default.recoverSignatureFromRawTx(rawTransaction, { registry: this._registry });
182
- this.addSignature(keypair.getKeys(), Buffer.from(edSignature, 'hex'));
183
- }
184
- this.validity({ maxDuration: decodedTxn.eraPeriod });
185
- this.sequenceId({
186
- name: 'Nonce',
187
- keyword: 'nonce',
188
- value: decodedTxn.nonce,
189
- });
190
- if (decodedTxn.tip) {
191
- this.fee({ amount: `${decodedTxn.tip}`, type: 'tip' });
192
- }
193
- this.method(decodedTxn.method);
194
- return this._transaction;
195
- }
196
- /** @inheritdoc */
197
- async buildImplementation() {
198
- var _a;
199
- this.transaction.setTransaction(this.buildTransaction());
200
- this.transaction.transactionType(this.transactionType);
201
- this.transaction.registry(this._registry);
202
- this.transaction.chainName(this._material.chainName);
203
- if (this._keyPair) {
204
- this.transaction.sign(this._keyPair);
205
- }
206
- if (((_a = this._signatures) === null || _a === void 0 ? void 0 : _a.length) > 0) {
207
- // if we have a signature, apply that and update this._signedTransaction
208
- this.transaction.constructSignedPayload(this._signatures[0].signature);
209
- }
210
- this._transaction.loadInputsAndOutputs();
211
- return this._transaction;
212
- }
213
- createBaseTxInfo() {
214
- return {
215
- baseTxInfo: {
216
- address: this._sender,
217
- blockHash: this._referenceBlock,
218
- blockNumber: this._registry.createType('BlockNumber', this._blockNumber).toNumber(),
219
- eraPeriod: this._eraPeriod,
220
- genesisHash: this._material.genesisHash,
221
- metadataRpc: this._material.metadata,
222
- specVersion: this._material.specVersion,
223
- transactionVersion: this._material.txVersion,
224
- nonce: this._nonce,
225
- tip: this._tip,
226
- },
227
- options: {
228
- metadataRpc: this._material.metadata,
229
- registry: this._registry,
230
- isImmortalEra: this._eraPeriod === 0,
231
- },
232
- };
233
- }
234
- // region Validators
235
- /** @inheritdoc */
236
- validateAddress(address, addressFormat) {
237
- if (!utils_1.default.isValidAddress(address.address)) {
238
- throw new errors_1.AddressValidationError(address.address);
239
- }
240
- }
241
- /** @inheritdoc */
242
- validateKey({ key }) {
243
- let isValidPrivateKeyFromBytes;
244
- const isValidPrivateKeyFromHex = sdk_core_1.isValidEd25519Seed(key);
245
- const isValidPrivateKeyFromBase64 = sdk_core_1.isValidEd25519Seed(Buffer.from(key, 'base64').toString('hex'));
246
- try {
247
- const decodedSeed = utils_1.default.decodeSeed(key);
248
- isValidPrivateKeyFromBytes = sdk_core_1.isValidEd25519Seed(Buffer.from(decodedSeed.seed).toString('hex'));
249
- }
250
- catch (err) {
251
- isValidPrivateKeyFromBytes = false;
252
- }
253
- if (!isValidPrivateKeyFromBytes && !isValidPrivateKeyFromHex && !isValidPrivateKeyFromBase64) {
254
- throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
255
- }
256
- }
257
- /** @inheritdoc */
258
- validateRawTransaction(rawTransaction) {
259
- const decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
260
- metadataRpc: this._material.metadata,
261
- registry: this._registry,
262
- });
263
- const eraPeriod = decodedTxn.eraPeriod;
264
- const nonce = decodedTxn.nonce;
265
- const tip = decodedTxn.tip;
266
- if (utils_1.default.isSigningPayload(decodedTxn)) {
267
- const blockHash = decodedTxn.blockHash;
268
- const validationResult = txnSchema_1.SigningPayloadTransactionSchema.validate({
269
- eraPeriod,
270
- blockHash,
271
- nonce,
272
- tip,
273
- });
274
- if (validationResult.error) {
275
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
276
- }
277
- }
278
- else {
279
- const sender = decodedTxn.address;
280
- const validationResult = txnSchema_1.SignedTransactionSchema.validate({
281
- sender,
282
- nonce,
283
- eraPeriod,
284
- tip,
285
- });
286
- if (validationResult.error) {
287
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
288
- }
289
- }
290
- this.validateDecodedTransaction(decodedTxn, rawTransaction);
291
- }
292
- /** @inheritdoc */
293
- validateTransaction(_) {
294
- this.validateBaseFields(this._sender, this._blockNumber, this._referenceBlock, this._material.genesisHash, this._material.chainName, this._nonce, this._material.specVersion, this._material.specName, this._material.txVersion, this._eraPeriod, this._tip);
295
- }
296
- validateBaseFields(sender, blockNumber, blockHash, genesisHash, chainName, nonce, specVersion, specName, transactionVersion, eraPeriod, tip) {
297
- const validationResult = txnSchema_1.BaseTransactionSchema.validate({
298
- sender,
299
- blockNumber,
300
- blockHash,
301
- genesisHash,
302
- chainName,
303
- nonce,
304
- specVersion,
305
- specName,
306
- transactionVersion,
307
- eraPeriod,
308
- tip,
309
- });
310
- if (validationResult.error) {
311
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
312
- }
313
- }
314
- /** @inheritdoc */
315
- validateValue(value) {
316
- if (value.isLessThan(0)) {
317
- throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
318
- }
319
- }
320
- // endregion
321
- /** @inheritdoc */
322
- addSignature(publicKey, signature) {
323
- this._signatures.push({ publicKey, signature });
324
- }
325
- /** @inheritdoc */
326
- signImplementation({ key }) {
327
- this._keyPair = new keyPair_1.KeyPair({ prv: key });
328
- return this._transaction;
329
- }
330
- }
331
- exports.TransactionBuilder = TransactionBuilder;
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0Esc0VBQXVEO0FBQ3ZELDBDQUE0QjtBQUM1QixnRUFBcUM7QUFDckMsOENBY3lCO0FBQ3pCLHFDQUFtRTtBQUVuRSx1Q0FBb0M7QUFDcEMsK0NBQTRDO0FBQzVDLDJDQUE4RztBQUM5RywyREFBd0Q7QUFDeEQsb0RBQTRCO0FBRTVCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQW1CckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOckIsbUVBQW1FO1FBQ25FLDJFQUEyRTtRQUMzRSwrREFBK0Q7UUFDckQsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBSXpFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFlO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFN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O1lBQ1Isa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxHQUFHO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGtDQUFrQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN2RztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxFQUFXO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXRYRCxnREFzWEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBQb2xrYWRvdFNwZWNOYW1lVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBEb3RBc3NldFR5cGVzLFxuICBGZWVPcHRpb25zLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgaXNWYWxpZEVkMjU1MTlTZWVkLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2VxdWVuY2VJZCxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFZhbGlkaXR5V2luZG93LFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciwgSW52YWxpZEZlZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ3JlYXRlQmFzZVR4SW5mbywgTWF0ZXJpYWwsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25TY2hlbWEsIFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLCBTaWduaW5nUGF5bG9hZFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHsgU2luZ2xldG9uUmVnaXN0cnkgfSBmcm9tICcuL3NpbmdsZXRvblJlZ2lzdHJ5JztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9rZXlQYWlyOiBLZXlQYWlyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZT86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZW5kZXI6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX2Jsb2NrTnVtYmVyOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfcmVmZXJlbmNlQmxvY2s6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9ub25jZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3RpcD86IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9lcmFQZXJpb2Q/OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfcmVnaXN0cnk6IFR5cGVSZWdpc3RyeTtcbiAgcHJvdGVjdGVkIF9tZXRob2Q/OiBUeE1ldGhvZDtcbiAgcHJvdGVjdGVkIF9fbWF0ZXJpYWw/OiBNYXRlcmlhbDtcbiAgLy8gc2lnbmF0dXJlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaWduIGEgdHJhbnNhY3Rpb24gd2hlbiBidWlsZGluZ1xuICAvLyBub3QgdGhlIHNhbWUgYXMgdGhlIF9zaWduYXR1cmVzIGluIHRyYW5zYWN0aW9uIHdoaWNoIGlzIHRoZSBzaWduYXR1cmUgaW5cbiAgLy8gc3RyaW5nIGhleCBmb3JtYXQgdXNlZCBmb3IgdmFsaWRhdGlvbiBhZnRlciB3ZSBjYWxsIC5idWlsZCgpXG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTsgLy8gb25seSBzdXBwb3J0IHNpbmdsZSBzaWcgZm9yIG5vd1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWRkcmVzcyBvZiBzZW5kaW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IGFkZHJlc3MgVGhlIFNTNTgtZW5jb2RlZCBhZGRyZXNzLlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIHNlbmRlcih7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZW5kZXIoYWRkcmVzcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5vbmNlIGZvciB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbm9uY2VcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBzZXF1ZW5jZUlkKG5vbmNlOiBTZXF1ZW5jZUlkKTogdGhpcyB7XG4gICAgY29uc3QgdmFsdWUgPSBuZXcgQmlnTnVtYmVyKG5vbmNlLnZhbHVlKTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuX25vbmNlID0gdmFsdWUudG9OdW1iZXIoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGlwIHRvIGluY3JlYXNlIHRyYW5zYWN0aW9uIHByaW9yaXR5LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2ZlZS50eXBlXSBvcHRpb25zIGZvciBidWlsZGluZyBmZWUgdHhcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBmZWUoZmVlOiBGZWVPcHRpb25zKTogdGhpcyB7XG4gICAgaWYgKGZlZS50eXBlICE9PSAndGlwJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRGZWVFcnJvcihmZWUudHlwZSwgJ3RpcCcpO1xuICAgIH1cbiAgICBjb25zdCB0aXBCTiA9IG5ldyBCaWdOdW1iZXIoZmVlLmFtb3VudCk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKHRpcEJOKTtcbiAgICB0aGlzLl90aXAgPSB0aXBCTi50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhlIGNoZWNrcG9pbnQgYmxvY2sgYWZ0ZXIgd2hpY2ggdGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSB7VmFsaWRpdHlXaW5kb3d9IGZpcnN0VmFsaWQgYmxvY2sgY2hlY2twb2ludCB3aGVyZSB0cmFuc2FjdGlvbiBpcyBmaXJzdCB2YWxpZFxuICAgKiBAcGFyYW0ge1ZhbGlkaXR5V2luZG93fSBtYXhEdXJhdGlvbiBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIGNoZWNrcG9pbnQgZm9yIHdoaWNoIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgdmFsaWRpdHkoeyBmaXJzdFZhbGlkLCBtYXhEdXJhdGlvbiB9OiBWYWxpZGl0eVdpbmRvdyk6IHRoaXMge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChmaXJzdFZhbGlkKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZmlyc3RWYWxpZCkpO1xuICAgICAgdGhpcy5fYmxvY2tOdW1iZXIgPSBmaXJzdFZhbGlkO1xuICAgIH1cbiAgICBpZiAoIV8uaXNVbmRlZmluZWQobWF4RHVyYXRpb24pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihtYXhEdXJhdGlvbikpO1xuICAgICAgdGhpcy5fZXJhUGVyaW9kID0gbWF4RHVyYXRpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoYXNoIG9mIHRoZSBjaGVja3BvaW50IGJsb2NrLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcmVmZXJlbmNlQmxvY2sgYmxvY2sgaGFzaCBjaGVja3BvaW50IGZyb20gd2hlcmUgdGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mbyN0cmFuc2FjdGlvbi1tb3J0YWxpdHlcbiAgICovXG4gIHJlZmVyZW5jZUJsb2NrKHJlZmVyZW5jZUJsb2NrOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9yZWZlcmVuY2VCbG9jayA9IHJlZmVyZW5jZUJsb2NrO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHZlcnNpb24gZm9yIHRyYW5zYWN0aW9uIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRyYW5zYWN0aW9uVmVyc2lvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBmaWVsZCB3YXMgYWRkZWQgaW4gbWF0ZXJpYWwgZGF0YS5cbiAgICovXG4gIHZlcnNpb24odHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXIpOiB0aGlzIHtcbiAgICAvLyB0aGlzLl90cmFuc2FjdGlvblZlcnNpb24gPSB0cmFuc2FjdGlvblZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZChtZXRob2Q6IFR4TWV0aG9kKTogdGhpcyB7XG4gICAgdGhpcy5fbWV0aG9kID0gbWV0aG9kO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtYXRlcmlhbCBkYXRhIGZvciB0aGUgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSB7TWF0ZXJpYWx9IG1hdGVyaWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgbWF0ZXJpYWwobWF0ZXJpYWw6IE1hdGVyaWFsKTogdGhpcyB7XG4gICAgdGhpcy5fX21hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgdGhpcy5fcmVnaXN0cnkgPSBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZShtYXRlcmlhbCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IF9tYXRlcmlhbCgpOiBNYXRlcmlhbCB7XG4gICAgaWYgKCF0aGlzLl9fbWF0ZXJpYWwpIHtcbiAgICAgIGNvbnN0IG0gPSB1dGlscy5nZXRNYXRlcmlhbCh0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgIHRoaXMubWF0ZXJpYWwobSk7XG4gICAgICByZXR1cm4gbTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX19tYXRlcmlhbDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSkgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4O1xuICAgIGlmICh1dGlscy5pc1NpZ25pbmdQYXlsb2FkKGRlY29kZWRUeG4pKSB7XG4gICAgICB0aGlzLnJlZmVyZW5jZUJsb2NrKGRlY29kZWRUeG4uYmxvY2tIYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qga2V5cGFpciA9IHV0aWxzLmRlY29kZURvdEFkZHJlc3NUb0tleVBhaXIoZGVjb2RlZFR4bi5hZGRyZXNzKTtcbiAgICAgIHRoaXMuc2VuZGVyKHsgYWRkcmVzczoga2V5cGFpci5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKSB9KTtcbiAgICAgIGNvbnN0IGVkU2lnbmF0dXJlID0gdXRpbHMucmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeChyYXdUcmFuc2FjdGlvbiwgeyByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnkgfSk7XG4gICAgICB0aGlzLmFkZFNpZ25hdHVyZShrZXlwYWlyLmdldEtleXMoKSwgQnVmZmVyLmZyb20oZWRTaWduYXR1cmUsICdoZXgnKSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRpdHkoeyBtYXhEdXJhdGlvbjogZGVjb2RlZFR4bi5lcmFQZXJpb2QgfSk7XG4gICAgdGhpcy5zZXF1ZW5jZUlkKHtcbiAgICAgIG5hbWU6ICdOb25jZScsXG4gICAgICBrZXl3b3JkOiAnbm9uY2UnLFxuICAgICAgdmFsdWU6IGRlY29kZWRUeG4ubm9uY2UsXG4gICAgfSk7XG4gICAgaWYgKGRlY29kZWRUeG4udGlwKSB7XG4gICAgICB0aGlzLmZlZSh7IGFtb3VudDogYCR7ZGVjb2RlZFR4bi50aXB9YCwgdHlwZTogJ3RpcCcgfSk7XG4gICAgfVxuICAgIHRoaXMubWV0aG9kKGRlY29kZWRUeG4ubWV0aG9kIGFzIHVua25vd24gYXMgVHhNZXRob2QpO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odGhpcy5idWlsZFRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlZ2lzdHJ5KHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmNoYWluTmFtZSh0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUpO1xuICAgIGlmICh0aGlzLl9rZXlQYWlyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fa2V5UGFpcik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBpZiB3ZSBoYXZlIGEgc2lnbmF0dXJlLCBhcHBseSB0aGF0IGFuZCB1cGRhdGUgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb25cbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uY29uc3RydWN0U2lnbmVkUGF5bG9hZCh0aGlzLl9zaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgfVxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQmFzZVR4SW5mbygpOiBDcmVhdGVCYXNlVHhJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFzZVR4SW5mbzoge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIGJsb2NrSGFzaDogdGhpcy5fcmVmZXJlbmNlQmxvY2ssXG4gICAgICAgIGJsb2NrTnVtYmVyOiB0aGlzLl9yZWdpc3RyeS5jcmVhdGVUeXBlKCdCbG9ja051bWJlcicsIHRoaXMuX2Jsb2NrTnVtYmVyKS50b051bWJlcigpLFxuICAgICAgICBlcmFQZXJpb2Q6IHRoaXMuX2VyYVBlcmlvZCxcbiAgICAgICAgZ2VuZXNpc0hhc2g6IHRoaXMuX21hdGVyaWFsLmdlbmVzaXNIYXNoLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHNwZWNWZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC5zcGVjVmVyc2lvbixcbiAgICAgICAgdHJhbnNhY3Rpb25WZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICAgIG5vbmNlOiB0aGlzLl9ub25jZSxcbiAgICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgICAgaXNJbW1vcnRhbEVyYTogdGhpcy5fZXJhUGVyaW9kID09PSAwLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqIHVzaW5nIHRoZSBAc3Vic3RyYXRlL3R4d3JhcHBlciBidWlsZGVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IoYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoeyBrZXkgfTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcztcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggPSBpc1ZhbGlkRWQyNTUxOVNlZWQoa2V5KTtcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CYXNlNjQgPSBpc1ZhbGlkRWQyNTUxOVNlZWQoQnVmZmVyLmZyb20oa2V5LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFNlZWQgPSB1dGlscy5kZWNvZGVTZWVkKGtleSk7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShkZWNvZGVkU2VlZC5zZWVkKS50b1N0cmluZygnaGV4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzICYmICFpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oXG4gICAgZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LFxuICAgIHJhd1RyYW5zYWN0aW9uPzogc3RyaW5nLFxuICApOiB2b2lkO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSkgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4O1xuXG4gICAgY29uc3QgZXJhUGVyaW9kID0gZGVjb2RlZFR4bi5lcmFQZXJpb2Q7XG4gICAgY29uc3Qgbm9uY2UgPSBkZWNvZGVkVHhuLm5vbmNlO1xuICAgIGNvbnN0IHRpcCA9IGRlY29kZWRUeG4udGlwO1xuXG4gICAgaWYgKHV0aWxzLmlzU2lnbmluZ1BheWxvYWQoZGVjb2RlZFR4bikpIHtcbiAgICAgIGNvbnN0IGJsb2NrSGFzaCA9IGRlY29kZWRUeG4uYmxvY2tIYXNoO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNpZ25pbmdQYXlsb2FkVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgICBlcmFQZXJpb2QsXG4gICAgICAgIGJsb2NrSGFzaCxcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIHRpcCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeG4uYWRkcmVzcztcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTaWduZWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIHNlbmRlcixcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIGVyYVBlcmlvZCxcbiAgICAgICAgdGlwLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG4sIHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICB0aGlzLl9ibG9ja051bWJlcixcbiAgICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuZ2VuZXNpc0hhc2gsXG4gICAgICB0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUsXG4gICAgICB0aGlzLl9ub25jZSxcbiAgICAgIHRoaXMuX21hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuc3BlY05hbWUsXG4gICAgICB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICB0aGlzLl9lcmFQZXJpb2QsXG4gICAgICB0aGlzLl90aXAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXNlRmllbGRzKFxuICAgIHNlbmRlcjogc3RyaW5nLFxuICAgIGJsb2NrTnVtYmVyOiBudW1iZXIsXG4gICAgYmxvY2tIYXNoOiBzdHJpbmcsXG4gICAgZ2VuZXNpc0hhc2g6IHN0cmluZyxcbiAgICBjaGFpbk5hbWU6IHN0cmluZyxcbiAgICBub25jZTogbnVtYmVyLFxuICAgIHNwZWNWZXJzaW9uOiBudW1iZXIsXG4gICAgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlLFxuICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogbnVtYmVyLFxuICAgIGVyYVBlcmlvZDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHRpcDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gQmFzZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHNlbmRlcixcbiAgICAgIGJsb2NrTnVtYmVyLFxuICAgICAgYmxvY2tIYXNoLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgICBjaGFpbk5hbWUsXG4gICAgICBub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uLFxuICAgICAgc3BlY05hbWUsXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2QsXG4gICAgICB0aXAsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbih7IGtleSB9OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX2tleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
@@ -1,26 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
- import { TransactionBuilder } from './transactionBuilder';
4
- import { TransferBuilder } from './transferBuilder';
5
- import { AddressInitializationBuilder } from './addressInitializationBuilder';
6
- import { StakingBuilder } from './stakingBuilder';
7
- import { Material } from './iface';
8
- import { BatchTransactionBuilder, ClaimBuilder, UnstakeBuilder, WithdrawUnstakedBuilder } from '.';
9
- import { UnnominateBuilder } from './unnominateBuilder';
10
- export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
11
- protected _material: Material;
12
- constructor(_coinConfig: Readonly<CoinConfig>);
13
- getTransferBuilder(): TransferBuilder;
14
- getStakingBuilder(): StakingBuilder;
15
- getAddressInitializationBuilder(): AddressInitializationBuilder;
16
- getBatchTransactionBuilder(): BatchTransactionBuilder;
17
- getWalletInitializationBuilder(): void;
18
- getUnstakeBuilder(): UnstakeBuilder;
19
- getWithdrawUnstakedBuilder(): WithdrawUnstakedBuilder;
20
- getClaimBuilder(): ClaimBuilder;
21
- getUnnominateBuilder(): UnnominateBuilder;
22
- from(rawTxn: string): TransactionBuilder;
23
- material(material: Material): this;
24
- private getBuilder;
25
- }
26
- //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAqC,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAInC,+BAA+B,IAAI,4BAA4B;IAI/D,0BAA0B,IAAI,uBAAuB;IAIrD,8BAA8B,IAAI,IAAI;IAItC,iBAAiB,IAAI,cAAc;IAInC,0BAA0B,IAAI,uBAAuB;IAIrD,eAAe,IAAI,YAAY;IAI/B,oBAAoB,IAAI,iBAAiB;IAIzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAMxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKlC,OAAO,CAAC,UAAU;CA0BnB"}
@@ -1,93 +0,0 @@
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.TransactionBuilderFactory = void 0;
7
- const sdk_core_1 = require("@bitgo/sdk-core");
8
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
- const transferBuilder_1 = require("./transferBuilder");
10
- const addressInitializationBuilder_1 = require("./addressInitializationBuilder");
11
- const stakingBuilder_1 = require("./stakingBuilder");
12
- const iface_1 = require("./iface");
13
- const utils_1 = __importDefault(require("./utils"));
14
- const _1 = require(".");
15
- const unnominateBuilder_1 = require("./unnominateBuilder");
16
- const singletonRegistry_1 = require("./singletonRegistry");
17
- class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
18
- constructor(_coinConfig) {
19
- super(_coinConfig);
20
- this._material = utils_1.default.getMaterial(_coinConfig);
21
- }
22
- getTransferBuilder() {
23
- return new transferBuilder_1.TransferBuilder(this._coinConfig).material(this._material);
24
- }
25
- getStakingBuilder() {
26
- return new stakingBuilder_1.StakingBuilder(this._coinConfig).material(this._material);
27
- }
28
- getAddressInitializationBuilder() {
29
- return new addressInitializationBuilder_1.AddressInitializationBuilder(this._coinConfig).material(this._material);
30
- }
31
- getBatchTransactionBuilder() {
32
- return new _1.BatchTransactionBuilder(this._coinConfig).material(this._material);
33
- }
34
- getWalletInitializationBuilder() {
35
- throw new sdk_core_1.NotImplementedError(`walletInitialization for ${this._coinConfig.name} not implemented`);
36
- }
37
- getUnstakeBuilder() {
38
- return new _1.UnstakeBuilder(this._coinConfig).material(this._material);
39
- }
40
- getWithdrawUnstakedBuilder() {
41
- return new _1.WithdrawUnstakedBuilder(this._coinConfig).material(this._material);
42
- }
43
- getClaimBuilder() {
44
- return new _1.ClaimBuilder(this._coinConfig).material(this._material);
45
- }
46
- getUnnominateBuilder() {
47
- return new unnominateBuilder_1.UnnominateBuilder(this._coinConfig);
48
- }
49
- from(rawTxn) {
50
- const builder = this.getBuilder(rawTxn);
51
- builder.from(rawTxn);
52
- return builder;
53
- }
54
- material(material) {
55
- this._material = material;
56
- return this;
57
- }
58
- getBuilder(rawTxn) {
59
- var _a;
60
- const registry = singletonRegistry_1.SingletonRegistry.getInstance(this._material);
61
- const decodedTxn = txwrapper_polkadot_1.decode(rawTxn, {
62
- metadataRpc: this._material.metadata,
63
- registry: registry,
64
- });
65
- const methodName = (_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name;
66
- if (methodName === iface_1.MethodNames.TransferKeepAlive || methodName === iface_1.MethodNames.Proxy) {
67
- return this.getTransferBuilder();
68
- }
69
- else if (methodName === iface_1.MethodNames.Bond) {
70
- return this.getStakingBuilder();
71
- }
72
- else if (methodName === iface_1.MethodNames.AddProxy) {
73
- return this.getAddressInitializationBuilder();
74
- }
75
- else if (methodName === iface_1.MethodNames.Unbond) {
76
- return this.getUnstakeBuilder();
77
- }
78
- else if (methodName === iface_1.MethodNames.Chill) {
79
- return this.getUnnominateBuilder();
80
- }
81
- else if (methodName === iface_1.MethodNames.WithdrawUnbonded) {
82
- return this.getWithdrawUnstakedBuilder();
83
- }
84
- else if (methodName === iface_1.MethodNames.PayoutStakers) {
85
- return this.getClaimBuilder();
86
- }
87
- else {
88
- throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
89
- }
90
- }
91
- }
92
- exports.TransactionBuilderFactory = TransactionBuilderFactory;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2RvdC90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUFtRztBQUNuRyxzRUFBdUQ7QUFFdkQsdURBQW9EO0FBQ3BELGlGQUE4RTtBQUM5RSxxREFBa0Q7QUFDbEQsbUNBQWdEO0FBQ2hELG9EQUE0QjtBQUM1Qix3QkFBbUc7QUFDbkcsMkRBQXdEO0FBQ3hELDJEQUF3RDtBQUV4RCxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUcxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLCtCQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELCtCQUErQjtRQUM3QixPQUFPLElBQUksMkRBQTRCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksMEJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELDhCQUE4QjtRQUM1QixNQUFNLElBQUksOEJBQW1CLENBQUMsNEJBQTRCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksaUJBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSwwQkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxlQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUkscUNBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLENBQUMsTUFBYztRQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFrQjtRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBYzs7UUFDL0IsTUFBTSxRQUFRLEdBQUcscUNBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRywyQkFBTSxDQUFDLE1BQU0sRUFBRTtZQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3BDLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsSUFBSSxDQUFDO1FBQzNDLElBQUksVUFBVSxLQUFLLG1CQUFXLENBQUMsaUJBQWlCLElBQUksVUFBVSxLQUFLLG1CQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDbEM7YUFBTSxJQUFJLFVBQVUsS0FBSyxtQkFBVyxDQUFDLElBQUksRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxVQUFVLEtBQUssbUJBQVcsQ0FBQyxRQUFRLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztTQUMvQzthQUFNLElBQUksVUFBVSxLQUFLLG1CQUFXLENBQUMsTUFBTSxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDakM7YUFBTSxJQUFJLFVBQVUsS0FBSyxtQkFBVyxDQUFDLEtBQUssRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxVQUFVLEtBQUssbUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxVQUFVLEtBQUssbUJBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDbkQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDL0Y7SUFDSCxDQUFDO0NBQ0Y7QUFqRkQsOERBaUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBOb3RJbXBsZW1lbnRlZEVycm9yLCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZGVjb2RlIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgQWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vYWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBTdGFraW5nQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgTWF0ZXJpYWwsIE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCYXRjaFRyYW5zYWN0aW9uQnVpbGRlciwgQ2xhaW1CdWlsZGVyLCBVbnN0YWtlQnVpbGRlciwgV2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIgfSBmcm9tICcuJztcbmltcG9ydCB7IFVubm9taW5hdGVCdWlsZGVyIH0gZnJvbSAnLi91bm5vbWluYXRlQnVpbGRlcic7XG5pbXBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIF9tYXRlcmlhbDogTWF0ZXJpYWw7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX21hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKCk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ0J1aWxkZXIoKTogU3Rha2luZ0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgU3Rha2luZ0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcigpOiBBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0QmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIoKTogQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKGB3YWxsZXRJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLl9jb2luQ29uZmlnLm5hbWV9IG5vdCBpbXBsZW1lbnRlZGApO1xuICB9XG5cbiAgZ2V0VW5zdGFrZUJ1aWxkZXIoKTogVW5zdGFrZUJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVW5zdGFrZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0V2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIoKTogV2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgV2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0Q2xhaW1CdWlsZGVyKCk6IENsYWltQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBDbGFpbUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykubWF0ZXJpYWwodGhpcy5fbWF0ZXJpYWwpO1xuICB9XG5cbiAgZ2V0VW5ub21pbmF0ZUJ1aWxkZXIoKTogVW5ub21pbmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVW5ub21pbmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICBmcm9tKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKHJhd1R4bik7XG4gICAgYnVpbGRlci5mcm9tKHJhd1R4bik7XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBtYXRlcmlhbChtYXRlcmlhbDogTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdWlsZGVyKHJhd1R4bjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCByZWdpc3RyeSA9IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKHRoaXMuX21hdGVyaWFsKTtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1R4biwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgcmVnaXN0cnk6IHJlZ2lzdHJ5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lO1xuICAgIGlmIChtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5UcmFuc2ZlcktlZXBBbGl2ZSB8fCBtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2ROYW1lID09PSBNZXRob2ROYW1lcy5Cb25kKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuQWRkUHJveHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlVuYm9uZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VW5zdGFrZUJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLkNoaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVbm5vbWluYXRlQnVpbGRlcigpO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gTWV0aG9kTmFtZXMuV2l0aGRyYXdVbmJvbmRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0V2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09IE1ldGhvZE5hbWVzLlBheW91dFN0YWtlcnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsYWltQnVpbGRlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
3
- import { TransactionBuilder } from './transactionBuilder';
4
- import { Transaction } from './transaction';
5
- import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
6
- import { ProxyType } from './iface';
7
- export declare class TransferBuilder extends TransactionBuilder {
8
- protected _amount: string;
9
- protected _to: string;
10
- protected _owner: string;
11
- protected _forceProxyType: ProxyType;
12
- constructor(_coinConfig: Readonly<CoinConfig>);
13
- /**
14
- *
15
- * Dispatch the given call from an account that the sender is authorised for through add_proxy.
16
- *
17
- * @returns {UnsignedTransaction} an unsigned Dot transaction
18
- *
19
- * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
20
- */
21
- protected buildTransaction(): UnsignedTransaction;
22
- protected get transactionType(): TransactionType;
23
- /**
24
- *
25
- * The amount for transfer transaction.
26
- *
27
- * @param {string} amount
28
- * @returns {TransferBuilder} This transfer builder.
29
- *
30
- * @see https://wiki.polkadot.network/docs/build-protocol-info
31
- */
32
- amount(amount: string): this;
33
- /**
34
- *
35
- * The destination address for transfer transaction.
36
- *
37
- * @param {string} dest
38
- * @returns {TransferBuilder} This transfer builder.
39
- *
40
- * @see https://wiki.polkadot.network/docs/build-protocol-info
41
- */
42
- to({ address }: BaseAddress): this;
43
- /**
44
- *
45
- * The real address of the original tx
46
- *
47
- * @param {BaseAddress} real
48
- * @returns {TransferBuilder} This builder.
49
- *
50
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
51
- */
52
- owner(owner: BaseAddress): this;
53
- /**
54
- *
55
- * The proxy type to execute
56
- *
57
- * @param {proxyType} forceProxyType
58
- * @returns {TransferBuilder} This builder.
59
- *
60
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
61
- */
62
- forceProxyType(forceProxyType: ProxyType): this;
63
- /** @inheritdoc */
64
- validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction: string): void;
65
- /** @inheritdoc */
66
- protected fromImplementation(rawTransaction: string): Transaction;
67
- /** @inheritdoc */
68
- validateTransaction(_: Transaction): void;
69
- private validateFields;
70
- }
71
- //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAA0C,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAA0B,SAAS,EAAgB,MAAM,SAAS,CAAC;AAK1E,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAwBjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;;OAQG;IACH,cAAc,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI;IAK/C,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B7G,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAyCjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}