@bitgo-beta/sdk-coin-near 0.0.0-semantic-release-managed

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 (72) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +784 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +6 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +22 -0
  9. package/dist/src/lib/constants.d.ts +16 -0
  10. package/dist/src/lib/constants.d.ts.map +1 -0
  11. package/dist/src/lib/constants.js +19 -0
  12. package/dist/src/lib/contractCallWrapper.d.ts +33 -0
  13. package/dist/src/lib/contractCallWrapper.d.ts.map +1 -0
  14. package/dist/src/lib/contractCallWrapper.js +71 -0
  15. package/dist/src/lib/errors.d.ts +5 -0
  16. package/dist/src/lib/errors.d.ts.map +1 -0
  17. package/dist/src/lib/errors.js +12 -0
  18. package/dist/src/lib/fungibleTokenTransferBuilder.d.ts +64 -0
  19. package/dist/src/lib/fungibleTokenTransferBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/fungibleTokenTransferBuilder.js +158 -0
  21. package/dist/src/lib/iface.d.ts +42 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +3 -0
  24. package/dist/src/lib/index.d.ts +13 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +59 -0
  27. package/dist/src/lib/keyPair.d.ts +25 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +86 -0
  30. package/dist/src/lib/stakingActivateBuilder.d.ts +32 -0
  31. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  32. package/dist/src/lib/stakingActivateBuilder.js +105 -0
  33. package/dist/src/lib/stakingDeactivateBuilder.d.ts +32 -0
  34. package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  35. package/dist/src/lib/stakingDeactivateBuilder.js +104 -0
  36. package/dist/src/lib/stakingWithdrawBuilder.d.ts +32 -0
  37. package/dist/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/stakingWithdrawBuilder.js +104 -0
  39. package/dist/src/lib/storageDepositTransferBuilder.d.ts +36 -0
  40. package/dist/src/lib/storageDepositTransferBuilder.d.ts.map +1 -0
  41. package/dist/src/lib/storageDepositTransferBuilder.js +115 -0
  42. package/dist/src/lib/transaction.d.ts +117 -0
  43. package/dist/src/lib/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction.js +613 -0
  45. package/dist/src/lib/transactionBuilder.d.ts +95 -0
  46. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilder.js +241 -0
  48. package/dist/src/lib/transactionBuilderFactory.d.ts +34 -0
  49. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  50. package/dist/src/lib/transactionBuilderFactory.js +84 -0
  51. package/dist/src/lib/transferBuilder.d.ts +26 -0
  52. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transferBuilder.js +87 -0
  54. package/dist/src/lib/utils.d.ts +71 -0
  55. package/dist/src/lib/utils.d.ts.map +1 -0
  56. package/dist/src/lib/utils.js +139 -0
  57. package/dist/src/lib/walletInitializationBuilder.d.ts +12 -0
  58. package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  59. package/dist/src/lib/walletInitializationBuilder.js +20 -0
  60. package/dist/src/near.d.ts +217 -0
  61. package/dist/src/near.d.ts.map +1 -0
  62. package/dist/src/near.js +853 -0
  63. package/dist/src/nep141Token.d.ts +20 -0
  64. package/dist/src/nep141Token.d.ts.map +1 -0
  65. package/dist/src/nep141Token.js +101 -0
  66. package/dist/src/register.d.ts +3 -0
  67. package/dist/src/register.d.ts.map +1 -0
  68. package/dist/src/register.js +15 -0
  69. package/dist/src/tnear.d.ts +7 -0
  70. package/dist/src/tnear.d.ts.map +1 -0
  71. package/dist/src/tnear.js +11 -0
  72. package/package.json +63 -0
@@ -0,0 +1,95 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey } from '@bitgo-beta/sdk-core';
4
+ import { Transaction } from './transaction';
5
+ import * as nearAPI from 'near-api-js';
6
+ export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
7
+ private _transaction;
8
+ private _sender;
9
+ private _publicKey;
10
+ protected _receiverId: string;
11
+ private _nonce;
12
+ private _recentBlockHash;
13
+ private _signer;
14
+ private _signatures;
15
+ protected _actions: nearAPI.transactions.Action[];
16
+ constructor(_coinConfig: Readonly<CoinConfig>);
17
+ /**
18
+ * Initialize the transaction builder fields using the decoded transaction data
19
+ *
20
+ * @param {Transaction} tx the transaction data
21
+ */
22
+ initBuilder(tx: Transaction): void;
23
+ /** @inheritdoc */
24
+ protected fromImplementation(rawTransaction: string): Transaction;
25
+ /** @inheritdoc */
26
+ protected buildImplementation(): Promise<Transaction>;
27
+ /** @inheritdoc */
28
+ protected signImplementation(key: BaseKey): Transaction;
29
+ /** @inheritdoc */
30
+ protected get transaction(): Transaction;
31
+ /** @inheritdoc */
32
+ protected set transaction(transaction: Transaction);
33
+ /** @inheritdoc */
34
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
35
+ /** @inheritdoc */
36
+ validateKey(key: BaseKey): void;
37
+ /** @inheritdoc */
38
+ validateRawTransaction(rawTransaction: any): void;
39
+ /** @inheritdoc */
40
+ validateTransaction(transaction: Transaction): void;
41
+ /** @inheritdoc */
42
+ validateValue(value: BigNumber): void;
43
+ /**
44
+ * Sets the public key and the address of the sender of this transaction.
45
+ *
46
+ * @param {string} address the account that is sending this transaction
47
+ * @param {string} pubKey the public key that is sending this transaction
48
+ * @returns {TransactionBuilder} This transaction builder
49
+ */
50
+ sender(address: string, pubKey: string): this;
51
+ /**
52
+ * Sets the account Id of the receiver of this transaction.
53
+ *
54
+ * @param {string} accountId the account id of the account that is receiving this transaction
55
+ * @returns {TransactionBuilder} This transaction builder
56
+ */
57
+ receiverId(accountId: string): this;
58
+ /**
59
+ * Set the nonce
60
+ *
61
+ * @param {bigint} nonce - number that can be only used once
62
+ * @returns {TransactionBuilder} This transaction builder
63
+ */
64
+ nonce(nonce: bigint): this;
65
+ /**
66
+ * Sets the blockHash of this transaction.
67
+ *
68
+ * @param {string} blockHash the blockHash of this transaction
69
+ * @returns {TransactionBuilder} This transaction builder
70
+ */
71
+ recentBlockHash(blockHash: string): this;
72
+ /**
73
+ * Sets the list of actions of this transaction.
74
+ *
75
+ * @param {nearAPI.transactions.Action[]} value the the list of actions
76
+ * @returns {TransactionBuilder} This transaction builder
77
+ */
78
+ protected actions(value: nearAPI.transactions.Action[]): this;
79
+ /**
80
+ * Sets the action for this transaction/
81
+ *
82
+ * @param {nearAPI.transactions.Action} value the delegate action
83
+ * @returns {TransactionBuilder} The delegate transaction builder
84
+ */
85
+ protected action(value: nearAPI.transactions.Action): this;
86
+ /**
87
+ * Builds the NEAR transaction.
88
+ *
89
+ * @return {Transaction} near sdk transaction
90
+ */
91
+ protected buildNearTransaction(): nearAPI.transactions.Transaction;
92
+ /** @inheritDoc */
93
+ addSignature(publicKey: BasePublicKey, signature: Buffer): void;
94
+ }
95
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAEtB,SAAS,IAAI,aAAa,EAE3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AAMvC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAmB;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBAEtC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAalC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAMvD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAKD,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI;IAYjD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAQnD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQrC;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM1C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ/C;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,IAAI;IAK7D;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI;IAI1D;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,WAAW;IAgBlE,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhE"}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TransactionBuilder = void 0;
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const transaction_1 = require("./transaction");
42
+ const nearAPI = __importStar(require("near-api-js"));
43
+ const errors_1 = require("./errors");
44
+ const utils_1 = __importDefault(require("./utils"));
45
+ const assert_1 = __importDefault(require("assert"));
46
+ const keyPair_1 = require("./keyPair");
47
+ const hex = __importStar(require("@stablelib/hex"));
48
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
49
+ constructor(_coinConfig) {
50
+ super(_coinConfig);
51
+ this._signatures = []; // only support single sig for now
52
+ this._transaction = new transaction_1.Transaction(_coinConfig);
53
+ }
54
+ /**
55
+ * Initialize the transaction builder fields using the decoded transaction data
56
+ *
57
+ * @param {Transaction} tx the transaction data
58
+ */
59
+ initBuilder(tx) {
60
+ this._transaction = tx;
61
+ const nearTransaction = tx.nearTransaction;
62
+ this._sender = nearTransaction.signerId;
63
+ this._nonce = nearTransaction.nonce;
64
+ this._receiverId = nearTransaction.receiverId;
65
+ if (nearTransaction.publicKey.ed25519Key?.data) {
66
+ this._publicKey = hex.encode(nearTransaction.publicKey.ed25519Key.data);
67
+ }
68
+ this._recentBlockHash = nearAPI.utils.serialize.base_encode(new Uint8Array(nearTransaction.blockHash));
69
+ this._actions = nearTransaction.actions;
70
+ }
71
+ /** @inheritdoc */
72
+ fromImplementation(rawTransaction) {
73
+ this.validateRawTransaction(rawTransaction);
74
+ this.buildImplementation();
75
+ return this.transaction;
76
+ }
77
+ /** @inheritdoc */
78
+ async buildImplementation() {
79
+ this.transaction.nearTransaction = this.buildNearTransaction();
80
+ if (this._signer) {
81
+ this.transaction.sign(this._signer);
82
+ }
83
+ if (this._signatures?.length > 0) {
84
+ this.transaction.constructSignedPayload(this._signatures[0].signature);
85
+ }
86
+ this.transaction.loadInputsAndOutputs();
87
+ return this.transaction;
88
+ }
89
+ /** @inheritdoc */
90
+ signImplementation(key) {
91
+ this._signer = new keyPair_1.KeyPair({ prv: key.key });
92
+ return this._transaction;
93
+ }
94
+ // region Getters and Setters
95
+ /** @inheritdoc */
96
+ get transaction() {
97
+ return this._transaction;
98
+ }
99
+ /** @inheritdoc */
100
+ set transaction(transaction) {
101
+ this._transaction = transaction;
102
+ }
103
+ // endregion
104
+ // region Validators
105
+ /** @inheritdoc */
106
+ validateAddress(address, addressFormat) {
107
+ if (!utils_1.default.isValidAddress(address.address)) {
108
+ throw new errors_1.AddressValidationError(address.address);
109
+ }
110
+ }
111
+ /** @inheritdoc */
112
+ validateKey(key) {
113
+ try {
114
+ new keyPair_1.KeyPair({ prv: key.key });
115
+ }
116
+ catch {
117
+ throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
118
+ }
119
+ }
120
+ /** @inheritdoc */
121
+ validateRawTransaction(rawTransaction) {
122
+ try {
123
+ nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA.SignedTransaction, rawTransaction);
124
+ }
125
+ catch {
126
+ try {
127
+ nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA.Transaction, rawTransaction);
128
+ }
129
+ catch {
130
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
131
+ }
132
+ }
133
+ }
134
+ /** @inheritdoc */
135
+ validateTransaction(transaction) {
136
+ if (!transaction.nearTransaction) {
137
+ return;
138
+ }
139
+ this.validateAddress({ address: transaction.nearTransaction.signerId });
140
+ this.validateAddress({ address: transaction.nearTransaction.receiverId });
141
+ }
142
+ /** @inheritdoc */
143
+ validateValue(value) {
144
+ if (value.isLessThan(0)) {
145
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
146
+ }
147
+ }
148
+ // endregion
149
+ /**
150
+ * Sets the public key and the address of the sender of this transaction.
151
+ *
152
+ * @param {string} address the account that is sending this transaction
153
+ * @param {string} pubKey the public key that is sending this transaction
154
+ * @returns {TransactionBuilder} This transaction builder
155
+ */
156
+ sender(address, pubKey) {
157
+ if (!address || !utils_1.default.isValidAddress(address.toString())) {
158
+ throw new sdk_core_1.BuildTransactionError('Invalid or missing address, got: ' + address);
159
+ }
160
+ if (!pubKey || !utils_1.default.isValidPublicKey(pubKey)) {
161
+ throw new sdk_core_1.BuildTransactionError('Invalid or missing pubKey, got: ' + pubKey);
162
+ }
163
+ this._sender = address;
164
+ this._publicKey = pubKey;
165
+ return this;
166
+ }
167
+ /**
168
+ * Sets the account Id of the receiver of this transaction.
169
+ *
170
+ * @param {string} accountId the account id of the account that is receiving this transaction
171
+ * @returns {TransactionBuilder} This transaction builder
172
+ */
173
+ receiverId(accountId) {
174
+ utils_1.default.isValidAddress(accountId);
175
+ this._receiverId = accountId;
176
+ return this;
177
+ }
178
+ /**
179
+ * Set the nonce
180
+ *
181
+ * @param {bigint} nonce - number that can be only used once
182
+ * @returns {TransactionBuilder} This transaction builder
183
+ */
184
+ nonce(nonce) {
185
+ if (nonce < 0) {
186
+ throw new sdk_core_1.BuildTransactionError(`Invalid nonce: ${nonce}`);
187
+ }
188
+ this._nonce = nonce;
189
+ return this;
190
+ }
191
+ /**
192
+ * Sets the blockHash of this transaction.
193
+ *
194
+ * @param {string} blockHash the blockHash of this transaction
195
+ * @returns {TransactionBuilder} This transaction builder
196
+ */
197
+ recentBlockHash(blockHash) {
198
+ if (!utils_1.default.isValidBlockId(blockHash)) {
199
+ throw new sdk_core_1.BuildTransactionError(`Invalid blockHash ${blockHash}`);
200
+ }
201
+ this._recentBlockHash = blockHash;
202
+ return this;
203
+ }
204
+ /**
205
+ * Sets the list of actions of this transaction.
206
+ *
207
+ * @param {nearAPI.transactions.Action[]} value the the list of actions
208
+ * @returns {TransactionBuilder} This transaction builder
209
+ */
210
+ actions(value) {
211
+ this._actions = value;
212
+ return this;
213
+ }
214
+ /**
215
+ * Sets the action for this transaction/
216
+ *
217
+ * @param {nearAPI.transactions.Action} value the delegate action
218
+ * @returns {TransactionBuilder} The delegate transaction builder
219
+ */
220
+ action(value) {
221
+ this._actions ? this._actions.push(value) : (this._actions = [value]);
222
+ return this;
223
+ }
224
+ /**
225
+ * Builds the NEAR transaction.
226
+ *
227
+ * @return {Transaction} near sdk transaction
228
+ */
229
+ buildNearTransaction() {
230
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
231
+ (0, assert_1.default)(this._recentBlockHash, new sdk_core_1.BuildTransactionError('recent blockhash is required before building'));
232
+ const tx = nearAPI.transactions.createTransaction(this._sender, nearAPI.utils.PublicKey.fromString(nearAPI.utils.serialize.base_encode(hex.decode(this._publicKey))), this._receiverId, this._nonce, this._actions, nearAPI.utils.serialize.base_decode(this._recentBlockHash));
233
+ return tx;
234
+ }
235
+ /** @inheritDoc */
236
+ addSignature(publicKey, signature) {
237
+ this._signatures.push({ publicKey, signature });
238
+ }
239
+ }
240
+ exports.TransactionBuilder = TransactionBuilder;
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsbURBTzhCO0FBQzlCLCtDQUE0QztBQUM1QyxxREFBdUM7QUFDdkMscUNBQWtEO0FBQ2xELG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsdUNBQW9DO0FBQ3BDLG9EQUFzQztBQUN0QyxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFZckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFKYixnQkFBVyxHQUFnQixFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7UUFLdkUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBZTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FB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T0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNPLG9CQUFvQjtRQUM1QixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLGdDQUFxQixDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksZ0NBQXFCLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDO1FBRXpHLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQy9DLElBQUksQ0FBQyxPQUFPLEVBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ3BHLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFFBQVEsRUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQzNELENBQUM7UUFFRixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFuT0QsZ0RBbU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCAqIGFzIG5lYXJBUEkgZnJvbSAnbmVhci1hcGktanMnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0ICogYXMgaGV4IGZyb20gJ0BzdGFibGVsaWIvaGV4JztcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuXG4gIHByaXZhdGUgX3NlbmRlcjogc3RyaW5nO1xuICBwcml2YXRlIF9wdWJsaWNLZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9yZWNlaXZlcklkOiBzdHJpbmc7XG4gIHByaXZhdGUgX25vbmNlOiBiaWdpbnQ7XG4gIHByaXZhdGUgX3JlY2VudEJsb2NrSGFzaDogc3RyaW5nO1xuICBwcml2YXRlIF9zaWduZXI6IEtleVBhaXI7XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107IC8vIG9ubHkgc3VwcG9ydCBzaW5nbGUgc2lnIGZvciBub3dcbiAgcHJvdGVjdGVkIF9hY3Rpb25zOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgY29uc3QgbmVhclRyYW5zYWN0aW9uID0gdHgubmVhclRyYW5zYWN0aW9uO1xuICAgIHRoaXMuX3NlbmRlciA9IG5lYXJUcmFuc2FjdGlvbi5zaWduZXJJZDtcbiAgICB0aGlzLl9ub25jZSA9IG5lYXJUcmFuc2FjdGlvbi5ub25jZTtcbiAgICB0aGlzLl9yZWNlaXZlcklkID0gbmVhclRyYW5zYWN0aW9uLnJlY2VpdmVySWQ7XG4gICAgaWYgKG5lYXJUcmFuc2FjdGlvbi5wdWJsaWNLZXkuZWQyNTUxOUtleT8uZGF0YSkge1xuICAgICAgdGhpcy5fcHVibGljS2V5ID0gaGV4LmVuY29kZShuZWFyVHJhbnNhY3Rpb24ucHVibGljS2V5LmVkMjU1MTlLZXkuZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2VudEJsb2NrSGFzaCA9IG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKG5ldyBVaW50OEFycmF5KG5lYXJUcmFuc2FjdGlvbi5ibG9ja0hhc2gpKTtcbiAgICB0aGlzLl9hY3Rpb25zID0gbmVhclRyYW5zYWN0aW9uLmFjdGlvbnM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubmVhclRyYW5zYWN0aW9uID0gdGhpcy5idWlsZE5lYXJUcmFuc2FjdGlvbigpO1xuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5jb25zdHJ1Y3RTaWduZWRQYXlsb2FkKHRoaXMuX3NpZ25hdHVyZXNbMF0uc2lnbmF0dXJlKTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX3NpZ25lciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBHZXR0ZXJzIGFuZCBTZXR0ZXJzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IoYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IGFueSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5kZXNlcmlhbGl6ZShuZWFyQVBJLnRyYW5zYWN0aW9ucy5TQ0hFTUEuU2lnbmVkVHJhbnNhY3Rpb24sIHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQS5UcmFuc2FjdGlvbiwgcmF3VHJhbnNhY3Rpb24pO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24uc2lnbmVySWQgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24ucmVjZWl2ZXJJZCB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSB0aGUgcHVibGljIGtleSB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBzZW5kZXIoYWRkcmVzczogc3RyaW5nLCBwdWJLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWRkcmVzcyB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy50b1N0cmluZygpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAoIXB1YktleSB8fCAhdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWJLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcHViS2V5LCBnb3Q6ICcgKyBwdWJLZXkpO1xuICAgIH1cbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY2NvdW50IElkIG9mIHRoZSByZWNlaXZlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElkIHRoZSBhY2NvdW50IGlkIG9mIHRoZSBhY2NvdW50IHRoYXQgaXMgcmVjZWl2aW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgcmVjZWl2ZXJJZChhY2NvdW50SWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFjY291bnRJZCk7XG4gICAgdGhpcy5fcmVjZWl2ZXJJZCA9IGFjY291bnRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG5vbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7YmlnaW50fSBub25jZSAtIG51bWJlciB0aGF0IGNhbiBiZSBvbmx5IHVzZWQgb25jZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBub25jZShub25jZTogYmlnaW50KTogdGhpcyB7XG4gICAgaWYgKG5vbmNlIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBub25jZTogJHtub25jZX1gKTtcbiAgICB9XG4gICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBibG9ja0hhc2ggb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJsb2NrSGFzaCB0aGUgYmxvY2tIYXNoIG9mIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgcmVjZW50QmxvY2tIYXNoKGJsb2NrSGFzaDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQmxvY2tJZChibG9ja0hhc2gpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIGJsb2NrSGFzaCAke2Jsb2NrSGFzaH1gKTtcbiAgICB9XG4gICAgdGhpcy5fcmVjZW50QmxvY2tIYXNoID0gYmxvY2tIYXNoO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxpc3Qgb2YgYWN0aW9ucyBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge25lYXJBUEkudHJhbnNhY3Rpb25zLkFjdGlvbltdfSB2YWx1ZSB0aGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpb25zKHZhbHVlOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXSk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGlvbnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3Rpb24gZm9yIHRoaXMgdHJhbnNhY3Rpb24vXG4gICAqXG4gICAqIEBwYXJhbSB7bmVhckFQSS50cmFuc2FjdGlvbnMuQWN0aW9ufSB2YWx1ZSB0aGUgZGVsZWdhdGUgYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoZSBkZWxlZ2F0ZSB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwcm90ZWN0ZWQgYWN0aW9uKHZhbHVlOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb24pOiB0aGlzIHtcbiAgICB0aGlzLl9hY3Rpb25zID8gdGhpcy5fYWN0aW9ucy5wdXNoKHZhbHVlKSA6ICh0aGlzLl9hY3Rpb25zID0gW3ZhbHVlXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgTkVBUiB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7VHJhbnNhY3Rpb259IG5lYXIgc2RrIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGROZWFyVHJhbnNhY3Rpb24oKTogbmVhckFQSS50cmFuc2FjdGlvbnMuVHJhbnNhY3Rpb24ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3JlY2VudEJsb2NrSGFzaCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigncmVjZW50IGJsb2NraGFzaCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG5cbiAgICBjb25zdCB0eCA9IG5lYXJBUEkudHJhbnNhY3Rpb25zLmNyZWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgdGhpcy5fc2VuZGVyLFxuICAgICAgbmVhckFQSS51dGlscy5QdWJsaWNLZXkuZnJvbVN0cmluZyhuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5iYXNlX2VuY29kZShoZXguZGVjb2RlKHRoaXMuX3B1YmxpY0tleSkpKSxcbiAgICAgIHRoaXMuX3JlY2VpdmVySWQsXG4gICAgICB0aGlzLl9ub25jZSxcbiAgICAgIHRoaXMuX2FjdGlvbnMsXG4gICAgICBuZWFyQVBJLnV0aWxzLnNlcmlhbGl6ZS5iYXNlX2RlY29kZSh0aGlzLl9yZWNlbnRCbG9ja0hhc2gpXG4gICAgKTtcblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
3
+ import { TransferBuilder } from './transferBuilder';
4
+ import { WalletInitializationBuilder } from './walletInitializationBuilder';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { Transaction } from './transaction';
7
+ import { StakingActivateBuilder } from './stakingActivateBuilder';
8
+ import { StakingDeactivateBuilder } from './stakingDeactivateBuilder';
9
+ import { StakingWithdrawBuilder } from './stakingWithdrawBuilder';
10
+ import { FungibleTokenTransferBuilder } from './fungibleTokenTransferBuilder';
11
+ import { StorageDepositTransferBuilder } from './storageDepositTransferBuilder';
12
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
13
+ constructor(_coinConfig: Readonly<CoinConfig>);
14
+ /** @inheritdoc */
15
+ from(raw: string): TransactionBuilder;
16
+ /** @inheritdoc */
17
+ getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder;
18
+ /** @inheritdoc */
19
+ getTransferBuilder(tx?: Transaction): TransferBuilder;
20
+ getStakingActivateBuilder(tx?: Transaction): StakingActivateBuilder;
21
+ getStakingDeactivateBuilder(tx?: Transaction): StakingDeactivateBuilder;
22
+ getStakingWithdrawBuilder(tx?: Transaction): StakingWithdrawBuilder;
23
+ getFungibleTokenTransferBuilder(tx?: Transaction): FungibleTokenTransferBuilder;
24
+ getStorageDepositTransferBuilder(tx?: Transaction): StorageDepositTransferBuilder;
25
+ /**
26
+ * Initialize the builder with the given transaction
27
+ *
28
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
29
+ * @param {TransactionBuilder} builder - the builder to be initialized
30
+ * @returns {TransactionBuilder} the builder initialized
31
+ */
32
+ private static initializeBuilder;
33
+ }
34
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA4BrC,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE,+BAA+B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAI/E,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,6BAA6B;IAIjF;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAMjC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilderFactory = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const transferBuilder_1 = require("./transferBuilder");
6
+ const walletInitializationBuilder_1 = require("./walletInitializationBuilder");
7
+ const transaction_1 = require("./transaction");
8
+ const stakingActivateBuilder_1 = require("./stakingActivateBuilder");
9
+ const stakingDeactivateBuilder_1 = require("./stakingDeactivateBuilder");
10
+ const stakingWithdrawBuilder_1 = require("./stakingWithdrawBuilder");
11
+ const fungibleTokenTransferBuilder_1 = require("./fungibleTokenTransferBuilder");
12
+ const storageDepositTransferBuilder_1 = require("./storageDepositTransferBuilder");
13
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ }
17
+ /** @inheritdoc */
18
+ from(raw) {
19
+ try {
20
+ const tx = new transaction_1.Transaction(this._coinConfig);
21
+ tx.fromRawTransaction(raw);
22
+ switch (tx.type) {
23
+ case sdk_core_1.TransactionType.Send:
24
+ if (fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder.isFungibleTokenTransferTransaction(tx.nearTransaction.actions)) {
25
+ return this.getFungibleTokenTransferBuilder(tx);
26
+ }
27
+ return this.getTransferBuilder(tx);
28
+ case sdk_core_1.TransactionType.WalletInitialization:
29
+ return this.getWalletInitializationBuilder(tx);
30
+ case sdk_core_1.TransactionType.StakingActivate:
31
+ return this.getStakingActivateBuilder(tx);
32
+ case sdk_core_1.TransactionType.StakingDeactivate:
33
+ return this.getStakingDeactivateBuilder(tx);
34
+ case sdk_core_1.TransactionType.StakingWithdraw:
35
+ return this.getStakingWithdrawBuilder(tx);
36
+ case sdk_core_1.TransactionType.StorageDeposit:
37
+ return this.getStorageDepositTransferBuilder(tx);
38
+ default:
39
+ throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
40
+ }
41
+ }
42
+ catch (e) {
43
+ throw e;
44
+ }
45
+ }
46
+ /** @inheritdoc */
47
+ getWalletInitializationBuilder(tx) {
48
+ return TransactionBuilderFactory.initializeBuilder(tx, new walletInitializationBuilder_1.WalletInitializationBuilder(this._coinConfig));
49
+ }
50
+ /** @inheritdoc */
51
+ getTransferBuilder(tx) {
52
+ return TransactionBuilderFactory.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
53
+ }
54
+ getStakingActivateBuilder(tx) {
55
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingActivateBuilder_1.StakingActivateBuilder(this._coinConfig));
56
+ }
57
+ getStakingDeactivateBuilder(tx) {
58
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingDeactivateBuilder_1.StakingDeactivateBuilder(this._coinConfig));
59
+ }
60
+ getStakingWithdrawBuilder(tx) {
61
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingWithdrawBuilder_1.StakingWithdrawBuilder(this._coinConfig));
62
+ }
63
+ getFungibleTokenTransferBuilder(tx) {
64
+ return TransactionBuilderFactory.initializeBuilder(tx, new fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder(this._coinConfig));
65
+ }
66
+ getStorageDepositTransferBuilder(tx) {
67
+ return TransactionBuilderFactory.initializeBuilder(tx, new storageDepositTransferBuilder_1.StorageDepositTransferBuilder(this._coinConfig));
68
+ }
69
+ /**
70
+ * Initialize the builder with the given transaction
71
+ *
72
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
73
+ * @param {TransactionBuilder} builder - the builder to be initialized
74
+ * @returns {TransactionBuilder} the builder initialized
75
+ */
76
+ static initializeBuilder(tx, builder) {
77
+ if (tx) {
78
+ builder.initBuilder(tx);
79
+ }
80
+ return builder;
81
+ }
82
+ }
83
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBK0c7QUFDL0csdURBQW9EO0FBQ3BELCtFQUE0RTtBQUU1RSwrQ0FBNEM7QUFDNUMscUVBQWtFO0FBQ2xFLHlFQUFzRTtBQUN0RSxxRUFBa0U7QUFDbEUsaUZBQThFO0FBQzlFLG1GQUFnRjtBQUVoRixNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixJQUFJLDJEQUE0QixDQUFDLGtDQUFrQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEcsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2xELENBQUM7b0JBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0I7b0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRCxLQUFLLDBCQUFlLENBQUMsZUFBZTtvQkFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEtBQUssMEJBQWUsQ0FBQyxpQkFBaUI7b0JBQ3BDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxLQUFLLDBCQUFlLENBQUMsZUFBZTtvQkFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEtBQUssMEJBQWUsQ0FBQyxjQUFjO29CQUNqQyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkQ7b0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEIsQ0FBQyxFQUFnQjtRQUM3QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlEQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBZ0I7UUFDakMsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFnQjtRQUN4QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLCtDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxFQUFnQjtRQUMxQyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1EQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFnQjtRQUN4QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLCtDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxFQUFnQjtRQUM5QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDJEQUE0QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxFQUFnQjtRQUMvQyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDZEQUE2QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUNwRyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBN0VELDhEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIH0gZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdBY3RpdmF0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ1dpdGhkcmF3QnVpbGRlcic7XG5pbXBvcnQgeyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9mdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFN0b3JhZ2VEZXBvc2l0VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9zdG9yYWdlRGVwb3NpdFRyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICBpZiAoRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5pc0Z1bmdpYmxlVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uKHR4Lm5lYXJUcmFuc2FjdGlvbi5hY3Rpb25zKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3OlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdG9yYWdlRGVwb3NpdDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9yYWdlRGVwb3NpdFRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ1dpdGhkcmF3QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3Rha2luZ1dpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nV2l0aGRyYXdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdG9yYWdlRGVwb3NpdFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3RvcmFnZURlcG9zaXRUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3RvcmFnZURlcG9zaXRUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseKey } from '@bitgo-beta/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ export declare class TransferBuilder extends TransactionBuilder {
6
+ private _amount;
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ /**
9
+ * Initialize the transaction builder fields using the decoded transaction data
10
+ *
11
+ * @param {Transaction} tx the transaction data
12
+ */
13
+ initBuilder(tx: Transaction): void;
14
+ /** @inheritdoc */
15
+ protected buildImplementation(): Promise<Transaction>;
16
+ /** @inheritdoc */
17
+ protected signImplementation(key: BaseKey): Transaction;
18
+ /**
19
+ * Sets the amount of this transaction.
20
+ *
21
+ * @param {string} value the amount to be sent in yocto (1 Near = 1e24 yoctos)
22
+ * @returns {TransactionBuilder} This transaction builder
23
+ */
24
+ amount(value: string): this;
25
+ }
26
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAA0C,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAOlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAMvD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAKnC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TransferBuilder = void 0;
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const transactionBuilder_1 = require("./transactionBuilder");
42
+ const NearAPI = __importStar(require("near-api-js"));
43
+ const assert_1 = __importDefault(require("assert"));
44
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
45
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
46
+ constructor(_coinConfig) {
47
+ super(_coinConfig);
48
+ }
49
+ /**
50
+ * Initialize the transaction builder fields using the decoded transaction data
51
+ *
52
+ * @param {Transaction} tx the transaction data
53
+ */
54
+ initBuilder(tx) {
55
+ super.initBuilder(tx);
56
+ if (tx.nearTransaction.actions[0].transfer) {
57
+ this._amount = tx.nearTransaction.actions[0].transfer.deposit.toString();
58
+ }
59
+ }
60
+ /** @inheritdoc */
61
+ async buildImplementation() {
62
+ (0, assert_1.default)(this._amount, new sdk_core_1.BuildTransactionError('amount is required before building transfer'));
63
+ super.actions([NearAPI.transactions.transfer(BigInt(this._amount))]);
64
+ const tx = await super.buildImplementation();
65
+ tx.setTransactionType(sdk_core_1.TransactionType.Send);
66
+ return tx;
67
+ }
68
+ /** @inheritdoc */
69
+ signImplementation(key) {
70
+ const tx = super.signImplementation(key);
71
+ tx.setTransactionType(sdk_core_1.TransactionType.Send);
72
+ return tx;
73
+ }
74
+ /**
75
+ * Sets the amount of this transaction.
76
+ *
77
+ * @param {string} value the amount to be sent in yocto (1 Near = 1e24 yoctos)
78
+ * @returns {TransactionBuilder} This transaction builder
79
+ */
80
+ amount(value) {
81
+ this.validateValue(new bignumber_js_1.default(value));
82
+ this._amount = value;
83
+ return this;
84
+ }
85
+ }
86
+ exports.TransferBuilder = TransferBuilder;
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQXVGO0FBQ3ZGLDZEQUEwRDtBQUUxRCxxREFBdUM7QUFDdkMsb0RBQTRCO0FBQzVCLGdFQUFxQztBQUVyQyxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBR3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE5Q0QsMENBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgTmVhckFQSSBmcm9tICduZWFyLWFwaS1qcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9hbW91bnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGlmICh0eC5uZWFyVHJhbnNhY3Rpb24uYWN0aW9uc1swXS50cmFuc2Zlcikge1xuICAgICAgdGhpcy5fYW1vdW50ID0gdHgubmVhclRyYW5zYWN0aW9uLmFjdGlvbnNbMF0udHJhbnNmZXIuZGVwb3NpdC50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX2Ftb3VudCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZyB0cmFuc2ZlcicpKTtcbiAgICBzdXBlci5hY3Rpb25zKFtOZWFyQVBJLnRyYW5zYWN0aW9ucy50cmFuc2ZlcihCaWdJbnQodGhpcy5fYW1vdW50KSldKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgICB0eC5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICAgIHR4LnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFtb3VudCBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdGhlIGFtb3VudCB0byBiZSBzZW50IGluIHlvY3RvICgxIE5lYXIgPSAxZTI0IHlvY3RvcylcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWx1ZSkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=