@bitgo/sdk-coin-cspr 2.2.14 → 2.2.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 (51) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +6 -6
  3. package/LICENSE +0 -191
  4. package/dist/src/cspr.d.ts +0 -107
  5. package/dist/src/cspr.d.ts.map +0 -1
  6. package/dist/src/cspr.js +0 -314
  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 -44
  10. package/dist/src/lib/constants.d.ts +0 -19
  11. package/dist/src/lib/constants.d.ts.map +0 -1
  12. package/dist/src/lib/constants.js +0 -28
  13. package/dist/src/lib/delegateBuilder.d.ts +0 -49
  14. package/dist/src/lib/delegateBuilder.d.ts.map +0 -1
  15. package/dist/src/lib/delegateBuilder.js +0 -111
  16. package/dist/src/lib/ifaces.d.ts +0 -69
  17. package/dist/src/lib/ifaces.d.ts.map +0 -1
  18. package/dist/src/lib/ifaces.js +0 -3
  19. package/dist/src/lib/index.d.ts +0 -6
  20. package/dist/src/lib/index.d.ts.map +0 -1
  21. package/dist/src/lib/index.js +0 -45
  22. package/dist/src/lib/keyPair.d.ts +0 -18
  23. package/dist/src/lib/keyPair.d.ts.map +0 -1
  24. package/dist/src/lib/keyPair.js +0 -55
  25. package/dist/src/lib/transaction.d.ts +0 -55
  26. package/dist/src/lib/transaction.d.ts.map +0 -1
  27. package/dist/src/lib/transaction.js +0 -240
  28. package/dist/src/lib/transactionBuilder.d.ts +0 -124
  29. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  30. package/dist/src/lib/transactionBuilder.js +0 -312
  31. package/dist/src/lib/transactionBuilderFactory.d.ts +0 -46
  32. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  33. package/dist/src/lib/transactionBuilderFactory.js +0 -98
  34. package/dist/src/lib/transferBuilder.d.ts +0 -39
  35. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  36. package/dist/src/lib/transferBuilder.js +0 -106
  37. package/dist/src/lib/undelegateBuilder.d.ts +0 -49
  38. package/dist/src/lib/undelegateBuilder.d.ts.map +0 -1
  39. package/dist/src/lib/undelegateBuilder.js +0 -111
  40. package/dist/src/lib/utils.d.ts +0 -188
  41. package/dist/src/lib/utils.d.ts.map +0 -1
  42. package/dist/src/lib/utils.js +0 -490
  43. package/dist/src/lib/walletInitializationBuilder.d.ts +0 -27
  44. package/dist/src/lib/walletInitializationBuilder.d.ts.map +0 -1
  45. package/dist/src/lib/walletInitializationBuilder.js +0 -95
  46. package/dist/src/register.d.ts +0 -3
  47. package/dist/src/register.d.ts.map +0 -1
  48. package/dist/src/register.js +0 -11
  49. package/dist/src/tcspr.d.ts +0 -11
  50. package/dist/src/tcspr.d.ts.map +0 -1
  51. package/dist/src/tcspr.js +0 -24
@@ -1,240 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Transaction = void 0;
37
- const _ = __importStar(require("lodash"));
38
- const casper_js_sdk_1 = require("casper-js-sdk");
39
- const sdk_core_1 = require("@bitgo/sdk-core");
40
- const keyPair_1 = require("./keyPair");
41
- const constants_1 = require("./constants");
42
- const utils_1 = require("./utils");
43
- class Transaction extends sdk_core_1.BaseTransaction {
44
- constructor(_coinConfig) {
45
- super(_coinConfig);
46
- }
47
- /** @inheritdoc */
48
- canSign(key) {
49
- return true;
50
- }
51
- sign(keyPair) {
52
- const keys = keyPair.getKeys();
53
- if (!keys.prv) {
54
- throw new sdk_core_1.SigningError('Missing private key');
55
- }
56
- if (this._deploy.approvals.some((ap) => !ap.signer.startsWith(constants_1.SECP256K1_PREFIX) || !(0, utils_1.isValidPublicKey)((0, utils_1.removeAlgoPrefixFromHexValue)(ap.signer)))) {
57
- throw new sdk_core_1.SigningError('Invalid deploy. Already signed with an invalid key');
58
- }
59
- const secpKeys = new casper_js_sdk_1.Keys.Secp256K1(Uint8Array.from(Buffer.from(keys.pub, 'hex')), Uint8Array.from(Buffer.from(keys.prv, 'hex')));
60
- const signedDeploy = casper_js_sdk_1.DeployUtil.signDeploy(this._deploy, secpKeys);
61
- this._signatures.push(signedDeploy.approvals[signedDeploy.approvals.length - 1].signature);
62
- }
63
- /**
64
- * Add a signature to this transaction and to and its deploy
65
- *
66
- * @param {string} signature The signature to add, in string hex format
67
- * @param {KeyPair} keyPair The key pair that created the signature
68
- */
69
- addSignature(signature, keyPair) {
70
- const pub = keyPair.getKeys().pub;
71
- const signatureBuffer = Uint8Array.from(Buffer.from(signature, 'hex'));
72
- const pubKeyBuffer = Uint8Array.from(Buffer.from(pub, 'hex'));
73
- const parsedPublicKey = casper_js_sdk_1.Keys.Secp256K1.parsePublicKey(pubKeyBuffer, 'raw');
74
- const pubKeyHex = casper_js_sdk_1.Keys.Secp256K1.accountHex(parsedPublicKey);
75
- if ((0, utils_1.removeAlgoPrefixFromHexValue)(pubKeyHex) !== pub) {
76
- throw new sdk_core_1.SigningError('Signer does not match signature');
77
- }
78
- const signedDeploy = casper_js_sdk_1.DeployUtil.setSignature(this._deploy, signatureBuffer, casper_js_sdk_1.CLPublicKey.fromSecp256K1(parsedPublicKey));
79
- const approval = _.last(signedDeploy.approvals);
80
- if ((0, utils_1.removeAlgoPrefixFromHexValue)(approval.signature) !== signature) {
81
- throw new sdk_core_1.SigningError('Invalid signature');
82
- }
83
- this._signatures.push(signature);
84
- }
85
- /** @inheritdoc */
86
- toBroadcastFormat() {
87
- if (!this.casperTx) {
88
- throw new sdk_core_1.InvalidTransactionError('Empty transaction');
89
- }
90
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
- const txJson = casper_js_sdk_1.DeployUtil.deployToJson(this.casperTx);
92
- // The new casper lib is converting the TTL from miliseconds to another date format, in this case 1 day
93
- // we need to leave it as ms for the HSM to be able to parse it
94
- txJson.deploy.header.ttl = `${this.casperTx.header.ttl}ms`;
95
- this.setOwnersInJson(txJson);
96
- this.setTransfersFieldsInJson(txJson);
97
- this.setDelegateFieldsInJson(txJson);
98
- return JSON.stringify(txJson);
99
- }
100
- /** @inheritdoc */
101
- toJson() {
102
- const deployPayment = this._deploy.payment.asModuleBytes()?.getArgByName('amount');
103
- if (!deployPayment) {
104
- throw new sdk_core_1.InvalidTransactionError('Undefined fee');
105
- }
106
- const owner1Index = 0;
107
- const owner2Index = 1;
108
- const owner3Index = 2;
109
- const sourcePublicKey = Buffer.from(this._deploy.header.account.value()).toString('hex');
110
- const sourceAddress = new keyPair_1.KeyPair({ pub: sourcePublicKey }).getAddress();
111
- const result = {
112
- hash: Buffer.from(this._deploy.hash).toString('hex'),
113
- fee: { gasLimit: deployPayment.value().toString(), gasPrice: this._deploy.header.gasPrice.toString() },
114
- from: sourceAddress,
115
- startTime: new Date(this._deploy.header.timestamp).toISOString(),
116
- expiration: this._deploy.header.ttl,
117
- deployType: this._deploy.session.getArgByName(constants_1.TRANSACTION_TYPE).value(),
118
- };
119
- const transactionType = (0, utils_1.getDeployType)(this._deploy.session);
120
- switch (transactionType) {
121
- case sdk_core_1.TransactionType.Send:
122
- result.to = (0, utils_1.getTransferDestinationAddress)(this._deploy.session);
123
- result.amount = (0, utils_1.getTransferAmount)(this._deploy.session);
124
- result.transferId = (0, utils_1.getTransferId)(this._deploy.session);
125
- break;
126
- case sdk_core_1.TransactionType.WalletInitialization:
127
- result.owner1 = this.casperTx.session.getArgByName(constants_1.OWNER_PREFIX + owner1Index).value();
128
- result.owner2 = this.casperTx.session.getArgByName(constants_1.OWNER_PREFIX + owner2Index).value();
129
- result.owner3 = this.casperTx.session.getArgByName(constants_1.OWNER_PREFIX + owner3Index).value();
130
- break;
131
- case sdk_core_1.TransactionType.StakingLock:
132
- result.fromDelegate = (0, utils_1.getDelegatorAddress)(this.casperTx.session);
133
- result.validator = (0, utils_1.getValidatorAddress)(this.casperTx.session);
134
- result.amount = (0, utils_1.getDelegateAmount)(this.casperTx.session);
135
- break;
136
- case sdk_core_1.TransactionType.StakingUnlock:
137
- result.fromDelegate = (0, utils_1.getDelegatorAddress)(this.casperTx.session);
138
- result.validator = (0, utils_1.getValidatorAddress)(this.casperTx.session);
139
- result.amount = (0, utils_1.getDelegateAmount)(this.casperTx.session);
140
- break;
141
- }
142
- return result;
143
- }
144
- /**
145
- * Set the transaction type
146
- *
147
- * @param {TransactionType} transactionType The transaction type to be set
148
- */
149
- setTransactionType(transactionType) {
150
- this._type = transactionType;
151
- }
152
- /**
153
- * Retrieve signatures from the deploy instance and load them into the signatures list
154
- */
155
- loadPreviousSignatures() {
156
- if (this._deploy.approvals && this._deploy.approvals.length > 0) {
157
- this._deploy.approvals.forEach((approval) => {
158
- this._signatures.push(approval.signature);
159
- });
160
- }
161
- }
162
- /**
163
- * Set owners inside a json representing a wallet initialization tx.
164
- *
165
- * @param {Record<string, any>} txJson json to modify
166
- */
167
- setOwnersInJson(txJson) {
168
- if ((0, utils_1.getDeployType)(this.casperTx.session) === sdk_core_1.TransactionType.WalletInitialization) {
169
- const argName = 0;
170
- const argValue = 1;
171
- const owner0 = 0;
172
- const owner1 = 1;
173
- const owner2 = 2;
174
- const ownersValues = new Map();
175
- ownersValues.set(constants_1.TRANSACTION_TYPE, this.casperTx.session.getArgByName(constants_1.TRANSACTION_TYPE).value());
176
- [owner0, owner1, owner2].forEach((index) => {
177
- ownersValues.set(constants_1.OWNER_PREFIX + index, this.casperTx.session.getArgByName(constants_1.OWNER_PREFIX + index).value());
178
- });
179
- txJson['deploy']['session']['ModuleBytes']['args'].forEach((arg) => {
180
- if (ownersValues.has(arg[argName])) {
181
- arg[argValue]['parsed'] = ownersValues.get(arg[argName]);
182
- }
183
- });
184
- }
185
- }
186
- /**
187
- * Set transfer fields inside a json representing a transfer tx.
188
- *
189
- * @param {Record<string, any>} txJson json to modify
190
- */
191
- setTransfersFieldsInJson(txJson) {
192
- if ((0, utils_1.getDeployType)(this.casperTx.session) === sdk_core_1.TransactionType.Send) {
193
- const argName = 0;
194
- const argValue = 1;
195
- const transferValues = new Map();
196
- transferValues.set(constants_1.TRANSACTION_TYPE, this.casperTx.session.getArgByName(constants_1.TRANSACTION_TYPE).value());
197
- transferValues.set('amount', (0, utils_1.getTransferAmount)(this.casperTx.session));
198
- transferValues.set('to_address', (0, utils_1.getTransferDestinationAddress)(this.casperTx.session));
199
- const transferId = (0, utils_1.getTransferId)(this.casperTx.session);
200
- if (transferId !== undefined) {
201
- transferValues.set('id', transferId.toString());
202
- }
203
- txJson['deploy']['session']['Transfer']['args'].forEach((arg) => {
204
- if (transferValues.has(arg[argName])) {
205
- arg[argValue]['parsed'] = transferValues.get(arg[argName]);
206
- }
207
- });
208
- }
209
- }
210
- /**
211
- * Set delegate / undelegate fields inside a json representing the tx.
212
- *
213
- * @param {Record<string, any>} txJson json to modify
214
- */
215
- setDelegateFieldsInJson(txJson) {
216
- if ((0, utils_1.getDeployType)(this.casperTx.session) === sdk_core_1.TransactionType.StakingLock ||
217
- (0, utils_1.getDeployType)(this.casperTx.session) === sdk_core_1.TransactionType.StakingUnlock) {
218
- const argName = 0;
219
- const argValue = 1;
220
- const delegateValues = new Map();
221
- delegateValues.set(constants_1.TRANSACTION_TYPE, this.casperTx.session.getArgByName(constants_1.TRANSACTION_TYPE).value());
222
- delegateValues.set('amount', (0, utils_1.getDelegateAmount)(this.casperTx.session));
223
- delegateValues.set(constants_1.DELEGATE_FROM_ADDRESS, (0, utils_1.getDelegatorAddress)(this.casperTx.session));
224
- delegateValues.set(constants_1.DELEGATE_VALIDATOR, (0, utils_1.getValidatorAddress)(this.casperTx.session));
225
- txJson.deploy.session.ModuleBytes.args.forEach((arg) => {
226
- if (delegateValues.has(arg[argName])) {
227
- arg[argValue]['parsed'] = delegateValues.get(arg[argName]);
228
- }
229
- });
230
- }
231
- }
232
- get casperTx() {
233
- return this._deploy;
234
- }
235
- set casperTx(deploy) {
236
- this._deploy = deploy;
237
- }
238
- }
239
- exports.Transaction = Transaction;
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUU1QixpREFBNkY7QUFDN0YsOENBQW1IO0FBQ25ILHVDQUFvQztBQUVwQywyQ0FNcUI7QUFDckIsbUNBVWlCO0FBRWpCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSTlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWdCO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3pCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLDRCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFBLHdCQUFnQixFQUFDLElBQUEsb0NBQTRCLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzlHLEVBQ0QsQ0FBQztZQUNELE1BQU0sSUFBSSx1QkFBWSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQUksQ0FBQyxTQUFTLENBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJ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LENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzdELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0NBR0Y7QUFoUEQsa0NBZ1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IENMUHVibGljS2V5IGFzIFB1YmxpY0tleSwgRGVwbG95VXRpbCwgS2V5cywgQ0xTdHJpbmcsIENMVTUxMiB9IGZyb20gJ2Nhc3Blci1qcy1zZGsnO1xuaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblR5cGUsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBTaWduaW5nRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBDYXNwZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vaWZhY2VzJztcbmltcG9ydCB7XG4gIERFTEVHQVRFX0ZST01fQUREUkVTUyxcbiAgREVMRUdBVEVfVkFMSURBVE9SLFxuICBPV05FUl9QUkVGSVgsXG4gIFNFQ1AyNTZLMV9QUkVGSVgsXG4gIFRSQU5TQUNUSU9OX1RZUEUsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGdldFRyYW5zZmVyQW1vdW50LFxuICBnZXRUcmFuc2ZlckRlc3RpbmF0aW9uQWRkcmVzcyxcbiAgZ2V0VHJhbnNmZXJJZCxcbiAgaXNWYWxpZFB1YmxpY0tleSxcbiAgcmVtb3ZlQWxnb1ByZWZpeEZyb21IZXhWYWx1ZSxcbiAgZ2V0RGVwbG95VHlwZSxcbiAgZ2V0RGVsZWdhdG9yQWRkcmVzcyxcbiAgZ2V0VmFsaWRhdG9yQWRkcmVzcyxcbiAgZ2V0RGVsZWdhdGVBbW91bnQsXG59IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgcHJvdGVjdGVkIF9kZXBsb3k6IERlcGxveVV0aWwuRGVwbG95O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyKTogdm9pZCB7XG4gICAgY29uc3Qga2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5fZGVwbG95LmFwcHJvdmFscy5zb21lKFxuICAgICAgICAoYXApID0+ICFhcC5zaWduZXIuc3RhcnRzV2l0aChTRUNQMjU2SzFfUFJFRklYKSB8fCAhaXNWYWxpZFB1YmxpY0tleShyZW1vdmVBbGdvUHJlZml4RnJvbUhleFZhbHVlKGFwLnNpZ25lcikpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdJbnZhbGlkIGRlcGxveS4gQWxyZWFkeSBzaWduZWQgd2l0aCBhbiBpbnZhbGlkIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBzZWNwS2V5cyA9IG5ldyBLZXlzLlNlY3AyNTZLMShcbiAgICAgIFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShrZXlzLnB1YiwgJ2hleCcpKSxcbiAgICAgIFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShrZXlzLnBydiwgJ2hleCcpKVxuICAgICk7XG4gICAgY29uc3Qgc2lnbmVkRGVwbG95ID0gRGVwbG95VXRpbC5zaWduRGVwbG95KHRoaXMuX2RlcGxveSwgc2VjcEtleXMpO1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduZWREZXBsb3kuYXBwcm92YWxzW3NpZ25lZERlcGxveS5hcHByb3ZhbHMubGVuZ3RoIC0gMV0uc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBzaWduYXR1cmUgdG8gdGhpcyB0cmFuc2FjdGlvbiBhbmQgdG8gYW5kIGl0cyBkZXBsb3lcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSBUaGUgc2lnbmF0dXJlIHRvIGFkZCwgaW4gc3RyaW5nIGhleCBmb3JtYXRcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIFRoZSBrZXkgcGFpciB0aGF0IGNyZWF0ZWQgdGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBrZXlQYWlyOiBLZXlQYWlyKTogdm9pZCB7XG4gICAgY29uc3QgcHViID0ga2V5UGFpci5nZXRLZXlzKCkucHViO1xuICAgIGNvbnN0IHNpZ25hdHVyZUJ1ZmZlciA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShzaWduYXR1cmUsICdoZXgnKSk7XG4gICAgY29uc3QgcHViS2V5QnVmZmVyID0gVWludDhBcnJheS5mcm9tKEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICBjb25zdCBwYXJzZWRQdWJsaWNLZXkgPSBLZXlzLlNlY3AyNTZLMS5wYXJzZVB1YmxpY0tleShwdWJLZXlCdWZmZXIsICdyYXcnKTtcbiAgICBjb25zdCBwdWJLZXlIZXggPSBLZXlzLlNlY3AyNTZLMS5hY2NvdW50SGV4KHBhcnNlZFB1YmxpY0tleSk7XG4gICAgaWYgKHJlbW92ZUFsZ29QcmVmaXhGcm9tSGV4VmFsdWUocHViS2V5SGV4KSAhPT0gcHViKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdTaWduZXIgZG9lcyBub3QgbWF0Y2ggc2lnbmF0dXJlJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25lZERlcGxveSA9IERlcGxveVV0aWwuc2V0U2lnbmF0dXJlKFxuICAgICAgdGhpcy5fZGVwbG95LFxuICAgICAgc2lnbmF0dXJlQnVmZmVyLFxuICAgICAgUHVibGljS2V5LmZyb21TZWNwMjU2SzEocGFyc2VkUHVibGljS2V5KVxuICAgICk7XG4gICAgY29uc3QgYXBwcm92YWwgPSBfLmxhc3Qoc2lnbmVkRGVwbG95LmFwcHJvdmFscykgYXMgRGVwbG95VXRpbC5BcHByb3ZhbDtcbiAgICBpZiAocmVtb3ZlQWxnb1ByZWZpeEZyb21IZXhWYWx1ZShhcHByb3ZhbC5zaWduYXR1cmUpICE9PSBzaWduYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlJyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNhc3BlclR4KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgdHhKc29uOiBhbnkgPSBEZXBsb3lVdGlsLmRlcGxveVRvSnNvbih0aGlzLmNhc3BlclR4KTtcbiAgICAvLyBUaGUgbmV3IGNhc3BlciBsaWIgaXMgY29udmVydGluZyB0aGUgVFRMIGZyb20gbWlsaXNlY29uZHMgdG8gYW5vdGhlciBkYXRlIGZvcm1hdCwgaW4gdGhpcyBjYXNlIDEgZGF5XG4gICAgLy8gd2UgbmVlZCB0byBsZWF2ZSBpdCBhcyBtcyBmb3IgdGhlIEhTTSB0byBiZSBhYmxlIHRvIHBhcnNlIGl0XG4gICAgdHhKc29uLmRlcGxveS5oZWFkZXIudHRsID0gYCR7dGhpcy5jYXNwZXJUeC5oZWFkZXIudHRsfW1zYDtcbiAgICB0aGlzLnNldE93bmVyc0luSnNvbih0eEpzb24pO1xuICAgIHRoaXMuc2V0VHJhbnNmZXJzRmllbGRzSW5Kc29uKHR4SnNvbik7XG4gICAgdGhpcy5zZXREZWxlZ2F0ZUZpZWxkc0luSnNvbih0eEpzb24pO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0eEpzb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBDYXNwZXJUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgZGVwbG95UGF5bWVudCA9IHRoaXMuX2RlcGxveS5wYXltZW50LmFzTW9kdWxlQnl0ZXMoKT8uZ2V0QXJnQnlOYW1lKCdhbW91bnQnKSBhcyBDTFU1MTI7XG4gICAgaWYgKCFkZXBsb3lQYXltZW50KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1VuZGVmaW5lZCBmZWUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBvd25lcjFJbmRleCA9IDA7XG4gICAgY29uc3Qgb3duZXIySW5kZXggPSAxO1xuICAgIGNvbnN0IG93bmVyM0luZGV4ID0gMjtcbiAgICBjb25zdCBzb3VyY2VQdWJsaWNLZXkgPSBCdWZmZXIuZnJvbSh0aGlzLl9kZXBsb3kuaGVhZGVyLmFjY291bnQudmFsdWUoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHNvdXJjZUFkZHJlc3MgPSBuZXcgS2V5UGFpcih7IHB1Yjogc291cmNlUHVibGljS2V5IH0pLmdldEFkZHJlc3MoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogQ2FzcGVyVHJhbnNhY3Rpb24gPSB7XG4gICAgICBoYXNoOiBCdWZmZXIuZnJvbSh0aGlzLl9kZXBsb3kuaGFzaCkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgZmVlOiB7IGdhc0xpbWl0OiBkZXBsb3lQYXltZW50LnZhbHVlKCkudG9TdHJpbmcoKSwgZ2FzUHJpY2U6IHRoaXMuX2RlcGxveS5oZWFkZXIuZ2FzUHJpY2UudG9TdHJpbmcoKSB9LFxuICAgICAgZnJvbTogc291cmNlQWRkcmVzcyxcbiAgICAgIHN0YXJ0VGltZTogbmV3IERhdGUodGhpcy5fZGVwbG95LmhlYWRlci50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLl9kZXBsb3kuaGVhZGVyLnR0bCxcbiAgICAgIGRlcGxveVR5cGU6ICh0aGlzLl9kZXBsb3kuc2Vzc2lvbi5nZXRBcmdCeU5hbWUoVFJBTlNBQ1RJT05fVFlQRSkgYXMgQ0xTdHJpbmcpLnZhbHVlKCksXG4gICAgfTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uVHlwZSA9IGdldERlcGxveVR5cGUodGhpcy5fZGVwbG95LnNlc3Npb24pO1xuXG4gICAgc3dpdGNoICh0cmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgIHJlc3VsdC50byA9IGdldFRyYW5zZmVyRGVzdGluYXRpb25BZGRyZXNzKHRoaXMuX2RlcGxveS5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IGdldFRyYW5zZmVyQW1vdW50KHRoaXMuX2RlcGxveS5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LnRyYW5zZmVySWQgPSBnZXRUcmFuc2ZlcklkKHRoaXMuX2RlcGxveS5zZXNzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjpcbiAgICAgICAgcmVzdWx0Lm93bmVyMSA9ICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKE9XTkVSX1BSRUZJWCArIG93bmVyMUluZGV4KSBhcyBDTFN0cmluZykudmFsdWUoKTtcbiAgICAgICAgcmVzdWx0Lm93bmVyMiA9ICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKE9XTkVSX1BSRUZJWCArIG93bmVyMkluZGV4KSBhcyBDTFN0cmluZykudmFsdWUoKTtcbiAgICAgICAgcmVzdWx0Lm93bmVyMyA9ICh0aGlzLmNhc3BlclR4LnNlc3Npb24uZ2V0QXJnQnlOYW1lKE9XTkVSX1BSRUZJWCArIG93bmVyM0luZGV4KSBhcyBDTFN0cmluZykudmFsdWUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nTG9jazpcbiAgICAgICAgcmVzdWx0LmZyb21EZWxlZ2F0ZSA9IGdldERlbGVnYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LnZhbGlkYXRvciA9IGdldFZhbGlkYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IGdldERlbGVnYXRlQW1vdW50KHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jazpcbiAgICAgICAgcmVzdWx0LmZyb21EZWxlZ2F0ZSA9IGdldERlbGVnYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LnZhbGlkYXRvciA9IGdldFZhbGlkYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IGdldERlbGVnYXRlQW1vdW50KHRoaXMuY2FzcGVyVHguc2Vzc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBzaWduYXR1cmVzIGZyb20gdGhlIGRlcGxveSBpbnN0YW5jZSBhbmQgbG9hZCB0aGVtIGludG8gdGhlIHNpZ25hdHVyZXMgbGlzdFxuICAgKi9cbiAgbG9hZFByZXZpb3VzU2lnbmF0dXJlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGVwbG95LmFwcHJvdmFscyAmJiB0aGlzLl9kZXBsb3kuYXBwcm92YWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2RlcGxveS5hcHByb3ZhbHMuZm9yRWFjaCgoYXBwcm92YWwpID0+IHtcbiAgICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKGFwcHJvdmFsLnNpZ25hdHVyZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IG93bmVycyBpbnNpZGUgYSBqc29uIHJlcHJlc2VudGluZyBhIHdhbGxldCBpbml0aWFsaXphdGlvbiB0eC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0eEpzb24ganNvbiB0byBtb2RpZnlcbiAgICovXG4gIHNldE93bmVyc0luSnNvbih0eEpzb246IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICBpZiAoZ2V0RGVwbG95VHlwZSh0aGlzLmNhc3BlclR4LnNlc3Npb24pID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSAwO1xuICAgICAgY29uc3QgYXJnVmFsdWUgPSAxO1xuICAgICAgY29uc3Qgb3duZXIwID0gMDtcbiAgICAgIGNvbnN0IG93bmVyMSA9IDE7XG4gICAgICBjb25zdCBvd25lcjIgPSAyO1xuXG4gICAgICBjb25zdCBvd25lcnNWYWx1ZXMgPSBuZXcgTWFwKCk7XG5cbiAgICAgIG93bmVyc1ZhbHVlcy5zZXQoVFJBTlNBQ1RJT05fVFlQRSwgKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoVFJBTlNBQ1RJT05fVFlQRSkgYXMgQ0xTdHJpbmcpLnZhbHVlKCkpO1xuXG4gICAgICBbb3duZXIwLCBvd25lcjEsIG93bmVyMl0uZm9yRWFjaCgoaW5kZXgpID0+IHtcbiAgICAgICAgb3duZXJzVmFsdWVzLnNldChcbiAgICAgICAgICBPV05FUl9QUkVGSVggKyBpbmRleCxcbiAgICAgICAgICAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShPV05FUl9QUkVGSVggKyBpbmRleCkgYXMgQ0xTdHJpbmcpLnZhbHVlKClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICB0eEpzb25bJ2RlcGxveSddWydzZXNzaW9uJ11bJ01vZHVsZUJ5dGVzJ11bJ2FyZ3MnXS5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgaWYgKG93bmVyc1ZhbHVlcy5oYXMoYXJnW2FyZ05hbWVdKSkge1xuICAgICAgICAgIGFyZ1thcmdWYWx1ZV1bJ3BhcnNlZCddID0gb3duZXJzVmFsdWVzLmdldChhcmdbYXJnTmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRyYW5zZmVyIGZpZWxkcyBpbnNpZGUgYSBqc29uIHJlcHJlc2VudGluZyBhIHRyYW5zZmVyIHR4LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHR4SnNvbiBqc29uIHRvIG1vZGlmeVxuICAgKi9cbiAgc2V0VHJhbnNmZXJzRmllbGRzSW5Kc29uKHR4SnNvbjogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGlmIChnZXREZXBsb3lUeXBlKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kKSB7XG4gICAgICBjb25zdCBhcmdOYW1lID0gMDtcbiAgICAgIGNvbnN0IGFyZ1ZhbHVlID0gMTtcblxuICAgICAgY29uc3QgdHJhbnNmZXJWYWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgICB0cmFuc2ZlclZhbHVlcy5zZXQoVFJBTlNBQ1RJT05fVFlQRSwgKHRoaXMuY2FzcGVyVHguc2Vzc2lvbi5nZXRBcmdCeU5hbWUoVFJBTlNBQ1RJT05fVFlQRSkgYXMgQ0xTdHJpbmcpLnZhbHVlKCkpO1xuICAgICAgdHJhbnNmZXJWYWx1ZXMuc2V0KCdhbW91bnQnLCBnZXRUcmFuc2ZlckFtb3VudCh0aGlzLmNhc3BlclR4LnNlc3Npb24pKTtcbiAgICAgIHRyYW5zZmVyVmFsdWVzLnNldCgndG9fYWRkcmVzcycsIGdldFRyYW5zZmVyRGVzdGluYXRpb25BZGRyZXNzKHRoaXMuY2FzcGVyVHguc2Vzc2lvbikpO1xuICAgICAgY29uc3QgdHJhbnNmZXJJZCA9IGdldFRyYW5zZmVySWQodGhpcy5jYXNwZXJUeC5zZXNzaW9uKTtcbiAgICAgIGlmICh0cmFuc2ZlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdHJhbnNmZXJWYWx1ZXMuc2V0KCdpZCcsIHRyYW5zZmVySWQudG9TdHJpbmcoKSk7XG4gICAgICB9XG5cbiAgICAgIHR4SnNvblsnZGVwbG95J11bJ3Nlc3Npb24nXVsnVHJhbnNmZXInXVsnYXJncyddLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgICBpZiAodHJhbnNmZXJWYWx1ZXMuaGFzKGFyZ1thcmdOYW1lXSkpIHtcbiAgICAgICAgICBhcmdbYXJnVmFsdWVdWydwYXJzZWQnXSA9IHRyYW5zZmVyVmFsdWVzLmdldChhcmdbYXJnTmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlbGVnYXRlIC8gdW5kZWxlZ2F0ZSBmaWVsZHMgaW5zaWRlIGEganNvbiByZXByZXNlbnRpbmcgdGhlIHR4LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHR4SnNvbiBqc29uIHRvIG1vZGlmeVxuICAgKi9cbiAgc2V0RGVsZWdhdGVGaWVsZHNJbkpzb24odHhKc29uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZ2V0RGVwbG95VHlwZSh0aGlzLmNhc3BlclR4LnNlc3Npb24pID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0xvY2sgfHxcbiAgICAgIGdldERlcGxveVR5cGUodGhpcy5jYXNwZXJUeC5zZXNzaW9uKSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2tcbiAgICApIHtcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSAwO1xuICAgICAgY29uc3QgYXJnVmFsdWUgPSAxO1xuXG4gICAgICBjb25zdCBkZWxlZ2F0ZVZhbHVlcyA9IG5ldyBNYXAoKTtcbiAgICAgIGRlbGVnYXRlVmFsdWVzLnNldChUUkFOU0FDVElPTl9UWVBFLCAodGhpcy5jYXNwZXJUeC5zZXNzaW9uLmdldEFyZ0J5TmFtZShUUkFOU0FDVElPTl9UWVBFKSBhcyBDTFN0cmluZykudmFsdWUoKSk7XG4gICAgICBkZWxlZ2F0ZVZhbHVlcy5zZXQoJ2Ftb3VudCcsIGdldERlbGVnYXRlQW1vdW50KHRoaXMuY2FzcGVyVHguc2Vzc2lvbikpO1xuICAgICAgZGVsZWdhdGVWYWx1ZXMuc2V0KERFTEVHQVRFX0ZST01fQUREUkVTUywgZ2V0RGVsZWdhdG9yQWRkcmVzcyh0aGlzLmNhc3BlclR4LnNlc3Npb24pKTtcbiAgICAgIGRlbGVnYXRlVmFsdWVzLnNldChERUxFR0FURV9WQUxJREFUT1IsIGdldFZhbGlkYXRvckFkZHJlc3ModGhpcy5jYXNwZXJUeC5zZXNzaW9uKSk7XG5cbiAgICAgIHR4SnNvbi5kZXBsb3kuc2Vzc2lvbi5Nb2R1bGVCeXRlcy5hcmdzLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgICBpZiAoZGVsZWdhdGVWYWx1ZXMuaGFzKGFyZ1thcmdOYW1lXSkpIHtcbiAgICAgICAgICBhcmdbYXJnVmFsdWVdWydwYXJzZWQnXSA9IGRlbGVnYXRlVmFsdWVzLmdldChhcmdbYXJnTmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FzcGVyVHgoKTogRGVwbG95VXRpbC5EZXBsb3kge1xuICAgIHJldHVybiB0aGlzLl9kZXBsb3k7XG4gIH1cblxuICBzZXQgY2FzcGVyVHgoZGVwbG95OiBEZXBsb3lVdGlsLkRlcGxveSkge1xuICAgIHRoaXMuX2RlcGxveSA9IGRlcGxveTtcbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
@@ -1,124 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
- import { BaseAddress, BaseKey, BaseTransactionBuilder } from '@bitgo/sdk-core';
4
- import { Transaction } from './transaction';
5
- import { KeyPair } from './keyPair';
6
- import { Fee, CasperModuleBytesTransaction, CasperTransferTransaction, CasperDelegateTransaction, SignatureData } from './ifaces';
7
- export declare const DEFAULT_M = 3;
8
- export declare const DEFAULT_N = 2;
9
- export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
10
- protected _source: BaseAddress;
11
- protected _fee: Fee;
12
- private _transaction;
13
- protected _session: CasperTransferTransaction | CasperModuleBytesTransaction | CasperDelegateTransaction;
14
- protected _expiration: number;
15
- protected _multiSignerKeyPairs: KeyPair[];
16
- protected _signatures: SignatureData[];
17
- protected _chainName: string;
18
- constructor(_coinConfig: Readonly<CoinConfig>);
19
- /** @inheritdoc */
20
- protected buildImplementation(): Promise<Transaction>;
21
- /** @inheritdoc */
22
- protected fromImplementation(rawTransaction: string): Transaction;
23
- /** @inheritdoc */
24
- protected signImplementation(key: BaseKey): Transaction;
25
- /**
26
- * Initialize the transaction builder fields using the decoded transaction data
27
- *
28
- * @param {Transaction} tx the transaction data
29
- */
30
- initBuilder(tx: Transaction): void;
31
- /**
32
- * Set the transaction fees
33
- *
34
- * @param {BaseFee} fee The maximum gas to pay
35
- * @returns {TransactionBuilder} This transaction builder
36
- */
37
- fee(fee: Fee): this;
38
- /**
39
- * Set the transaction source
40
- *
41
- * @param {BaseAddress} address The source account
42
- * @returns {TransactionBuilder} This transaction builder
43
- */
44
- source(address: BaseAddress): this;
45
- /**
46
- * Set the transaction expirationTime
47
- *
48
- * @param {string} expirationTime The transaction expirationTime
49
- * @returns {TransactionBuilder} This transaction builder
50
- */
51
- expiration(expirationTime: number): this;
52
- /**
53
- * Set an external transaction signature
54
- *
55
- * @param {string} signature Hex encoded signature string
56
- * @param {KeyPair} keyPair The public key keypair that was used to create the signature
57
- * @returns {TransactionBuilder} This transaction builder
58
- */
59
- signature(signature: string, keyPair: KeyPair): this;
60
- nodeChainName(chainName: string): this;
61
- /** @inheritdoc */
62
- validateAddress(address: BaseAddress): void;
63
- /** @inheritdoc */
64
- validateKey(key: BaseKey): void;
65
- /** @inheritdoc */
66
- validateRawTransaction(rawTransaction: string): void;
67
- /** @inheritdoc */
68
- validateTransaction(transaction?: Transaction): void;
69
- /** @inheritdoc */
70
- validateValue(value: BigNumber): void;
71
- /**
72
- * Validates that the mandatory fields are defined
73
- */
74
- validateMandatoryFields(): void;
75
- /**
76
- * Validates that the fee field is defined
77
- */
78
- private validateFee;
79
- /**
80
- * Validates that the source field is defined
81
- */
82
- private validateSource;
83
- /**
84
- * Validates that the given key is not already in this._multiSignerKeyPairs
85
- *
86
- * @param {BaseKey} key - The key to check
87
- */
88
- private checkDuplicatedKeys;
89
- /** @inheritdoc */
90
- protected get transaction(): Transaction;
91
- /** @inheritdoc */
92
- protected set transaction(transaction: Transaction);
93
- /**
94
- * Get the chain name for the coin environment
95
- */
96
- get chainName(): string;
97
- /**
98
- * Generate a DeployParams instance with the transaction data
99
- *
100
- * @returns {DeployUtil.DeployParams}
101
- */
102
- private getDeployParams;
103
- /**
104
- * Generate the session for the Deploy according to the transactionType.
105
- *
106
- * @returns {DeployUtil.ExecutableDeployItem}
107
- */
108
- private getSession;
109
- /**
110
- * Checks whether the transaction has the owner signature
111
- *
112
- * @param {string} pub - public key of the signer
113
- * @returns {boolean} true if the pub key already signed th transaction
114
- * @private
115
- */
116
- private isTransactionSignedByPub;
117
- /**
118
- * Add signatures to the transaction
119
- *
120
- * @private
121
- */
122
- private processSigning;
123
- }
124
- //# 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,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAMvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,GAAG,EACH,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACd,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;IACpB,OAAO,CAAC,YAAY,CAAc;IAClC,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;IACzG,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;IACvC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAS7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAwB3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAQjE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAUvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAalC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAMnB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAUxC;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAcpD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQtC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAM/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAWpD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IAIpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC;;OAEG;IACH,uBAAuB,IAAI,IAAI;IAK/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAqB3B,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAID;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA2BlB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAevB"}