@bitgo-beta/sdk-coin-near 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +32 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +4 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +16 -0
  9. package/dist/src/lib/constants.d.ts +12 -0
  10. package/dist/src/lib/constants.d.ts.map +1 -0
  11. package/dist/src/lib/constants.js +15 -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 +68 -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/iface.d.ts +40 -0
  19. package/dist/src/lib/iface.d.ts.map +1 -0
  20. package/dist/src/lib/iface.js +8 -0
  21. package/dist/src/lib/index.d.ts +11 -0
  22. package/dist/src/lib/index.d.ts.map +1 -0
  23. package/dist/src/lib/index.js +41 -0
  24. package/dist/src/lib/keyPair.d.ts +25 -0
  25. package/dist/src/lib/keyPair.d.ts.map +1 -0
  26. package/dist/src/lib/keyPair.js +72 -0
  27. package/dist/src/lib/stakingActivateBuilder.d.ts +32 -0
  28. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  29. package/dist/src/lib/stakingActivateBuilder.js +90 -0
  30. package/dist/src/lib/stakingDeactivateBuilder.d.ts +32 -0
  31. package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  32. package/dist/src/lib/stakingDeactivateBuilder.js +89 -0
  33. package/dist/src/lib/stakingWithdrawBuilder.d.ts +32 -0
  34. package/dist/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  35. package/dist/src/lib/stakingWithdrawBuilder.js +89 -0
  36. package/dist/src/lib/transaction.d.ts +90 -0
  37. package/dist/src/lib/transaction.d.ts.map +1 -0
  38. package/dist/src/lib/transaction.js +368 -0
  39. package/dist/src/lib/transactionBuilder.d.ts +89 -0
  40. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  41. package/dist/src/lib/transactionBuilder.js +216 -0
  42. package/dist/src/lib/transactionBuilderFactory.d.ts +30 -0
  43. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  44. package/dist/src/lib/transactionBuilderFactory.js +71 -0
  45. package/dist/src/lib/transferBuilder.d.ts +26 -0
  46. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  47. package/dist/src/lib/transferBuilder.js +72 -0
  48. package/dist/src/lib/utils.d.ts +42 -0
  49. package/dist/src/lib/utils.d.ts.map +1 -0
  50. package/dist/src/lib/utils.js +85 -0
  51. package/dist/src/lib/walletInitializationBuilder.d.ts +12 -0
  52. package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/walletInitializationBuilder.js +20 -0
  54. package/dist/src/near.d.ts +169 -0
  55. package/dist/src/near.d.ts.map +1 -0
  56. package/dist/src/near.js +471 -0
  57. package/dist/src/tnear.d.ts +7 -0
  58. package/dist/src/tnear.d.ts.map +1 -0
  59. package/dist/src/tnear.js +11 -0
  60. package/package.json +61 -0
@@ -0,0 +1,216 @@
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 sdk_core_1 = require("@bitgo-beta/sdk-core");
27
+ const transaction_1 = require("./transaction");
28
+ const nearAPI = __importStar(require("near-api-js"));
29
+ const errors_1 = require("./errors");
30
+ const utils_1 = __importDefault(require("./utils"));
31
+ const assert_1 = __importDefault(require("assert"));
32
+ const keyPair_1 = require("./keyPair");
33
+ const hex = __importStar(require("@stablelib/hex"));
34
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
35
+ constructor(_coinConfig) {
36
+ super(_coinConfig);
37
+ this._signatures = []; // only support single sig for now
38
+ this._transaction = new transaction_1.Transaction(_coinConfig);
39
+ }
40
+ /**
41
+ * Initialize the transaction builder fields using the decoded transaction data
42
+ *
43
+ * @param {Transaction} tx the transaction data
44
+ */
45
+ initBuilder(tx) {
46
+ this._transaction = tx;
47
+ const nearTransaction = tx.nearTransaction;
48
+ this._sender = nearTransaction.signerId;
49
+ this._nonce = nearTransaction.nonce;
50
+ this._receiverId = nearTransaction.receiverId;
51
+ this._publicKey = hex.encode(nearTransaction.publicKey.data);
52
+ this._recentBlockHash = nearAPI.utils.serialize.base_encode(nearTransaction.blockHash);
53
+ this._actions = nearTransaction.actions;
54
+ }
55
+ /** @inheritdoc */
56
+ fromImplementation(rawTransaction) {
57
+ this.validateRawTransaction(rawTransaction);
58
+ this.buildImplementation();
59
+ return this.transaction;
60
+ }
61
+ /** @inheritdoc */
62
+ async buildImplementation() {
63
+ var _a;
64
+ this.transaction.nearTransaction = this.buildNearTransaction();
65
+ if (this._signer) {
66
+ this.transaction.sign(this._signer);
67
+ }
68
+ if (((_a = this._signatures) === null || _a === void 0 ? void 0 : _a.length) > 0) {
69
+ this.transaction.constructSignedPayload(this._signatures[0].signature);
70
+ }
71
+ this.transaction.loadInputsAndOutputs();
72
+ return this.transaction;
73
+ }
74
+ /** @inheritdoc */
75
+ signImplementation(key) {
76
+ this._signer = new keyPair_1.KeyPair({ prv: key.key });
77
+ return this._transaction;
78
+ }
79
+ // region Getters and Setters
80
+ /** @inheritdoc */
81
+ get transaction() {
82
+ return this._transaction;
83
+ }
84
+ /** @inheritdoc */
85
+ set transaction(transaction) {
86
+ this._transaction = transaction;
87
+ }
88
+ // endregion
89
+ // region Validators
90
+ /** @inheritdoc */
91
+ validateAddress(address, addressFormat) {
92
+ if (!utils_1.default.isValidAddress(address.address)) {
93
+ throw new errors_1.AddressValidationError(address.address);
94
+ }
95
+ }
96
+ /** @inheritdoc */
97
+ validateKey(key) {
98
+ try {
99
+ new keyPair_1.KeyPair({ prv: key.key });
100
+ }
101
+ catch {
102
+ throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
103
+ }
104
+ }
105
+ /** @inheritdoc */
106
+ validateRawTransaction(rawTransaction) {
107
+ try {
108
+ nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA, nearAPI.transactions.SignedTransaction, rawTransaction);
109
+ }
110
+ catch {
111
+ try {
112
+ nearAPI.utils.serialize.deserialize(nearAPI.transactions.SCHEMA, nearAPI.transactions.Transaction, rawTransaction);
113
+ }
114
+ catch {
115
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
116
+ }
117
+ }
118
+ }
119
+ /** @inheritdoc */
120
+ validateTransaction(transaction) {
121
+ if (!transaction.nearTransaction) {
122
+ return;
123
+ }
124
+ this.validateAddress({ address: transaction.nearTransaction.signerId });
125
+ this.validateAddress({ address: transaction.nearTransaction.receiverId });
126
+ }
127
+ /** @inheritdoc */
128
+ validateValue(value) {
129
+ if (value.isLessThan(0)) {
130
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
131
+ }
132
+ }
133
+ // endregion
134
+ /**
135
+ * Sets the public key and the address of the sender of this transaction.
136
+ *
137
+ * @param {string} address the account that is sending this transaction
138
+ * @param {string} pubKey the public key that is sending this transaction
139
+ * @returns {TransactionBuilder} This transaction builder
140
+ */
141
+ sender(address, pubKey) {
142
+ if (!address || !utils_1.default.isValidAddress(address.toString())) {
143
+ throw new sdk_core_1.BuildTransactionError('Invalid or missing address, got: ' + address);
144
+ }
145
+ if (!pubKey || !utils_1.default.isValidPublicKey(pubKey)) {
146
+ throw new sdk_core_1.BuildTransactionError('Invalid or missing pubKey, got: ' + pubKey);
147
+ }
148
+ this._sender = address;
149
+ this._publicKey = pubKey;
150
+ return this;
151
+ }
152
+ /**
153
+ * Sets the account Id of the receiver of this transaction.
154
+ *
155
+ * @param {string} accountId the account id of the account that is receiving this transaction
156
+ * @returns {TransactionBuilder} This transaction builder
157
+ */
158
+ receiverId(accountId) {
159
+ utils_1.default.isValidAddress(accountId);
160
+ this._receiverId = accountId;
161
+ return this;
162
+ }
163
+ /**
164
+ * Set the nonce
165
+ *
166
+ * @param {number} nonce - number that can be only used once
167
+ * @returns {TransactionBuilder} This transaction builder
168
+ */
169
+ nonce(nonce) {
170
+ if (nonce < 0) {
171
+ throw new sdk_core_1.BuildTransactionError(`Invalid nonce: ${nonce}`);
172
+ }
173
+ this._nonce = nonce;
174
+ return this;
175
+ }
176
+ /**
177
+ * Sets the blockHash of this transaction.
178
+ *
179
+ * @param {string} blockHash the blockHash of this transaction
180
+ * @returns {TransactionBuilder} This transaction builder
181
+ */
182
+ recentBlockHash(blockHash) {
183
+ if (!utils_1.default.isValidBlockId(blockHash)) {
184
+ throw new sdk_core_1.BuildTransactionError(`Invalid blockHash ${blockHash}`);
185
+ }
186
+ this._recentBlockHash = blockHash;
187
+ return this;
188
+ }
189
+ /**
190
+ * Sets the list of actions of this transaction.
191
+ *
192
+ * @param {nearAPI.transactions.Action[]} value the the list of actions
193
+ * @returns {TransactionBuilder} This transaction builder
194
+ */
195
+ actions(value) {
196
+ this._actions = value;
197
+ return this;
198
+ }
199
+ /**
200
+ * Builds the NEAR transaction.
201
+ *
202
+ * @return {Transaction} near sdk transaction
203
+ */
204
+ buildNearTransaction() {
205
+ assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
206
+ assert_1.default(this._recentBlockHash, new sdk_core_1.BuildTransactionError('recent blockhash is required before building'));
207
+ 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));
208
+ return tx;
209
+ }
210
+ /** @inheritDoc */
211
+ addSignature(publicKey, signature) {
212
+ this._signatures.push({ publicKey, signature });
213
+ }
214
+ }
215
+ exports.TransactionBuilder = TransactionBuilder;
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLG1EQU84QjtBQUM5QiwrQ0FBNEM7QUFDNUMscURBQXVDO0FBQ3ZDLHFDQUFrRDtBQUNsRCxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLHVDQUFvQztBQUNwQyxvREFBc0M7QUFDdEMsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBWXJFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSmIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBS3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEVBQWU7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7O1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCw2QkFBNkI7SUFDN0Isa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVcsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsZUFBZSxDQUFDLE9BQW9CLEVBQUUsYUFBc0I7UUFDMUQsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFDLE1BQU0sSUFBSSwrQkFBc0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxHQUFZO1FBQ3RCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFBQyxNQUFNO1lBQ04sTUFBTSxJQUFJLGdDQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLGNBQW1CO1FBQ3hDLElBQUk7WUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQ2pDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUMzQixPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUN0QyxjQUFjLENBQ2YsQ0FBQztTQUNIO1FBQUMsTUFBTTtZQUNOLElBQUk7Z0JBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUNqQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFDM0IsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQ2hDLGNBQWMsQ0FDZixDQUFDO2FBQ0g7WUFBQyxNQUFNO2dCQUNOLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQzVEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxZQUFZO0lBRVo7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQzNDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO1lBQ3pELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUNoRjtRQUNELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxVQUFVLENBQUMsU0FBaUI7UUFDakMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3hCLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNiLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUFDLFNBQWlCO1FBQ3RDLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQkFBcUIsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxPQUFPLENBQUMsS0FBb0M7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNPLG9CQUFvQjtRQUM1QixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7UUFDdEYsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLENBQUM7UUFFekcsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FDL0MsSUFBSSxDQUFDLE9BQU8sRUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDcEcsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsUUFBUSxFQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FDM0QsQ0FBQztRQUVGLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQTlORCxnREE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgbmVhckFQSSBmcm9tICduZWFyLWFwaS1qcyc7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgKiBhcyBoZXggZnJvbSAnQHN0YWJsZWxpYi9oZXgnO1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfc2VuZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX3B1YmxpY0tleTogc3RyaW5nO1xuICBwcml2YXRlIF9yZWNlaXZlcklkOiBzdHJpbmc7XG4gIHByaXZhdGUgX25vbmNlOiBudW1iZXI7XG4gIHByaXZhdGUgX3JlY2VudEJsb2NrSGFzaDogc3RyaW5nO1xuICBwcml2YXRlIF9zaWduZXI6IEtleVBhaXI7XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107IC8vIG9ubHkgc3VwcG9ydCBzaW5nbGUgc2lnIGZvciBub3dcbiAgcHJvdGVjdGVkIF9hY3Rpb25zOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgY29uc3QgbmVhclRyYW5zYWN0aW9uID0gdHgubmVhclRyYW5zYWN0aW9uO1xuICAgIHRoaXMuX3NlbmRlciA9IG5lYXJUcmFuc2FjdGlvbi5zaWduZXJJZDtcbiAgICB0aGlzLl9ub25jZSA9IG5lYXJUcmFuc2FjdGlvbi5ub25jZTtcbiAgICB0aGlzLl9yZWNlaXZlcklkID0gbmVhclRyYW5zYWN0aW9uLnJlY2VpdmVySWQ7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gaGV4LmVuY29kZShuZWFyVHJhbnNhY3Rpb24ucHVibGljS2V5LmRhdGEpO1xuICAgIHRoaXMuX3JlY2VudEJsb2NrSGFzaCA9IG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKG5lYXJUcmFuc2FjdGlvbi5ibG9ja0hhc2gpO1xuICAgIHRoaXMuX2FjdGlvbnMgPSBuZWFyVHJhbnNhY3Rpb24uYWN0aW9ucztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24gPSB0aGlzLmJ1aWxkTmVhclRyYW5zYWN0aW9uKCk7XG4gICAgaWYgKHRoaXMuX3NpZ25lcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX3NpZ25lcik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmNvbnN0cnVjdFNpZ25lZFBheWxvYWQodGhpcy5fc2lnbmF0dXJlc1swXS5zaWduYXR1cmUpO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy5fc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLy8gcmVnaW9uIEdldHRlcnMgYW5kIFNldHRlcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQWRkcmVzc1ZhbGlkYXRpb25FcnJvcihhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBLZXkgdmFsaWRhdGlvbiBmYWlsZWRgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogYW55KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKFxuICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5TQ0hFTUEsXG4gICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNpZ25lZFRyYW5zYWN0aW9uLFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmRlc2VyaWFsaXplKFxuICAgICAgICAgIG5lYXJBUEkudHJhbnNhY3Rpb25zLlNDSEVNQSxcbiAgICAgICAgICBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbixcbiAgICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24uc2lnbmVySWQgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0cmFuc2FjdGlvbi5uZWFyVHJhbnNhY3Rpb24ucmVjZWl2ZXJJZCB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSB0aGUgcHVibGljIGtleSB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBzZW5kZXIoYWRkcmVzczogc3RyaW5nLCBwdWJLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWRkcmVzcyB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy50b1N0cmluZygpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAoIXB1YktleSB8fCAhdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWJLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcHViS2V5LCBnb3Q6ICcgKyBwdWJLZXkpO1xuICAgIH1cbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY2NvdW50IElkIG9mIHRoZSByZWNlaXZlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElkIHRoZSBhY2NvdW50IGlkIG9mIHRoZSBhY2NvdW50IHRoYXQgaXMgcmVjZWl2aW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgcmVjZWl2ZXJJZChhY2NvdW50SWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFjY291bnRJZCk7XG4gICAgdGhpcy5fcmVjZWl2ZXJJZCA9IGFjY291bnRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG5vbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBub25jZSAtIG51bWJlciB0aGF0IGNhbiBiZSBvbmx5IHVzZWQgb25jZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBub25jZShub25jZTogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKG5vbmNlIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBub25jZTogJHtub25jZX1gKTtcbiAgICB9XG4gICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBibG9ja0hhc2ggb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJsb2NrSGFzaCB0aGUgYmxvY2tIYXNoIG9mIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgcmVjZW50QmxvY2tIYXNoKGJsb2NrSGFzaDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQmxvY2tJZChibG9ja0hhc2gpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIGJsb2NrSGFzaCAke2Jsb2NrSGFzaH1gKTtcbiAgICB9XG4gICAgdGhpcy5fcmVjZW50QmxvY2tIYXNoID0gYmxvY2tIYXNoO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxpc3Qgb2YgYWN0aW9ucyBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge25lYXJBUEkudHJhbnNhY3Rpb25zLkFjdGlvbltdfSB2YWx1ZSB0aGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHByb3RlY3RlZCBhY3Rpb25zKHZhbHVlOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5BY3Rpb25bXSk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGlvbnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogQnVpbGRzIHRoZSBORUFSIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtUcmFuc2FjdGlvbn0gbmVhciBzZGsgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZE5lYXJUcmFuc2FjdGlvbigpOiBuZWFyQVBJLnRyYW5zYWN0aW9ucy5UcmFuc2FjdGlvbiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fcmVjZW50QmxvY2tIYXNoLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdyZWNlbnQgYmxvY2toYXNoIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcblxuICAgIGNvbnN0IHR4ID0gbmVhckFQSS50cmFuc2FjdGlvbnMuY3JlYXRlVHJhbnNhY3Rpb24oXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICBuZWFyQVBJLnV0aWxzLlB1YmxpY0tleS5mcm9tU3RyaW5nKG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZW5jb2RlKGhleC5kZWNvZGUodGhpcy5fcHVibGljS2V5KSkpLFxuICAgICAgdGhpcy5fcmVjZWl2ZXJJZCxcbiAgICAgIHRoaXMuX25vbmNlLFxuICAgICAgdGhpcy5fYWN0aW9ucyxcbiAgICAgIG5lYXJBUEkudXRpbHMuc2VyaWFsaXplLmJhc2VfZGVjb2RlKHRoaXMuX3JlY2VudEJsb2NrSGFzaClcbiAgICApO1xuXG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
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
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ /** @inheritdoc */
13
+ from(raw: string): TransactionBuilder;
14
+ /** @inheritdoc */
15
+ getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder;
16
+ /** @inheritdoc */
17
+ getTransferBuilder(tx?: Transaction): TransferBuilder;
18
+ getStakingActivateBuilder(tx?: Transaction): StakingActivateBuilder;
19
+ getStakingDeactivateBuilder(tx?: Transaction): StakingDeactivateBuilder;
20
+ getStakingWithdrawBuilder(tx?: Transaction): StakingWithdrawBuilder;
21
+ /**
22
+ * Initialize the builder with the given transaction
23
+ *
24
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
25
+ * @param {TransactionBuilder} builder - the builder to be initialized
26
+ * @returns {TransactionBuilder} the builder initialized
27
+ */
28
+ private static initializeBuilder;
29
+ }
30
+ //# 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;AAElE,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAuBrC,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;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAMjC"}
@@ -0,0 +1,71 @@
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
+ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
12
+ constructor(_coinConfig) {
13
+ super(_coinConfig);
14
+ }
15
+ /** @inheritdoc */
16
+ from(raw) {
17
+ try {
18
+ const tx = new transaction_1.Transaction(this._coinConfig);
19
+ tx.fromRawTransaction(raw);
20
+ switch (tx.type) {
21
+ case sdk_core_1.TransactionType.Send:
22
+ return this.getTransferBuilder(tx);
23
+ case sdk_core_1.TransactionType.WalletInitialization:
24
+ return this.getWalletInitializationBuilder(tx);
25
+ case sdk_core_1.TransactionType.StakingActivate:
26
+ return this.getStakingActivateBuilder(tx);
27
+ case sdk_core_1.TransactionType.StakingDeactivate:
28
+ return this.getStakingDeactivateBuilder(tx);
29
+ case sdk_core_1.TransactionType.StakingWithdraw:
30
+ return this.getStakingWithdrawBuilder(tx);
31
+ default:
32
+ throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
33
+ }
34
+ }
35
+ catch (e) {
36
+ throw e;
37
+ }
38
+ }
39
+ /** @inheritdoc */
40
+ getWalletInitializationBuilder(tx) {
41
+ return TransactionBuilderFactory.initializeBuilder(tx, new walletInitializationBuilder_1.WalletInitializationBuilder(this._coinConfig));
42
+ }
43
+ /** @inheritdoc */
44
+ getTransferBuilder(tx) {
45
+ return TransactionBuilderFactory.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
46
+ }
47
+ getStakingActivateBuilder(tx) {
48
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingActivateBuilder_1.StakingActivateBuilder(this._coinConfig));
49
+ }
50
+ getStakingDeactivateBuilder(tx) {
51
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingDeactivateBuilder_1.StakingDeactivateBuilder(this._coinConfig));
52
+ }
53
+ getStakingWithdrawBuilder(tx) {
54
+ return TransactionBuilderFactory.initializeBuilder(tx, new stakingWithdrawBuilder_1.StakingWithdrawBuilder(this._coinConfig));
55
+ }
56
+ /**
57
+ * Initialize the builder with the given transaction
58
+ *
59
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
60
+ * @param {TransactionBuilder} builder - the builder to be initialized
61
+ * @returns {TransactionBuilder} the builder initialized
62
+ */
63
+ static initializeBuilder(tx, builder) {
64
+ if (tx) {
65
+ builder.initBuilder(tx);
66
+ }
67
+ return builder;
68
+ }
69
+ }
70
+ exports.TransactionBuilderFactory = TransactionBuilderFactory;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBK0c7QUFDL0csdURBQW9EO0FBQ3BELCtFQUE0RTtBQUU1RSwrQ0FBNEM7QUFDNUMscUVBQWtFO0FBQ2xFLHlFQUFzRTtBQUN0RSxxRUFBa0U7QUFFbEUsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLElBQUk7WUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2YsS0FBSywwQkFBZSxDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxLQUFLLDBCQUFlLENBQUMsb0JBQW9CO29CQUN2QyxPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakQsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLDBCQUFlLENBQUMsaUJBQWlCO29CQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsS0FBSywwQkFBZSxDQUFDLGVBQWU7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QztvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQzthQUNoRTtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEIsQ0FBQyxFQUFnQjtRQUM3QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlEQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBZ0I7UUFDakMsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFnQjtRQUN4QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLCtDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxFQUFnQjtRQUMxQyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1EQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFnQjtRQUN4QyxPQUFPLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLCtDQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUNwRyxJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFoRUQsOERBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ0FjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0FjdGl2YXRlQnVpbGRlcic7XG5pbXBvcnQgeyBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcic7XG5pbXBvcnQgeyBTdGFraW5nV2l0aGRyYXdCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nV2l0aGRyYXdCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgIHN3aXRjaCAodHgudHlwZSkge1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3OlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRTdGFraW5nQWN0aXZhdGVCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ1dpdGhkcmF3QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4odHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -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;AAM5C,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;IAKlC,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,72 @@
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.TransferBuilder = void 0;
26
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
27
+ const transactionBuilder_1 = require("./transactionBuilder");
28
+ const NearAPI = __importStar(require("near-api-js"));
29
+ const assert_1 = __importDefault(require("assert"));
30
+ const bn_js_1 = __importDefault(require("bn.js"));
31
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
32
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
33
+ constructor(_coinConfig) {
34
+ super(_coinConfig);
35
+ }
36
+ /**
37
+ * Initialize the transaction builder fields using the decoded transaction data
38
+ *
39
+ * @param {Transaction} tx the transaction data
40
+ */
41
+ initBuilder(tx) {
42
+ super.initBuilder(tx);
43
+ this._amount = tx.nearTransaction.actions[0].transfer.deposit.toString();
44
+ }
45
+ /** @inheritdoc */
46
+ async buildImplementation() {
47
+ assert_1.default(this._amount, new sdk_core_1.BuildTransactionError('amount is required before building transfer'));
48
+ super.actions([NearAPI.transactions.transfer(new bn_js_1.default(this._amount))]);
49
+ const tx = await super.buildImplementation();
50
+ tx.setTransactionType(sdk_core_1.TransactionType.Send);
51
+ return tx;
52
+ }
53
+ /** @inheritdoc */
54
+ signImplementation(key) {
55
+ const tx = super.signImplementation(key);
56
+ tx.setTransactionType(sdk_core_1.TransactionType.Send);
57
+ return tx;
58
+ }
59
+ /**
60
+ * Sets the amount of this transaction.
61
+ *
62
+ * @param {string} value the amount to be sent in yocto (1 Near = 1e24 yoctos)
63
+ * @returns {TransactionBuilder} This transaction builder
64
+ */
65
+ amount(value) {
66
+ this.validateValue(new bignumber_js_1.default(value));
67
+ this._amount = value;
68
+ return this;
69
+ }
70
+ }
71
+ exports.TransferBuilder = TransferBuilder;
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG1EQUF1RjtBQUN2Riw2REFBMEQ7QUFFMUQscURBQXVDO0FBQ3ZDLG9EQUE0QjtBQUM1QixrREFBdUI7QUFDdkIsZ0VBQXFDO0FBRXJDLE1BQWEsZUFBZ0IsU0FBUSx1Q0FBa0I7SUFHckQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksZUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQTVDRCwwQ0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgKiBhcyBOZWFyQVBJIGZyb20gJ25lYXItYXBpLWpzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBCTiBmcm9tICdibi5qcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9hbW91bnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHRoaXMuX2Ftb3VudCA9IHR4Lm5lYXJUcmFuc2FjdGlvbi5hY3Rpb25zWzBdLnRyYW5zZmVyLmRlcG9zaXQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX2Ftb3VudCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZyB0cmFuc2ZlcicpKTtcbiAgICBzdXBlci5hY3Rpb25zKFtOZWFyQVBJLnRyYW5zYWN0aW9ucy50cmFuc2ZlcihuZXcgQk4odGhpcy5fYW1vdW50KSldKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgICB0eC5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICAgIHR4LnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFtb3VudCBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdGhlIGFtb3VudCB0byBiZSBzZW50IGluIHlvY3RvICgxIE5lYXIgPSAxZTI0IHlvY3RvcylcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWx1ZSkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { BaseUtils } from '@bitgo-beta/sdk-core';
2
+ export declare class Utils implements BaseUtils {
3
+ /** @inheritdoc */
4
+ isValidAddress(address: string): boolean;
5
+ /** @inheritdoc */
6
+ isValidBlockId(hash: string): boolean;
7
+ /** @inheritdoc */
8
+ isValidPrivateKey(key: string): boolean;
9
+ /** @inheritdoc */
10
+ isValidPublicKey(pubKey: string): boolean;
11
+ /**
12
+ * Check if the key have the correct format
13
+ *
14
+ * @param {string} key - string to be checked
15
+ * @return {boolean} true if the string have the correct format otherwise return false
16
+ */
17
+ isValidKey(key: string): boolean;
18
+ /**
19
+ * Check if the account have the correct format
20
+ *
21
+ * @param {string} accountId - string to be checked
22
+ * @return {boolean} if the string can have the correct format and match the expected length
23
+ * or can create a new keyPair
24
+ */
25
+ isValidAccountId(accountId: string): boolean;
26
+ /** @inheritdoc */
27
+ isValidSignature(signature: string): boolean;
28
+ /** @inheritdoc */
29
+ isValidTransactionId(txId: string): boolean;
30
+ base58Encode(value: Uint8Array): string;
31
+ /**
32
+ * Check if base58 decoded string is equal to length
33
+ *
34
+ * @param {string} value - string to be checked
35
+ * @param {number} length - expected decoded length
36
+ * @return {boolean} if the string can decoded as base58 and match the expected length
37
+ */
38
+ isBase58(value: string, length: number): boolean;
39
+ }
40
+ declare const utils: Utils;
41
+ export default utils;
42
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAI3D,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIzC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAS5C,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAIvC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAOjD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -0,0 +1,85 @@
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.Utils = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const keyPair_1 = require("./keyPair");
9
+ const bs58_1 = __importDefault(require("bs58"));
10
+ class Utils {
11
+ /** @inheritdoc */
12
+ isValidAddress(address) {
13
+ return this.isValidAccountId(address);
14
+ }
15
+ /** @inheritdoc */
16
+ isValidBlockId(hash) {
17
+ return sdk_core_1.isBase58(hash, 32);
18
+ }
19
+ /** @inheritdoc */
20
+ isValidPrivateKey(key) {
21
+ return this.isValidKey(key);
22
+ }
23
+ /** @inheritdoc */
24
+ isValidPublicKey(pubKey) {
25
+ return this.isValidAccountId(pubKey);
26
+ }
27
+ /**
28
+ * Check if the key have the correct format
29
+ *
30
+ * @param {string} key - string to be checked
31
+ * @return {boolean} true if the string have the correct format otherwise return false
32
+ */
33
+ isValidKey(key) {
34
+ try {
35
+ new keyPair_1.KeyPair({ prv: key });
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ /**
43
+ * Check if the account have the correct format
44
+ *
45
+ * @param {string} accountId - string to be checked
46
+ * @return {boolean} if the string can have the correct format and match the expected length
47
+ * or can create a new keyPair
48
+ */
49
+ isValidAccountId(accountId) {
50
+ return ((/^(([a-z\d]+[\-_])*[a-z\d]+\.)*([a-z\d]+[\-_])*[a-z\d]+$/.test(accountId) &&
51
+ accountId.length >= 2 &&
52
+ accountId.length <= 64) ||
53
+ sdk_core_1.isBase58(accountId, 32));
54
+ }
55
+ /** @inheritdoc */
56
+ isValidSignature(signature) {
57
+ return sdk_core_1.isBase58(signature, 64);
58
+ }
59
+ /** @inheritdoc */
60
+ isValidTransactionId(txId) {
61
+ return sdk_core_1.isBase58(txId, 32);
62
+ }
63
+ base58Encode(value) {
64
+ return bs58_1.default.encode(value);
65
+ }
66
+ /**
67
+ * Check if base58 decoded string is equal to length
68
+ *
69
+ * @param {string} value - string to be checked
70
+ * @param {number} length - expected decoded length
71
+ * @return {boolean} if the string can decoded as base58 and match the expected length
72
+ */
73
+ isBase58(value, length) {
74
+ try {
75
+ return !!value && bs58_1.default.decode(value).length === length;
76
+ }
77
+ catch (e) {
78
+ return false;
79
+ }
80
+ }
81
+ }
82
+ exports.Utils = Utils;
83
+ const utils = new Utils();
84
+ exports.default = utils;
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUEyRDtBQUMzRCx1Q0FBb0M7QUFDcEMsZ0RBQXdCO0FBRXhCLE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixPQUFPLG1CQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsR0FBVztRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUk7WUFDRixJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsT0FBTyxDQUNMLENBQUMseURBQXlELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4RSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDckIsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDekIsbUJBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE9BQU8sbUJBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sbUJBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFpQjtRQUM1QixPQUFPLGNBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUNwQyxJQUFJO1lBQ0YsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLGNBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQztTQUN4RDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7Q0FDRjtBQWhGRCxzQkFnRkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VVdGlscywgaXNCYXNlNTggfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEFjY291bnRJZChhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNCYXNlNTgoaGFzaCwgMzIpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkocHViS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQWNjb3VudElkKHB1YktleSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGtleSBoYXZlIHRoZSBjb3JyZWN0IGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gc3RyaW5nIHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgc3RyaW5nIGhhdmUgdGhlIGNvcnJlY3QgZm9ybWF0IG90aGVyd2lzZSByZXR1cm4gZmFsc2VcbiAgICovXG4gIGlzVmFsaWRLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgYWNjb3VudCBoYXZlIHRoZSBjb3JyZWN0IGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElkIC0gc3RyaW5nIHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gaWYgdGhlIHN0cmluZyBjYW4gaGF2ZSB0aGUgY29ycmVjdCBmb3JtYXQgYW5kIG1hdGNoIHRoZSBleHBlY3RlZCBsZW5ndGhcbiAgICogb3IgY2FuIGNyZWF0ZSBhIG5ldyBrZXlQYWlyXG4gICAqL1xuICBpc1ZhbGlkQWNjb3VudElkKGFjY291bnRJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICgvXigoW2EtelxcZF0rW1xcLV9dKSpbYS16XFxkXStcXC4pKihbYS16XFxkXStbXFwtX10pKlthLXpcXGRdKyQvLnRlc3QoYWNjb3VudElkKSAmJlxuICAgICAgICBhY2NvdW50SWQubGVuZ3RoID49IDIgJiZcbiAgICAgICAgYWNjb3VudElkLmxlbmd0aCA8PSA2NCkgfHxcbiAgICAgIGlzQmFzZTU4KGFjY291bnRJZCwgMzIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQmFzZTU4KHNpZ25hdHVyZSwgNjQpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0Jhc2U1OCh0eElkLCAzMik7XG4gIH1cblxuICBiYXNlNThFbmNvZGUodmFsdWU6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBiczU4LmVuY29kZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYmFzZTU4IGRlY29kZWQgc3RyaW5nIGlzIGVxdWFsIHRvIGxlbmd0aFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBzdHJpbmcgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIC0gZXhwZWN0ZWQgZGVjb2RlZCBsZW5ndGhcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gaWYgdGhlIHN0cmluZyBjYW4gZGVjb2RlZCBhcyBiYXNlNTggYW5kIG1hdGNoIHRoZSBleHBlY3RlZCBsZW5ndGhcbiAgICovXG4gIGlzQmFzZTU4KHZhbHVlOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAhIXZhbHVlICYmIGJzNTguZGVjb2RlKHZhbHVlKS5sZW5ndGggPT09IGxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
@@ -0,0 +1,12 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseKey } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class WalletInitializationBuilder extends TransactionBuilder {
6
+ constructor(_coinConfig: Readonly<CoinConfig>);
7
+ /** @inheritdoc */
8
+ protected buildImplementation(): Promise<Transaction>;
9
+ /** @inheritdoc */
10
+ protected signImplementation(key: BaseKey): Transaction;
11
+ }
12
+ //# sourceMappingURL=walletInitializationBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAuB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,2BAA4B,SAAQ,kBAAkB;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}