@bitgo-beta/sdk-coin-atom 1.1.2-alpha.4 → 1.1.2-alpha.400

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 (78) hide show
  1. package/dist/src/atom.d.ts +19 -21
  2. package/dist/src/atom.d.ts.map +1 -1
  3. package/dist/src/atom.js +33 -43
  4. package/dist/src/index.js +6 -2
  5. package/dist/src/lib/constants.d.ts +5 -5
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +10 -9
  8. package/dist/src/lib/index.d.ts +3 -5
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +33 -18
  11. package/dist/src/lib/keyPair.d.ts +3 -14
  12. package/dist/src/lib/keyPair.d.ts.map +1 -1
  13. package/dist/src/lib/keyPair.js +6 -52
  14. package/dist/src/lib/transactionBuilderFactory.d.ts +11 -11
  15. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  16. package/dist/src/lib/transactionBuilderFactory.js +38 -16
  17. package/dist/src/lib/utils.d.ts +7 -84
  18. package/dist/src/lib/utils.d.ts.map +1 -1
  19. package/dist/src/lib/utils.js +49 -191
  20. package/dist/src/tatom.d.ts +0 -8
  21. package/dist/src/tatom.d.ts.map +1 -1
  22. package/dist/src/tatom.js +1 -13
  23. package/dist/test/integration/index.d.ts +2 -0
  24. package/dist/test/integration/index.d.ts.map +1 -0
  25. package/dist/test/integration/index.js +54 -0
  26. package/dist/test/resources/atom.d.ts +291 -0
  27. package/dist/test/resources/atom.d.ts.map +1 -0
  28. package/dist/test/resources/atom.js +471 -0
  29. package/dist/test/unit/atom.d.ts +2 -0
  30. package/dist/test/unit/atom.d.ts.map +1 -0
  31. package/dist/test/unit/atom.js +552 -0
  32. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  33. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  34. package/dist/test/unit/getBuilderFactory.js +10 -0
  35. package/dist/test/unit/keyPair.d.ts +2 -0
  36. package/dist/test/unit/keyPair.d.ts.map +1 -0
  37. package/dist/test/unit/keyPair.js +93 -0
  38. package/dist/test/unit/transaction.d.ts +2 -0
  39. package/dist/test/unit/transaction.d.ts.map +1 -0
  40. package/dist/test/unit/transaction.js +220 -0
  41. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts +2 -0
  42. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts.map +1 -0
  43. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.js +171 -0
  44. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.js +140 -0
  47. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts +2 -0
  48. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts.map +1 -0
  49. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.js +93 -0
  50. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.js +141 -0
  53. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/transactionBuilder.js +100 -0
  56. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transactionBuilder/transferBuilder.js +241 -0
  59. package/dist/test/unit/utils.d.ts +2 -0
  60. package/dist/test/unit/utils.d.ts.map +1 -0
  61. package/dist/test/unit/utils.js +85 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +17 -13
  64. package/.eslintignore +0 -5
  65. package/.mocharc.yml +0 -8
  66. package/CHANGELOG.md +0 -51
  67. package/dist/src/lib/iface.d.ts +0 -31
  68. package/dist/src/lib/iface.d.ts.map +0 -1
  69. package/dist/src/lib/iface.js +0 -3
  70. package/dist/src/lib/transaction.d.ts +0 -46
  71. package/dist/src/lib/transaction.d.ts.map +0 -1
  72. package/dist/src/lib/transaction.js +0 -161
  73. package/dist/src/lib/transactionBuilder.d.ts +0 -76
  74. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  75. package/dist/src/lib/transactionBuilder.js +0 -211
  76. package/dist/src/lib/transferBuilder.d.ts +0 -8
  77. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  78. package/dist/src/lib/transferBuilder.js +0 -15
@@ -1,211 +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.TransactionBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const transaction_1 = require("./transaction");
9
- const utils_1 = __importDefault(require("./utils"));
10
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
11
- const assert_1 = __importDefault(require("assert"));
12
- const constants_1 = require("./constants");
13
- class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
14
- constructor(_coinConfig) {
15
- super(_coinConfig);
16
- this._signatures = [];
17
- this._transaction = new transaction_1.Transaction(_coinConfig);
18
- }
19
- /** @inheritdoc */
20
- get transaction() {
21
- return this._transaction;
22
- }
23
- /** @inheritdoc */
24
- set transaction(transaction) {
25
- this._transaction = transaction;
26
- }
27
- /** @inheritdoc */
28
- signImplementation(key) {
29
- throw new Error('Method not implemented.');
30
- }
31
- /** @inheritDoc */
32
- addSignature(publicKey, signature) {
33
- this._signatures.push({ publicKey, signature });
34
- this.transaction.addSignature(publicKey, signature);
35
- }
36
- type(type) {
37
- this._type = type;
38
- }
39
- /**
40
- * Sets the signerAddress of this transaction.
41
- * This account will be responsible for paying transaction fees.
42
- *
43
- * @param {string} signerAddress the account that is sending this transaction
44
- * @returns {TransactionBuilder} This transaction builder
45
- */
46
- signerAddress(signerAddress) {
47
- if (!utils_1.default.isValidAddress(signerAddress)) {
48
- throw new Error('transactionBuilder: sender isValidAddress check failed :' + signerAddress);
49
- }
50
- this._signerAddress = signerAddress;
51
- return this;
52
- }
53
- gasBudget(gasBudget) {
54
- this.validateGasBudget(gasBudget);
55
- this._gasBudget = gasBudget;
56
- return this;
57
- }
58
- /**
59
- *
60
- * @param {number} sequence - sequence data for tx signer
61
- * @returns {TransactionBuilder} This transaction builder
62
- */
63
- sequence(sequence) {
64
- this.validateSequence(sequence);
65
- this._sequence = sequence;
66
- return this;
67
- }
68
- sendMessages(sendMessages) {
69
- this.validateMessageDataArray(sendMessages);
70
- this._sendMessages = sendMessages;
71
- return this;
72
- }
73
- /**
74
- * Initialize the transaction builder fields using the decoded transaction data
75
- *
76
- * @param {Transaction} tx the transaction data
77
- */
78
- initBuilder(tx) {
79
- this._transaction = tx;
80
- const txData = tx.toJson();
81
- this.type(txData.type);
82
- this.gasBudget(txData.gasBudget);
83
- this.signerAddress(txData.signerAddress);
84
- this.sendMessages(txData.sendMessages);
85
- this.gasBudget(txData.gasBudget);
86
- this.sequence(txData.sequence);
87
- }
88
- /** @inheritdoc */
89
- fromImplementation(rawTransaction) {
90
- const tx = new transaction_1.Transaction(this._coinConfig);
91
- this.validateRawTransaction(rawTransaction);
92
- tx.fromRawTransaction(rawTransaction);
93
- this.initBuilder(tx);
94
- return this.transaction;
95
- }
96
- /** @inheritdoc */
97
- async buildImplementation() {
98
- this.transaction.setAtomTransaction(this.buildAtomTransaction());
99
- this.transaction.transactionType(this.transactionType);
100
- return this.transaction;
101
- }
102
- buildAtomTransaction() {
103
- assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
104
- assert_1.default(this._signerAddress, new sdk_core_1.BuildTransactionError('signerAddress is required before building'));
105
- assert_1.default(this._sequence >= 0, new sdk_core_1.BuildTransactionError('sequence is required before building'));
106
- assert_1.default(this._sendMessages, new sdk_core_1.BuildTransactionError('sendMessages are required before building'));
107
- assert_1.default(this._gasBudget, new sdk_core_1.BuildTransactionError('gasPrice is required before building'));
108
- return {
109
- type: this._type,
110
- signerAddress: this._signerAddress,
111
- sequence: this._sequence,
112
- sendMessages: this._sendMessages,
113
- gasBudget: this._gasBudget,
114
- };
115
- }
116
- validateAddress(address, addressFormat) {
117
- if (!utils_1.default.isValidAddress(address.address)) {
118
- throw new sdk_core_1.BuildTransactionError('transactionBuilder: address isValidAddress check failed: ' + address.address);
119
- }
120
- }
121
- validateAmountData(amountArray) {
122
- amountArray.forEach((coinAmount) => {
123
- const amount = bignumber_js_1.default(coinAmount.amount);
124
- if (amount.isLessThanOrEqualTo(0)) {
125
- throw new sdk_core_1.BuildTransactionError('transactionBuilder: validateAmountData Invalid amount: ' + amount);
126
- }
127
- if (!constants_1.validDenoms.find((denom) => denom === coinAmount.denom)) {
128
- throw new sdk_core_1.BuildTransactionError('transactionBuilder: validateAmountData Invalid denom: ' + coinAmount.denom);
129
- }
130
- });
131
- }
132
- validateGasBudget(gasBudget) {
133
- if (gasBudget.gas <= 0) {
134
- throw new sdk_core_1.BuildTransactionError('Invalid gas limit ' + gasBudget.gas);
135
- }
136
- this.validateAmountData(gasBudget.amount);
137
- }
138
- validateMessageDataArray(sendMessages) {
139
- for (const msg of sendMessages) {
140
- this.validateMessageData(msg);
141
- }
142
- }
143
- validateMessageData(messageData) {
144
- if (!messageData) {
145
- throw new sdk_core_1.BuildTransactionError(`Invalid MessageData: undefined`);
146
- }
147
- if (!messageData.typeUrl) {
148
- throw new sdk_core_1.BuildTransactionError(`Invalid MessageData typeurl: ` + messageData.typeUrl);
149
- }
150
- if (!messageData.value.toAddress) {
151
- throw new sdk_core_1.BuildTransactionError(`Invalid MessageData value.toAddress: ` + messageData.value.toAddress);
152
- }
153
- if (!messageData.value.fromAddress) {
154
- throw new sdk_core_1.BuildTransactionError(`Invalid MessageData value.fromAddress: ` + messageData.value.fromAddress);
155
- }
156
- this.validateAmountData(messageData.value.amount);
157
- }
158
- /** @inheritdoc */
159
- validateKey(key) {
160
- throw new Error('Method not implemented.');
161
- }
162
- /** @inheritdoc */
163
- validateRawTransaction(rawTransaction) {
164
- if (!rawTransaction) {
165
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
166
- }
167
- if (!utils_1.default.isValidRawTransaction(rawTransaction)) {
168
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
169
- }
170
- }
171
- /** @inheritdoc */
172
- validateTransaction(transaction) {
173
- if (!transaction.atomTransaction) {
174
- return;
175
- }
176
- this.validateTransactionFields();
177
- }
178
- /**
179
- * Validates all fields are defined
180
- */
181
- validateTransactionFields() {
182
- if (this._type === undefined) {
183
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing type');
184
- }
185
- if (this._signerAddress === undefined) {
186
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing signerAddress');
187
- }
188
- if (this._sequence === undefined) {
189
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sequence');
190
- }
191
- if (this._sendMessages === undefined) {
192
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sendMessages');
193
- }
194
- if (this._gasBudget === undefined) {
195
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing gas budget data');
196
- }
197
- }
198
- /** @inheritdoc */
199
- validateValue(value) {
200
- if (value.isLessThan(0)) {
201
- throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
202
- }
203
- }
204
- validateSequence(sequence) {
205
- if (sequence < 0) {
206
- throw new sdk_core_1.BuildTransactionError('Invalid sequence: less than zero');
207
- }
208
- }
209
- }
210
- exports.TransactionBuilder = TransactionBuilder;
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBUzhCO0FBQzlCLCtDQUE0QztBQUM1QyxvREFBNEI7QUFDNUIsZ0VBQXFDO0FBRXJDLG9EQUE0QjtBQUc1QiwyQ0FBMEM7QUFFMUMsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBVXJFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBVGIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBVXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxhQUFhLENBQUMsYUFBcUI7UUFDakMsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsR0FBRyxhQUFhLENBQUMsQ0FBQztTQUM3RjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUEwQjtRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxRQUFnQjtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQTJCO1FBQ3RDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEVBQWU7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixnQkFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDbEYsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksZ0NBQXFCLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLGdCQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7UUFDL0YsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksZ0NBQXFCLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLGdCQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLGdDQUFxQixDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQztRQUUzRixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFvQixFQUFFLGFBQXNCO1FBQzFELElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsMkRBQTJELEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2hIO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLFdBQW1CO1FBQ3BDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxNQUFNLE1BQU0sR0FBRyxzQkFBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlEQUF5RCxHQUFHLE1BQU0sQ0FBQyxDQUFDO2FBQ3JHO1lBQ0QsSUFBSSxDQUFDLHVCQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM1RCxNQUFNLElBQUksZ0NBQXFCLENBQUMsd0RBQXdELEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlHO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBMEI7UUFDMUMsSUFBSSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRTtZQUN0QixNQUFNLElBQUksZ0NBQXFCLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsWUFBMkI7UUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbkU7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUN4QixNQUFNLElBQUksZ0NBQXFCLENBQUMsK0JBQStCLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx1Q0FBdUMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hHO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5Q0FBeUMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzVHO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsR0FBWTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixzQkFBc0IsQ0FBQyxjQUFzQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGVBQUssQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoRCxNQUFNLElBQUksZ0NBQXFCLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBd0I7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0sseUJBQXlCO1FBQy9CLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDNUIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUNoQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMxRTtRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3ZDLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksZ0NBQXFCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7Q0FDRjtBQTNPRCxnREEyT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEF0b21UcmFuc2FjdGlvbiwgR2FzRmVlTGltaXREYXRhLCBNZXNzYWdlRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQ29pbiB9IGZyb20gJ0Bjb3NtanMvc3RhcmdhdGUnO1xuaW1wb3J0IHsgdmFsaWREZW5vbXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG5cbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2lnbmVyQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NlcXVlbmNlOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2VuZE1lc3NhZ2VzOiBNZXNzYWdlRGF0YVtdO1xuICBwcm90ZWN0ZWQgX2dhc0J1ZGdldDogR2FzRmVlTGltaXREYXRhO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvLyBnZXQgYW5kIHNldCByZWdpb25cbiAgLyoqXG4gICAqIFRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHB1YmxpY0tleSwgc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2lnbmVyQWRkcmVzcyBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2lnbmVyQWRkcmVzcyhzaWduZXJBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKHNpZ25lckFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogc2VuZGVyIGlzVmFsaWRBZGRyZXNzIGNoZWNrIGZhaWxlZCA6JyArIHNpZ25lckFkZHJlc3MpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduZXJBZGRyZXNzID0gc2lnbmVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0J1ZGdldChnYXNCdWRnZXQ6IEdhc0ZlZUxpbWl0RGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLl9nYXNCdWRnZXQgPSBnYXNCdWRnZXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHNlcXVlbmNlIC0gc2VxdWVuY2UgZGF0YSBmb3IgdHggc2lnbmVyXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VxdWVuY2Uoc2VxdWVuY2U6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVTZXF1ZW5jZShzZXF1ZW5jZSk7XG4gICAgdGhpcy5fc2VxdWVuY2UgPSBzZXF1ZW5jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmRNZXNzYWdlcyhzZW5kTWVzc2FnZXM6IE1lc3NhZ2VEYXRhW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTWVzc2FnZURhdGFBcnJheShzZW5kTWVzc2FnZXMpO1xuICAgIHRoaXMuX3NlbmRNZXNzYWdlcyA9IHNlbmRNZXNzYWdlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZSh0eERhdGEudHlwZSk7XG4gICAgdGhpcy5nYXNCdWRnZXQodHhEYXRhLmdhc0J1ZGdldCk7XG4gICAgdGhpcy5zaWduZXJBZGRyZXNzKHR4RGF0YS5zaWduZXJBZGRyZXNzKTtcbiAgICB0aGlzLnNlbmRNZXNzYWdlcyh0eERhdGEuc2VuZE1lc3NhZ2VzKTtcbiAgICB0aGlzLmdhc0J1ZGdldCh0eERhdGEuZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLnNlcXVlbmNlKHR4RGF0YS5zZXF1ZW5jZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRBdG9tVHJhbnNhY3Rpb24odGhpcy5idWlsZEF0b21UcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRBdG9tVHJhbnNhY3Rpb24oKTogQXRvbVRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fdHlwZSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHlwZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NpZ25lckFkZHJlc3MsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NpZ25lckFkZHJlc3MgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZXF1ZW5jZSA+PSAwLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZXF1ZW5jZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRNZXNzYWdlcywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZE1lc3NhZ2VzIGFyZSByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc0J1ZGdldCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzUHJpY2UgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzaWduZXJBZGRyZXNzOiB0aGlzLl9zaWduZXJBZGRyZXNzLFxuICAgICAgc2VxdWVuY2U6IHRoaXMuX3NlcXVlbmNlLFxuICAgICAgc2VuZE1lc3NhZ2VzOiB0aGlzLl9zZW5kTWVzc2FnZXMsXG4gICAgICBnYXNCdWRnZXQ6IHRoaXMuX2dhc0J1ZGdldCxcbiAgICB9O1xuICB9XG5cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbkJ1aWxkZXI6IGFkZHJlc3MgaXNWYWxpZEFkZHJlc3MgY2hlY2sgZmFpbGVkOiAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUFtb3VudERhdGEoYW1vdW50QXJyYXk6IENvaW5bXSk6IHZvaWQge1xuICAgIGFtb3VudEFycmF5LmZvckVhY2goKGNvaW5BbW91bnQpID0+IHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IEJpZ051bWJlcihjb2luQW1vdW50LmFtb3VudCk7XG4gICAgICBpZiAoYW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudERhdGEgSW52YWxpZCBhbW91bnQ6ICcgKyBhbW91bnQpO1xuICAgICAgfVxuICAgICAgaWYgKCF2YWxpZERlbm9tcy5maW5kKChkZW5vbSkgPT4gZGVub20gPT09IGNvaW5BbW91bnQuZGVub20pKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnREYXRhIEludmFsaWQgZGVub206ICcgKyBjb2luQW1vdW50LmRlbm9tKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogR2FzRmVlTGltaXREYXRhKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldC5nYXMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgbGltaXQgJyArIGdhc0J1ZGdldC5nYXMpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQW1vdW50RGF0YShnYXNCdWRnZXQuYW1vdW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVNZXNzYWdlRGF0YUFycmF5KHNlbmRNZXNzYWdlczogTWVzc2FnZURhdGFbXSkge1xuICAgIGZvciAoY29uc3QgbXNnIG9mIHNlbmRNZXNzYWdlcykge1xuICAgICAgdGhpcy52YWxpZGF0ZU1lc3NhZ2VEYXRhKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVNZXNzYWdlRGF0YShtZXNzYWdlRGF0YTogTWVzc2FnZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoIW1lc3NhZ2VEYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIE1lc3NhZ2VEYXRhOiB1bmRlZmluZWRgKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS50eXBlVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIE1lc3NhZ2VEYXRhIHR5cGV1cmw6IGAgKyBtZXNzYWdlRGF0YS50eXBlVXJsKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS52YWx1ZS50b0FkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgTWVzc2FnZURhdGEgdmFsdWUudG9BZGRyZXNzOiBgICsgbWVzc2FnZURhdGEudmFsdWUudG9BZGRyZXNzKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS52YWx1ZS5mcm9tQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBNZXNzYWdlRGF0YSB2YWx1ZS5mcm9tQWRkcmVzczogYCArIG1lc3NhZ2VEYXRhLnZhbHVlLmZyb21BZGRyZXNzKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUFtb3VudERhdGEobWVzc2FnZURhdGEudmFsdWUuYW1vdW50KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5hdG9tVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFsbCBmaWVsZHMgYXJlIGRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHR5cGUnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25lckFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzaWduZXJBZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zZXF1ZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHNlcXVlbmNlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zZW5kTWVzc2FnZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzZW5kTWVzc2FnZXMnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2dhc0J1ZGdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGdhcyBidWRnZXQgZGF0YScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlcXVlbmNlKHNlcXVlbmNlOiBudW1iZXIpIHtcbiAgICBpZiAoc2VxdWVuY2UgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHNlcXVlbmNlOiBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- import { TransactionBuilder } from './transactionBuilder';
2
- import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
- import { TransactionType } from '@bitgo-beta/sdk-core';
4
- export declare class TransferBuilder extends TransactionBuilder {
5
- constructor(_coinConfig: Readonly<CoinConfig>);
6
- protected get transactionType(): TransactionType;
7
- }
8
- //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;CACF"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransferBuilder = void 0;
4
- const transactionBuilder_1 = require("./transactionBuilder");
5
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
- class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
7
- constructor(_coinConfig) {
8
- super(_coinConfig);
9
- }
10
- get transactionType() {
11
- return sdk_core_1.TransactionType.Send;
12
- }
13
- }
14
- exports.TransferBuilder = TransferBuilder;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQTBEO0FBRTFELG1EQUF1RDtBQUV2RCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFSRCwwQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG59XG4iXX0=