@bitgo/sdk-coin-icp 1.17.13 → 1.17.15

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 (48) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +6 -6
  3. package/LICENSE +0 -191
  4. package/dist/src/icp.d.ts +0 -92
  5. package/dist/src/icp.d.ts.map +0 -1
  6. package/dist/src/icp.js +0 -377
  7. package/dist/src/index.d.ts +0 -5
  8. package/dist/src/index.d.ts.map +0 -1
  9. package/dist/src/index.js +0 -21
  10. package/dist/src/lib/icpAgent.d.ts +0 -34
  11. package/dist/src/lib/icpAgent.d.ts.map +0 -1
  12. package/dist/src/lib/icpAgent.js +0 -87
  13. package/dist/src/lib/iface.d.ts +0 -187
  14. package/dist/src/lib/iface.d.ts.map +0 -1
  15. package/dist/src/lib/iface.js +0 -39
  16. package/dist/src/lib/index.d.ts +0 -9
  17. package/dist/src/lib/index.d.ts.map +0 -1
  18. package/dist/src/lib/index.js +0 -53
  19. package/dist/src/lib/keyPair.d.ts +0 -18
  20. package/dist/src/lib/keyPair.d.ts.map +0 -1
  21. package/dist/src/lib/keyPair.js +0 -60
  22. package/dist/src/lib/signedTransactionBuilder.d.ts +0 -9
  23. package/dist/src/lib/signedTransactionBuilder.d.ts.map +0 -1
  24. package/dist/src/lib/signedTransactionBuilder.js +0 -64
  25. package/dist/src/lib/transaction.d.ts +0 -54
  26. package/dist/src/lib/transaction.d.ts.map +0 -1
  27. package/dist/src/lib/transaction.js +0 -255
  28. package/dist/src/lib/transactionBuilder.d.ts +0 -78
  29. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  30. package/dist/src/lib/transactionBuilder.js +0 -164
  31. package/dist/src/lib/transactionBuilderFactory.d.ts +0 -25
  32. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  33. package/dist/src/lib/transactionBuilderFactory.js +0 -61
  34. package/dist/src/lib/transferBuilder.d.ts +0 -19
  35. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  36. package/dist/src/lib/transferBuilder.js +0 -109
  37. package/dist/src/lib/unsignedTransactionBuilder.d.ts +0 -11
  38. package/dist/src/lib/unsignedTransactionBuilder.d.ts.map +0 -1
  39. package/dist/src/lib/unsignedTransactionBuilder.js +0 -87
  40. package/dist/src/lib/utils.d.ts +0 -304
  41. package/dist/src/lib/utils.d.ts.map +0 -1
  42. package/dist/src/lib/utils.js +0 -725
  43. package/dist/src/register.d.ts +0 -3
  44. package/dist/src/register.d.ts.map +0 -1
  45. package/dist/src/register.js +0 -11
  46. package/dist/src/ticp.d.ts +0 -25
  47. package/dist/src/ticp.d.ts.map +0 -1
  48. package/dist/src/ticp.js +0 -37
@@ -1,255 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Transaction = void 0;
7
- const sdk_core_1 = require("@bitgo/sdk-core");
8
- const iface_1 = require("./iface");
9
- const utils_1 = __importDefault(require("./utils"));
10
- class Transaction extends sdk_core_1.BaseTransaction {
11
- constructor(_coinConfig) {
12
- super(_coinConfig);
13
- }
14
- get icpTransactionData() {
15
- return this._icpTransactionData;
16
- }
17
- set icpTransactionData(icpTransactionData) {
18
- this._icpTransactionData = icpTransactionData;
19
- }
20
- get icpTransaction() {
21
- return this._icpTransaction;
22
- }
23
- set icpTransaction(icpTransaction) {
24
- this._icpTransaction = icpTransaction;
25
- }
26
- get unsignedTransaction() {
27
- return this._payloadsData.unsigned_transaction;
28
- }
29
- get signaturePayload() {
30
- return this._signaturePayload;
31
- }
32
- set signedTransaction(signature) {
33
- this._signedTransaction = signature;
34
- }
35
- get signedTransaction() {
36
- return this._signedTransaction;
37
- }
38
- set payloadsData(payloadsData) {
39
- this._payloadsData = payloadsData;
40
- }
41
- get payloadsData() {
42
- return this._payloadsData;
43
- }
44
- set createdTimestamp(createdTimestamp) {
45
- this._createdTimestamp = createdTimestamp;
46
- }
47
- get createdTimestamp() {
48
- return this._createdTimestamp;
49
- }
50
- async fromRawTransaction(rawTransaction) {
51
- try {
52
- const serializedTxFormatBuffer = Buffer.from(rawTransaction, 'hex');
53
- const serializedTxFormatJsonString = serializedTxFormatBuffer.toString('utf-8');
54
- const jsonRawTransaction = JSON.parse(serializedTxFormatJsonString);
55
- const payloadsData = jsonRawTransaction.serializedTxHex;
56
- this._payloadsData = payloadsData;
57
- const parsedTx = await this.parseUnsignedTransaction(payloadsData.unsigned_transaction);
58
- const senderPublicKeyHex = jsonRawTransaction.publicKey;
59
- const transactionType = parsedTx.operations[0].type;
60
- switch (transactionType) {
61
- case iface_1.OperationType.TRANSACTION:
62
- this._icpTransactionData = {
63
- senderAddress: parsedTx.operations[0].account.address,
64
- receiverAddress: parsedTx.operations[1].account.address,
65
- amount: parsedTx.operations[1].amount.value,
66
- fee: parsedTx.operations[2].amount.value,
67
- senderPublicKeyHex: senderPublicKeyHex,
68
- transactionType: transactionType,
69
- expiryTime: Number(parsedTx.metadata.ingress_end ?? parsedTx.metadata.created_at_time + iface_1.MAX_INGRESS_TTL),
70
- memo: parsedTx.metadata.memo,
71
- };
72
- utils_1.default.validateRawTransaction(this._icpTransactionData);
73
- this._id = this.generateTransactionId();
74
- break;
75
- default:
76
- throw new Error('Invalid transaction type');
77
- }
78
- }
79
- catch (error) {
80
- throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: ${error.message}`);
81
- }
82
- }
83
- addSignature(signaturePayloads) {
84
- if (!signaturePayloads) {
85
- throw new Error('signatures not provided');
86
- }
87
- if (signaturePayloads.length !== this._payloadsData.payloads.length) {
88
- throw new Error('signatures length is not matching');
89
- }
90
- this._signaturePayload = signaturePayloads;
91
- if (this._id === undefined || this._id === null) {
92
- this._id = this.generateTransactionId();
93
- }
94
- }
95
- /** @inheritdoc */
96
- toJson() {
97
- if (!this._icpTransactionData) {
98
- throw new sdk_core_1.InvalidTransactionError('Empty transaction');
99
- }
100
- switch (this._icpTransactionData.transactionType) {
101
- case iface_1.OperationType.TRANSACTION:
102
- const txData = {
103
- id: this._id,
104
- sender: this._icpTransactionData.senderAddress,
105
- senderPublicKey: this._icpTransactionData.senderPublicKeyHex,
106
- recipient: this._icpTransactionData.receiverAddress,
107
- memo: this._icpTransactionData.memo,
108
- feeAmount: this._icpTransactionData.fee,
109
- expirationTime: this._icpTransactionData.expiryTime,
110
- type: sdk_core_1.TransactionType.Send,
111
- };
112
- if (this._icpTransactionData.memo !== undefined) {
113
- txData.memo = this._icpTransactionData.memo;
114
- }
115
- return txData;
116
- default:
117
- throw new Error(`Unsupported transaction type: ${this._icpTransactionData.transactionType}`);
118
- }
119
- }
120
- /** @inheritDoc */
121
- explainTransaction() {
122
- const result = this.toJson();
123
- const displayOrder = ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee'];
124
- const outputs = [];
125
- const explanationResult = {
126
- displayOrder,
127
- id: this.id,
128
- outputs,
129
- outputAmount: '0',
130
- fee: { fee: '0' },
131
- type: result.type,
132
- changeOutputs: [], // account based does not use change outputs
133
- changeAmount: '0', // account based does not make change
134
- };
135
- switch (explanationResult.type) {
136
- case sdk_core_1.TransactionType.Send:
137
- return this.explainTransferTransaction(explanationResult);
138
- default:
139
- throw new sdk_core_1.InvalidTransactionError('Transaction type not supported');
140
- }
141
- }
142
- /**
143
- * Explains a transfer transaction by providing details about the recipients and the total output amount.
144
- *
145
- * @param {IcpTransactionExplanation} explanationResult - The initial explanation result to be extended.
146
- * @returns {IcpTransactionExplanation} The extended explanation result including the output amount and recipients.
147
- */
148
- explainTransferTransaction(explanationResult) {
149
- explanationResult.fee = { fee: this.icpTransactionData.fee };
150
- const recipients = utils_1.default.getRecipients(this.icpTransactionData);
151
- const outputs = [recipients];
152
- const outputAmountBN = recipients.amount;
153
- const outputAmount = outputAmountBN.toString();
154
- return {
155
- ...explanationResult,
156
- outputAmount,
157
- outputs,
158
- };
159
- }
160
- /** @inheritdoc */
161
- toBroadcastFormat() {
162
- if (!this._signedTransaction) {
163
- throw new sdk_core_1.InvalidTransactionError('Empty transaction');
164
- }
165
- return this.serialize();
166
- }
167
- serialize() {
168
- return this._signedTransaction;
169
- }
170
- async parseUnsignedTransaction(rawTransaction) {
171
- const unsignedTransaction = utils_1.default.cborDecode(utils_1.default.blobFromHex(rawTransaction));
172
- const update = unsignedTransaction.updates[0];
173
- const httpCanisterUpdate = update[1];
174
- httpCanisterUpdate.ingress_expiry = BigInt(unsignedTransaction.ingress_expiries[0]);
175
- return await this.getParsedTransactionFromUpdate(httpCanisterUpdate, false);
176
- }
177
- async getParsedTransactionFromUpdate(httpCanisterUpdate, isSigned) {
178
- const senderPrincipal = utils_1.default.convertSenderBlobToPrincipal(httpCanisterUpdate.sender);
179
- const ACCOUNT_ID_PREFIX = utils_1.default.getAccountIdPrefix();
180
- const subAccount = new Uint8Array(32);
181
- const senderAccount = utils_1.default.getAccountIdFromPrincipalBytes(ACCOUNT_ID_PREFIX, Buffer.from(senderPrincipal.buffer), subAccount);
182
- const args = await utils_1.default.fromArgs(httpCanisterUpdate.arg);
183
- const senderOperation = {
184
- type: iface_1.OperationType.TRANSACTION,
185
- account: { address: senderAccount },
186
- amount: {
187
- value: `-${args.payment.receiverGets.e8s.toString()}`,
188
- currency: {
189
- symbol: this._coinConfig.family,
190
- decimals: this._coinConfig.decimalPlaces,
191
- },
192
- },
193
- };
194
- const receiverOperation = {
195
- type: iface_1.OperationType.TRANSACTION,
196
- account: { address: args.to.hash.toString('hex') },
197
- amount: {
198
- value: args.payment.receiverGets.e8s.toString(),
199
- currency: {
200
- symbol: this._coinConfig.family,
201
- decimals: this._coinConfig.decimalPlaces,
202
- },
203
- },
204
- };
205
- const feeOperation = {
206
- type: iface_1.OperationType.FEE,
207
- account: { address: senderAccount },
208
- amount: {
209
- value: `-${args.maxFee.e8s.toString()}`,
210
- currency: {
211
- symbol: this._coinConfig.family,
212
- decimals: this._coinConfig.decimalPlaces,
213
- },
214
- },
215
- };
216
- const accountIdentifierSigners = [];
217
- if (isSigned) {
218
- accountIdentifierSigners.push({ address: senderAccount });
219
- }
220
- const parsedTxn = {
221
- operations: [senderOperation, receiverOperation, feeOperation],
222
- metadata: {
223
- created_at_time: args.createdAtTime.timestampNanos,
224
- memo: Number(args.memo.memo),
225
- ingress_end: Number(httpCanisterUpdate.ingress_expiry) + iface_1.PERMITTED_DRIFT,
226
- },
227
- account_identifier_signers: accountIdentifierSigners,
228
- };
229
- this.createdTimestamp = args.createdAtTime.timestampNanos;
230
- return parsedTxn;
231
- }
232
- async parseSignedTransaction(rawTransaction) {
233
- const signedTransaction = utils_1.default.cborDecode(utils_1.default.blobFromHex(rawTransaction));
234
- const httpCanisterUpdate = signedTransaction.content;
235
- httpCanisterUpdate.ingress_expiry = BigInt(signedTransaction.content.ingress_expiry);
236
- return await this.getParsedTransactionFromUpdate(httpCanisterUpdate, true);
237
- }
238
- /** @inheritdoc */
239
- canSign(key) {
240
- return true;
241
- }
242
- /**
243
- * Generates a unique transaction ID for the current transaction.
244
- * The transaction ID is derived using the unsigned transaction data,
245
- * the sender's address, and the receiver's address.
246
- *
247
- * @returns {string} The generated transaction ID.
248
- */
249
- generateTransactionId() {
250
- const id = utils_1.default.getTransactionId(this.unsignedTransaction, this.icpTransactionData.senderAddress, this.icpTransactionData.receiverAddress);
251
- return id;
252
- }
253
- }
254
- exports.Transaction = Transaction;
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQU95QjtBQUV6QixtQ0FpQmlCO0FBQ2pCLG9EQUE0QjtBQUU1QixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVE5QyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsa0JBQXNDO1FBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsY0FBOEI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksaUJBQWlCLENBQUMsU0FBaUI7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQTBCO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FB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SyxDQUFDLFVBQVUsQ0FBQyxlQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxrQkFBa0IsR0FBSSxpQkFBb0MsQ0FBQyxPQUE2QixDQUFDO1FBQy9GLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUUsaUJBQW9DLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pHLE9BQU8sTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxxQkFBcUI7UUFDM0IsTUFBTSxFQUFFLEdBQUcsZUFBSyxDQUFDLGdCQUFnQixDQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQ3hDLENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRjtBQWpTRCxrQ0FpU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBUcmFuc2FjdGlvblR5cGUgYXMgQml0R29UcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgSWNwVHJhbnNhY3Rpb24sXG4gIEljcFRyYW5zYWN0aW9uRGF0YSxcbiAgUGF5bG9hZHNEYXRhLFxuICBPcGVyYXRpb25UeXBlLFxuICBTaWduYXR1cmVzLFxuICBUeERhdGEsXG4gIEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIENib3JVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBJY3BPcGVyYXRpb24sXG4gIFVwZGF0ZUVudmVsb3BlLFxuICBJY3BBY2NvdW50LFxuICBNQVhfSU5HUkVTU19UVEwsXG4gIFBFUk1JVFRFRF9EUklGVCxcbiAgUmF3VHJhbnNhY3Rpb24sXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcm90ZWN0ZWQgX2ljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhO1xuICBwcm90ZWN0ZWQgX2ljcFRyYW5zYWN0aW9uOiBJY3BUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9wYXlsb2Fkc0RhdGE6IFBheWxvYWRzRGF0YTtcbiAgcHJvdGVjdGVkIF9zaWduZWRUcmFuc2FjdGlvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZVBheWxvYWQ6IFNpZ25hdHVyZXNbXTtcbiAgcHJvdGVjdGVkIF9jcmVhdGVkVGltZXN0YW1wOiBudW1iZXIgfCBiaWdpbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IGljcFRyYW5zYWN0aW9uRGF0YSgpOiBJY3BUcmFuc2FjdGlvbkRhdGEge1xuICAgIHJldHVybiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGE7XG4gIH1cblxuICBzZXQgaWNwVHJhbnNhY3Rpb25EYXRhKGljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhID0gaWNwVHJhbnNhY3Rpb25EYXRhO1xuICB9XG5cbiAgZ2V0IGljcFRyYW5zYWN0aW9uKCk6IEljcFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5faWNwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgaWNwVHJhbnNhY3Rpb24oaWNwVHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5faWNwVHJhbnNhY3Rpb24gPSBpY3BUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldCB1bnNpZ25lZFRyYW5zYWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BheWxvYWRzRGF0YS51bnNpZ25lZF90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldCBzaWduYXR1cmVQYXlsb2FkKCk6IFNpZ25hdHVyZXNbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZVBheWxvYWQ7XG4gIH1cblxuICBzZXQgc2lnbmVkVHJhbnNhY3Rpb24oc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldCBzaWduZWRUcmFuc2FjdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBwYXlsb2Fkc0RhdGEocGF5bG9hZHNEYXRhOiBQYXlsb2Fkc0RhdGEpIHtcbiAgICB0aGlzLl9wYXlsb2Fkc0RhdGEgPSBwYXlsb2Fkc0RhdGE7XG4gIH1cblxuICBnZXQgcGF5bG9hZHNEYXRhKCk6IFBheWxvYWRzRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3BheWxvYWRzRGF0YTtcbiAgfVxuXG4gIHNldCBjcmVhdGVkVGltZXN0YW1wKGNyZWF0ZWRUaW1lc3RhbXA6IG51bWJlcikge1xuICAgIHRoaXMuX2NyZWF0ZWRUaW1lc3RhbXAgPSBjcmVhdGVkVGltZXN0YW1wO1xuICB9XG5cbiAgZ2V0IGNyZWF0ZWRUaW1lc3RhbXAoKTogbnVtYmVyIHwgYmlnaW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlZFRpbWVzdGFtcDtcbiAgfVxuXG4gIGFzeW5jIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEZvcm1hdEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHJhd1RyYW5zYWN0aW9uLCAnaGV4Jyk7XG4gICAgICBjb25zdCBzZXJpYWxpemVkVHhGb3JtYXRKc29uU3RyaW5nID0gc2VyaWFsaXplZFR4Rm9ybWF0QnVmZmVyLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3QganNvblJhd1RyYW5zYWN0aW9uOiBSYXdUcmFuc2FjdGlvbiA9IEpTT04ucGFyc2Uoc2VyaWFsaXplZFR4Rm9ybWF0SnNvblN0cmluZyk7XG4gICAgICBjb25zdCBwYXlsb2Fkc0RhdGEgPSBqc29uUmF3VHJhbnNhY3Rpb24uc2VyaWFsaXplZFR4SGV4O1xuICAgICAgdGhpcy5fcGF5bG9hZHNEYXRhID0gcGF5bG9hZHNEYXRhO1xuICAgICAgY29uc3QgcGFyc2VkVHggPSBhd2FpdCB0aGlzLnBhcnNlVW5zaWduZWRUcmFuc2FjdGlvbihwYXlsb2Fkc0RhdGEudW5zaWduZWRfdHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3Qgc2VuZGVyUHVibGljS2V5SGV4ID0ganNvblJhd1RyYW5zYWN0aW9uLnB1YmxpY0tleTtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uVHlwZSA9IHBhcnNlZFR4Lm9wZXJhdGlvbnNbMF0udHlwZTtcbiAgICAgIHN3aXRjaCAodHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICAgIGNhc2UgT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTjpcbiAgICAgICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICAgICAgICBzZW5kZXJBZGRyZXNzOiBwYXJzZWRUeC5vcGVyYXRpb25zWzBdLmFjY291bnQuYWRkcmVzcyxcbiAgICAgICAgICAgIHJlY2VpdmVyQWRkcmVzczogcGFyc2VkVHgub3BlcmF0aW9uc1sxXS5hY2NvdW50LmFkZHJlc3MsXG4gICAgICAgICAgICBhbW91bnQ6IHBhcnNlZFR4Lm9wZXJhdGlvbnNbMV0uYW1vdW50LnZhbHVlLFxuICAgICAgICAgICAgZmVlOiBwYXJzZWRUeC5vcGVyYXRpb25zWzJdLmFtb3VudC52YWx1ZSxcbiAgICAgICAgICAgIHNlbmRlclB1YmxpY0tleUhleDogc2VuZGVyUHVibGljS2V5SGV4LFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0cmFuc2FjdGlvblR5cGUsXG4gICAgICAgICAgICBleHBpcnlUaW1lOiBOdW1iZXIocGFyc2VkVHgubWV0YWRhdGEuaW5ncmVzc19lbmQgPz8gcGFyc2VkVHgubWV0YWRhdGEuY3JlYXRlZF9hdF90aW1lICsgTUFYX0lOR1JFU1NfVFRMKSxcbiAgICAgICAgICAgIG1lbW86IHBhcnNlZFR4Lm1ldGFkYXRhLm1lbW8sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhKTtcbiAgICAgICAgICB0aGlzLl9pZCA9IHRoaXMuZ2VuZXJhdGVUcmFuc2FjdGlvbklkKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZVBheWxvYWRzOiBTaWduYXR1cmVzW10pOiB2b2lkIHtcbiAgICBpZiAoIXNpZ25hdHVyZVBheWxvYWRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25hdHVyZXMgbm90IHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIGlmIChzaWduYXR1cmVQYXlsb2Fkcy5sZW5ndGggIT09IHRoaXMuX3BheWxvYWRzRGF0YS5wYXlsb2Fkcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2lnbmF0dXJlcyBsZW5ndGggaXMgbm90IG1hdGNoaW5nJyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25hdHVyZVBheWxvYWQgPSBzaWduYXR1cmVQYXlsb2FkcztcbiAgICBpZiAodGhpcy5faWQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9pZCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5faWQgPSB0aGlzLmdlbmVyYXRlVHJhbnNhY3Rpb25JZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTjpcbiAgICAgICAgY29uc3QgdHhEYXRhOiBUeERhdGEgPSB7XG4gICAgICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgICAgIHNlbmRlcjogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnNlbmRlckFkZHJlc3MsXG4gICAgICAgICAgc2VuZGVyUHVibGljS2V5OiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEuc2VuZGVyUHVibGljS2V5SGV4LFxuICAgICAgICAgIHJlY2lwaWVudDogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnJlY2VpdmVyQWRkcmVzcyxcbiAgICAgICAgICBtZW1vOiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEubWVtbyxcbiAgICAgICAgICBmZWVBbW91bnQ6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5mZWUsXG4gICAgICAgICAgZXhwaXJhdGlvblRpbWU6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5leHBpcnlUaW1lLFxuICAgICAgICAgIHR5cGU6IEJpdEdvVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEubWVtbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdHhEYXRhLm1lbW8gPSB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEubWVtbztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHhEYXRhO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlOiAke3RoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvblR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ107XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuXG4gICAgY29uc3QgZXhwbGFuYXRpb25SZXN1bHQgPSB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICcwJyB9LFxuICAgICAgdHlwZTogcmVzdWx0LnR5cGUsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSwgLy8gYWNjb3VudCBiYXNlZCBkb2VzIG5vdCB1c2UgY2hhbmdlIG91dHB1dHNcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLCAvLyBhY2NvdW50IGJhc2VkIGRvZXMgbm90IG1ha2UgY2hhbmdlXG4gICAgfTtcblxuICAgIHN3aXRjaCAoZXhwbGFuYXRpb25SZXN1bHQudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbnMgYSB0cmFuc2ZlciB0cmFuc2FjdGlvbiBieSBwcm92aWRpbmcgZGV0YWlscyBhYm91dCB0aGUgcmVjaXBpZW50cyBhbmQgdGhlIHRvdGFsIG91dHB1dCBhbW91bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7SWNwVHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFuYXRpb25SZXN1bHQgLSBUaGUgaW5pdGlhbCBleHBsYW5hdGlvbiByZXN1bHQgdG8gYmUgZXh0ZW5kZWQuXG4gICAqIEByZXR1cm5zIHtJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBUaGUgZXh0ZW5kZWQgZXhwbGFuYXRpb24gcmVzdWx0IGluY2x1ZGluZyB0aGUgb3V0cHV0IGFtb3VudCBhbmQgcmVjaXBpZW50cy5cbiAgICovXG4gIGV4cGxhaW5UcmFuc2ZlclRyYW5zYWN0aW9uKGV4cGxhbmF0aW9uUmVzdWx0OiBJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogSWNwVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZmVlID0geyBmZWU6IHRoaXMuaWNwVHJhbnNhY3Rpb25EYXRhLmZlZSB9O1xuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB1dGlscy5nZXRSZWNpcGllbnRzKHRoaXMuaWNwVHJhbnNhY3Rpb25EYXRhKTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW3JlY2lwaWVudHNdO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudEJOID0gcmVjaXBpZW50cy5hbW91bnQ7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0QW1vdW50Qk4udG9TdHJpbmcoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb247XG4gIH1cblxuICBhc3luYyBwYXJzZVVuc2lnbmVkVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB1bnNpZ25lZFRyYW5zYWN0aW9uID0gdXRpbHMuY2JvckRlY29kZSh1dGlscy5ibG9iRnJvbUhleChyYXdUcmFuc2FjdGlvbikpIGFzIENib3JVbnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHVuc2lnbmVkVHJhbnNhY3Rpb24udXBkYXRlc1swXTtcbiAgICBjb25zdCBodHRwQ2FuaXN0ZXJVcGRhdGUgPSAodXBkYXRlIGFzIHVua25vd24gYXMgW3N0cmluZywgSHR0cENhbmlzdGVyVXBkYXRlXSlbMV07XG4gICAgaHR0cENhbmlzdGVyVXBkYXRlLmluZ3Jlc3NfZXhwaXJ5ID0gQmlnSW50KHVuc2lnbmVkVHJhbnNhY3Rpb24uaW5ncmVzc19leHBpcmllc1swXSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0UGFyc2VkVHJhbnNhY3Rpb25Gcm9tVXBkYXRlKGh0dHBDYW5pc3RlclVwZGF0ZSwgZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRQYXJzZWRUcmFuc2FjdGlvbkZyb21VcGRhdGUoXG4gICAgaHR0cENhbmlzdGVyVXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gICAgaXNTaWduZWQ6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHNlbmRlclByaW5jaXBhbCA9IHV0aWxzLmNvbnZlcnRTZW5kZXJCbG9iVG9QcmluY2lwYWwoaHR0cENhbmlzdGVyVXBkYXRlLnNlbmRlcik7XG4gICAgY29uc3QgQUNDT1VOVF9JRF9QUkVGSVggPSB1dGlscy5nZXRBY2NvdW50SWRQcmVmaXgoKTtcbiAgICBjb25zdCBzdWJBY2NvdW50ID0gbmV3IFVpbnQ4QXJyYXkoMzIpO1xuICAgIGNvbnN0IHNlbmRlckFjY291bnQgPSB1dGlscy5nZXRBY2NvdW50SWRGcm9tUHJpbmNpcGFsQnl0ZXMoXG4gICAgICBBQ0NPVU5UX0lEX1BSRUZJWCxcbiAgICAgIEJ1ZmZlci5mcm9tKHNlbmRlclByaW5jaXBhbC5idWZmZXIpLFxuICAgICAgc3ViQWNjb3VudFxuICAgICk7XG4gICAgY29uc3QgYXJncyA9IGF3YWl0IHV0aWxzLmZyb21BcmdzKGh0dHBDYW5pc3RlclVwZGF0ZS5hcmcpO1xuICAgIGNvbnN0IHNlbmRlck9wZXJhdGlvbjogSWNwT3BlcmF0aW9uID0ge1xuICAgICAgdHlwZTogT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTixcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogc2VuZGVyQWNjb3VudCB9LFxuICAgICAgYW1vdW50OiB7XG4gICAgICAgIHZhbHVlOiBgLSR7YXJncy5wYXltZW50LnJlY2VpdmVyR2V0cy5lOHMudG9TdHJpbmcoKX1gLFxuICAgICAgICBjdXJyZW5jeToge1xuICAgICAgICAgIHN5bWJvbDogdGhpcy5fY29pbkNvbmZpZy5mYW1pbHksXG4gICAgICAgICAgZGVjaW1hbHM6IHRoaXMuX2NvaW5Db25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCByZWNlaXZlck9wZXJhdGlvbjogSWNwT3BlcmF0aW9uID0ge1xuICAgICAgdHlwZTogT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTixcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogYXJncy50by5oYXNoLnRvU3RyaW5nKCdoZXgnKSB9LFxuICAgICAgYW1vdW50OiB7XG4gICAgICAgIHZhbHVlOiBhcmdzLnBheW1lbnQucmVjZWl2ZXJHZXRzLmU4cy50b1N0cmluZygpLFxuICAgICAgICBjdXJyZW5jeToge1xuICAgICAgICAgIHN5bWJvbDogdGhpcy5fY29pbkNvbmZpZy5mYW1pbHksXG4gICAgICAgICAgZGVjaW1hbHM6IHRoaXMuX2NvaW5Db25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGZlZU9wZXJhdGlvbjogSWNwT3BlcmF0aW9uID0ge1xuICAgICAgdHlwZTogT3BlcmF0aW9uVHlwZS5GRUUsXG4gICAgICBhY2NvdW50OiB7IGFkZHJlc3M6IHNlbmRlckFjY291bnQgfSxcbiAgICAgIGFtb3VudDoge1xuICAgICAgICB2YWx1ZTogYC0ke2FyZ3MubWF4RmVlLmU4cy50b1N0cmluZygpfWAsXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGFjY291bnRJZGVudGlmaWVyU2lnbmVyczogSWNwQWNjb3VudFtdID0gW107XG4gICAgaWYgKGlzU2lnbmVkKSB7XG4gICAgICBhY2NvdW50SWRlbnRpZmllclNpZ25lcnMucHVzaCh7IGFkZHJlc3M6IHNlbmRlckFjY291bnQgfSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZFR4bjogUGFyc2VkVHJhbnNhY3Rpb24gPSB7XG4gICAgICBvcGVyYXRpb25zOiBbc2VuZGVyT3BlcmF0aW9uLCByZWNlaXZlck9wZXJhdGlvbiwgZmVlT3BlcmF0aW9uXSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRfYXRfdGltZTogYXJncy5jcmVhdGVkQXRUaW1lLnRpbWVzdGFtcE5hbm9zLFxuICAgICAgICBtZW1vOiBOdW1iZXIoYXJncy5tZW1vLm1lbW8pLFxuICAgICAgICBpbmdyZXNzX2VuZDogTnVtYmVyKGh0dHBDYW5pc3RlclVwZGF0ZS5pbmdyZXNzX2V4cGlyeSkgKyBQRVJNSVRURURfRFJJRlQsXG4gICAgICB9LFxuICAgICAgYWNjb3VudF9pZGVudGlmaWVyX3NpZ25lcnM6IGFjY291bnRJZGVudGlmaWVyU2lnbmVycyxcbiAgICB9O1xuICAgIHRoaXMuY3JlYXRlZFRpbWVzdGFtcCA9IGFyZ3MuY3JlYXRlZEF0VGltZS50aW1lc3RhbXBOYW5vcztcbiAgICByZXR1cm4gcGFyc2VkVHhuO1xuICB9XG5cbiAgYXN5bmMgcGFyc2VTaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gdXRpbHMuY2JvckRlY29kZSh1dGlscy5ibG9iRnJvbUhleChyYXdUcmFuc2FjdGlvbikpO1xuICAgIGNvbnN0IGh0dHBDYW5pc3RlclVwZGF0ZSA9IChzaWduZWRUcmFuc2FjdGlvbiBhcyBVcGRhdGVFbnZlbG9wZSkuY29udGVudCBhcyBIdHRwQ2FuaXN0ZXJVcGRhdGU7XG4gICAgaHR0cENhbmlzdGVyVXBkYXRlLmluZ3Jlc3NfZXhwaXJ5ID0gQmlnSW50KChzaWduZWRUcmFuc2FjdGlvbiBhcyBVcGRhdGVFbnZlbG9wZSkuY29udGVudC5pbmdyZXNzX2V4cGlyeSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0UGFyc2VkVHJhbnNhY3Rpb25Gcm9tVXBkYXRlKGh0dHBDYW5pc3RlclVwZGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgdHJhbnNhY3Rpb24gSUQgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gSUQgaXMgZGVyaXZlZCB1c2luZyB0aGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gZGF0YSxcbiAgICogdGhlIHNlbmRlcidzIGFkZHJlc3MsIGFuZCB0aGUgcmVjZWl2ZXIncyBhZGRyZXNzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZ2VuZXJhdGVkIHRyYW5zYWN0aW9uIElELlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVRyYW5zYWN0aW9uSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBpZCA9IHV0aWxzLmdldFRyYW5zYWN0aW9uSWQoXG4gICAgICB0aGlzLnVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICB0aGlzLmljcFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJBZGRyZXNzLFxuICAgICAgdGhpcy5pY3BUcmFuc2FjdGlvbkRhdGEucmVjZWl2ZXJBZGRyZXNzXG4gICAgKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,78 +0,0 @@
1
- import { BaseAddress, BaseKey, BaseTransactionBuilder } from '@bitgo/sdk-core';
2
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
- import BigNumber from 'bignumber.js';
4
- import { IcpTransaction, IcpTransactionData, PayloadsData, Signatures } from './iface';
5
- import { Transaction } from './transaction';
6
- export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
7
- protected _transaction: Transaction;
8
- protected _sender: string;
9
- protected _publicKey: string;
10
- protected _memo: number | BigInt;
11
- protected _ingressEnd: number | BigInt;
12
- protected _receiverId: string;
13
- protected _amount: string;
14
- constructor(_coinConfig: Readonly<CoinConfig>);
15
- signaturePayload(): Signatures[];
16
- payloadData(): PayloadsData;
17
- icpTransaction(): IcpTransaction;
18
- /**
19
- * Sets the public key and the address of the sender of this transaction.
20
- *
21
- * @param {string} address the account that is sending this transaction
22
- * @param {string} pubKey the public key that is sending this transaction
23
- * @returns {TransactionBuilder} This transaction builder
24
- */
25
- sender(address: string, pubKey: string): this;
26
- /**
27
- * Set the memo
28
- *
29
- * @param {number} memo - number that to be used as memo
30
- * @returns {TransactionBuilder} This transaction builder
31
- */
32
- memo(memo: number): this;
33
- /**
34
- * Set the ingressEnd timestamp
35
- * @param {number} ingressEnd - timestamp in nanoseconds
36
- * @returns {TransactionBuilder} This transaction builder
37
- */
38
- ingressEnd(ingressEnd: number | BigInt): this;
39
- /**
40
- * Sets the account Id of the receiver of this transaction.
41
- *
42
- * @param {string} accountId the account id of the account that is receiving this transaction
43
- * @returns {TransactionBuilder} This transaction builder
44
- */
45
- receiverId(accountId: string): this;
46
- /** @inheritdoc */
47
- get transaction(): Transaction;
48
- /** @inheritdoc */
49
- set transaction(transaction: Transaction);
50
- get transactionType(): string;
51
- /** @inheritdoc */
52
- fromImplementation(rawTransaction: string): Transaction;
53
- /** @inheritdoc */
54
- validateTransaction(transaction: Transaction): void;
55
- /**
56
- * Sets the amount of this transaction.
57
- *
58
- * @param {string} value the amount to be sent in e8s (1 ICP = 1e8 e8s)
59
- * @returns {TransactionBuilder} This transaction builder
60
- */
61
- amount(value: string): this;
62
- validateValue(value: BigNumber): void;
63
- /**
64
- * Initialize the transaction builder fields using the decoded transaction data
65
- *
66
- * @param {Transaction} tx the transaction data
67
- */
68
- initBuilder(tx: Transaction): void;
69
- validateAddress(address: BaseAddress): void;
70
- validateRawTransaction(rawTransaction: IcpTransactionData): void;
71
- /** @inheritdoc */
72
- validateKey(key: BaseKey): void;
73
- /**
74
- * Combines the unsigned transaction and the signature payload to create a signed transaction.
75
- */
76
- combine(): void;
77
- }
78
- //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAuC,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAgB,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKtC,gBAAgB,IAAI,UAAU,EAAE;IAIhC,WAAW,IAAI,YAAY;IAI3B,cAAc,IAAI,cAAc;IAIvC;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ/B;;;;OAIG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpD;;;;;OAKG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ1C,kBAAkB;IAClB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,kBAAkB;IAClB,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,EAEvC;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,kBAAkB;IAClB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAQvD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAOnD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,sBAAsB,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI;IAIhE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS/B;;OAEG;IACI,OAAO,IAAI,IAAI;CAOvB"}
@@ -1,164 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TransactionBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo/sdk-core");
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const iface_1 = require("./iface");
10
- const signedTransactionBuilder_1 = require("./signedTransactionBuilder");
11
- const transaction_1 = require("./transaction");
12
- const utils_1 = __importDefault(require("./utils"));
13
- class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
14
- constructor(_coinConfig) {
15
- super(_coinConfig);
16
- this._transaction = new transaction_1.Transaction(_coinConfig);
17
- }
18
- signaturePayload() {
19
- return this._transaction.signaturePayload;
20
- }
21
- payloadData() {
22
- return this._transaction.payloadsData;
23
- }
24
- icpTransaction() {
25
- return this._transaction.icpTransaction;
26
- }
27
- /**
28
- * Sets the public key and the address of the sender of this transaction.
29
- *
30
- * @param {string} address the account that is sending this transaction
31
- * @param {string} pubKey the public key that is sending this transaction
32
- * @returns {TransactionBuilder} This transaction builder
33
- */
34
- sender(address, pubKey) {
35
- if (!address || !utils_1.default.isValidAddress(address.toString())) {
36
- throw new sdk_core_1.BuildTransactionError('Invalid or missing address, got: ' + address);
37
- }
38
- if (!pubKey || !utils_1.default.isValidPublicKey(pubKey)) {
39
- throw new sdk_core_1.BuildTransactionError('Invalid or missing pubKey, got: ' + pubKey);
40
- }
41
- this._sender = address;
42
- this._publicKey = pubKey;
43
- return this;
44
- }
45
- /**
46
- * Set the memo
47
- *
48
- * @param {number} memo - number that to be used as memo
49
- * @returns {TransactionBuilder} This transaction builder
50
- */
51
- memo(memo) {
52
- if (typeof memo !== 'number' || Number.isNaN(memo) || memo < 0) {
53
- throw new sdk_core_1.BuildTransactionError(`Invalid memo: ${memo}`);
54
- }
55
- this._memo = memo;
56
- return this;
57
- }
58
- /**
59
- * Set the ingressEnd timestamp
60
- * @param {number} ingressEnd - timestamp in nanoseconds
61
- * @returns {TransactionBuilder} This transaction builder
62
- */
63
- ingressEnd(ingressEnd) {
64
- if (BigInt(ingressEnd.toString()) < 0n) {
65
- throw new sdk_core_1.BuildTransactionError(`Invalid timestamp: ${ingressEnd}`);
66
- }
67
- this._ingressEnd = ingressEnd;
68
- return this;
69
- }
70
- /**
71
- * Sets the account Id of the receiver of this transaction.
72
- *
73
- * @param {string} accountId the account id of the account that is receiving this transaction
74
- * @returns {TransactionBuilder} This transaction builder
75
- */
76
- receiverId(accountId) {
77
- if (!accountId || !utils_1.default.isValidAddress(accountId)) {
78
- throw new sdk_core_1.BuildTransactionError('Invalid or missing accountId for receiver, got: ' + accountId);
79
- }
80
- this._receiverId = accountId;
81
- return this;
82
- }
83
- /** @inheritdoc */
84
- get transaction() {
85
- return this._transaction;
86
- }
87
- /** @inheritdoc */
88
- set transaction(transaction) {
89
- this._transaction = transaction;
90
- }
91
- get transactionType() {
92
- return this._transaction.icpTransactionData.transactionType;
93
- }
94
- /** @inheritdoc */
95
- fromImplementation(rawTransaction) {
96
- this.transaction.fromRawTransaction(rawTransaction);
97
- const icpTransactionData = this.transaction.icpTransactionData;
98
- this.validateRawTransaction(icpTransactionData);
99
- this.buildImplementation();
100
- return this.transaction;
101
- }
102
- /** @inheritdoc */
103
- validateTransaction(transaction) {
104
- if (!transaction || !transaction.icpTransactionData) {
105
- return;
106
- }
107
- utils_1.default.validateRawTransaction(transaction.icpTransactionData);
108
- }
109
- /**
110
- * Sets the amount of this transaction.
111
- *
112
- * @param {string} value the amount to be sent in e8s (1 ICP = 1e8 e8s)
113
- * @returns {TransactionBuilder} This transaction builder
114
- */
115
- amount(value) {
116
- utils_1.default.validateValue(new bignumber_js_1.default(value));
117
- this._amount = value;
118
- return this;
119
- }
120
- validateValue(value) {
121
- utils_1.default.validateValue(new bignumber_js_1.default(value));
122
- }
123
- /**
124
- * Initialize the transaction builder fields using the decoded transaction data
125
- *
126
- * @param {Transaction} tx the transaction data
127
- */
128
- initBuilder(tx) {
129
- this._transaction = tx;
130
- const icpTransactionData = tx.icpTransactionData;
131
- this._sender = icpTransactionData.senderAddress;
132
- this._receiverId = icpTransactionData.receiverAddress;
133
- this._publicKey = icpTransactionData.senderPublicKeyHex;
134
- this._amount = icpTransactionData.amount;
135
- this._memo = icpTransactionData.memo ?? iface_1.DEFAULT_MEMO;
136
- this._ingressEnd = Number(icpTransactionData.expiryTime);
137
- }
138
- validateAddress(address) {
139
- if (!utils_1.default.isValidAddress(address.address)) {
140
- throw new sdk_core_1.BuildTransactionError('Invalid address');
141
- }
142
- }
143
- validateRawTransaction(rawTransaction) {
144
- utils_1.default.validateRawTransaction(rawTransaction);
145
- }
146
- /** @inheritdoc */
147
- validateKey(key) {
148
- if (!key || !key.key) {
149
- throw new sdk_core_1.SigningError('Key is required');
150
- }
151
- if (!utils_1.default.isValidPrivateKey(key.key)) {
152
- throw new sdk_core_1.SigningError('Invalid private key');
153
- }
154
- }
155
- /**
156
- * Combines the unsigned transaction and the signature payload to create a signed transaction.
157
- */
158
- combine() {
159
- const signedTransactionBuilder = new signedTransactionBuilder_1.SignedTransactionBuilder(this._transaction.unsignedTransaction, this._transaction.signaturePayload);
160
- this._transaction.signedTransaction = signedTransactionBuilder.getSignTransaction();
161
- }
162
- }
163
- exports.TransactionBuilder = TransactionBuilder;
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQW9IO0FBRXBILGdFQUFxQztBQUNyQyxtQ0FBcUc7QUFDckcseUVBQXNFO0FBQ3RFLCtDQUE0QztBQUM1QyxvREFBNEI7QUFFNUIsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBU3JFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQzVDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQzNDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1DQUFtQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJ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SCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osTUFBTSx3QkFBd0IsR0FBRyxJQUFJLG1EQUF3QixDQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUNuQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3RGLENBQUM7Q0FDRjtBQW5MRCxnREFtTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQWRkcmVzcywgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBTaWduaW5nRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IERFRkFVTFRfTUVNTywgSWNwVHJhbnNhY3Rpb24sIEljcFRyYW5zYWN0aW9uRGF0YSwgUGF5bG9hZHNEYXRhLCBTaWduYXR1cmVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBTaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3NpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3B1YmxpY0tleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX21lbW86IG51bWJlciB8IEJpZ0ludDtcbiAgcHJvdGVjdGVkIF9pbmdyZXNzRW5kOiBudW1iZXIgfCBCaWdJbnQ7XG4gIHByb3RlY3RlZCBfcmVjZWl2ZXJJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2lnbmF0dXJlUGF5bG9hZCgpOiBTaWduYXR1cmVzW10ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbi5zaWduYXR1cmVQYXlsb2FkO1xuICB9XG5cbiAgcHVibGljIHBheWxvYWREYXRhKCk6IFBheWxvYWRzRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLnBheWxvYWRzRGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBpY3BUcmFuc2FjdGlvbigpOiBJY3BUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSB0aGUgcHVibGljIGtleSB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBzZW5kZXIoYWRkcmVzczogc3RyaW5nLCBwdWJLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWRkcmVzcyB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy50b1N0cmluZygpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAoIXB1YktleSB8fCAhdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWJLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcHViS2V5LCBnb3Q6ICcgKyBwdWJLZXkpO1xuICAgIH1cbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1lbW9cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1lbW8gLSBudW1iZXIgdGhhdCB0byBiZSB1c2VkIGFzIG1lbW9cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgbWVtbyhtZW1vOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAodHlwZW9mIG1lbW8gIT09ICdudW1iZXInIHx8IE51bWJlci5pc05hTihtZW1vKSB8fCBtZW1vIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBtZW1vOiAke21lbW99YCk7XG4gICAgfVxuICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5ncmVzc0VuZCB0aW1lc3RhbXBcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZ3Jlc3NFbmQgLSB0aW1lc3RhbXAgaW4gbmFub3NlY29uZHNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgaW5ncmVzc0VuZChpbmdyZXNzRW5kOiBudW1iZXIgfCBCaWdJbnQpOiB0aGlzIHtcbiAgICBpZiAoQmlnSW50KGluZ3Jlc3NFbmQudG9TdHJpbmcoKSkgPCAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0aW1lc3RhbXA6ICR7aW5ncmVzc0VuZH1gKTtcbiAgICB9XG4gICAgdGhpcy5faW5ncmVzc0VuZCA9IGluZ3Jlc3NFbmQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWNjb3VudCBJZCBvZiB0aGUgcmVjZWl2ZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJZCB0aGUgYWNjb3VudCBpZCBvZiB0aGUgYWNjb3VudCB0aGF0IGlzIHJlY2VpdmluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcHVibGljIHJlY2VpdmVySWQoYWNjb3VudElkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWFjY291bnRJZCB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWNjb3VudElkKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFjY291bnRJZCBmb3IgcmVjZWl2ZXIsIGdvdDogJyArIGFjY291bnRJZCk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2VpdmVySWQgPSBhY2NvdW50SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IGljcFRyYW5zYWN0aW9uRGF0YSA9IHRoaXMudHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihpY3BUcmFuc2FjdGlvbkRhdGEpO1xuICAgIHRoaXMuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIHRoZSBhbW91bnQgdG8gYmUgc2VudCBpbiBlOHMgKDEgSUNQID0gMWU4IGU4cylcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB1dGlscy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIodmFsdWUpKTtcbiAgICB0aGlzLl9hbW91bnQgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIHV0aWxzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgY29uc3QgaWNwVHJhbnNhY3Rpb25EYXRhID0gdHguaWNwVHJhbnNhY3Rpb25EYXRhO1xuICAgIHRoaXMuX3NlbmRlciA9IGljcFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJBZGRyZXNzO1xuICAgIHRoaXMuX3JlY2VpdmVySWQgPSBpY3BUcmFuc2FjdGlvbkRhdGEucmVjZWl2ZXJBZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IGljcFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJQdWJsaWNLZXlIZXg7XG4gICAgdGhpcy5fYW1vdW50ID0gaWNwVHJhbnNhY3Rpb25EYXRhLmFtb3VudDtcbiAgICB0aGlzLl9tZW1vID0gaWNwVHJhbnNhY3Rpb25EYXRhLm1lbW8gPz8gREVGQVVMVF9NRU1PO1xuICAgIHRoaXMuX2luZ3Jlc3NFbmQgPSBOdW1iZXIoaWNwVHJhbnNhY3Rpb25EYXRhLmV4cGlyeVRpbWUpO1xuICB9XG5cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBJY3BUcmFuc2FjdGlvbkRhdGEpOiB2b2lkIHtcbiAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICBpZiAoIWtleSB8fCAha2V5LmtleSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignS2V5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFByaXZhdGVLZXkoa2V5LmtleSkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0ludmFsaWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgdGhlIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCB0aGUgc2lnbmF0dXJlIHBheWxvYWQgdG8gY3JlYXRlIGEgc2lnbmVkIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGNvbWJpbmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyID0gbmV3IFNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcihcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLnVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5zaWduYXR1cmVQYXlsb2FkXG4gICAgKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlci5nZXRTaWduVHJhbnNhY3Rpb24oKTtcbiAgfVxufVxuIl19
@@ -1,25 +0,0 @@
1
- import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
2
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
- import { Transaction } from './transaction';
4
- import { TransactionBuilder } from './transactionBuilder';
5
- import { TransferBuilder } from './transferBuilder';
6
- import { ParsedTransaction } from './iface';
7
- export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
8
- constructor(_coinConfig: Readonly<CoinConfig>);
9
- /** @inheritdoc */
10
- from(rawTransaction: string): Promise<TransactionBuilder>;
11
- /**
12
- * Initialize the builder with the given transaction
13
- *
14
- * @param {Transaction | undefined} tx - the transaction used to initialize the builder
15
- * @param {TransactionBuilder} builder - the builder to be initialized
16
- * @returns {TransactionBuilder} the builder initialized
17
- */
18
- private static initializeBuilder;
19
- /** @inheritdoc */
20
- getTransferBuilder(tx?: Transaction): TransferBuilder;
21
- parseTransaction(rawTransaction: string, isSigned: boolean): Promise<ParsedTransaction>;
22
- /** @inheritdoc */
23
- getWalletInitializationBuilder(): void;
24
- }
25
- //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAsD,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IACZ,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe/D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWvF,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;CAGvC"}