@bitgo-beta/sdk-coin-hbar 1.3.3-alpha.23 → 1.3.3-alpha.231

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 (34) hide show
  1. package/CHANGELOG.md +523 -0
  2. package/dist/src/hbar.d.ts +60 -10
  3. package/dist/src/hbar.d.ts.map +1 -1
  4. package/dist/src/hbar.js +161 -13
  5. package/dist/src/index.js +6 -2
  6. package/dist/src/lib/coinTransferBuilder.d.ts +1 -1
  7. package/dist/src/lib/coinTransferBuilder.d.ts.map +1 -1
  8. package/dist/src/lib/coinTransferBuilder.js +11 -7
  9. package/dist/src/lib/iface.d.ts +1 -1
  10. package/dist/src/lib/iface.d.ts.map +1 -1
  11. package/dist/src/lib/index.js +6 -2
  12. package/dist/src/lib/keyPair.d.ts +1 -0
  13. package/dist/src/lib/keyPair.d.ts.map +1 -1
  14. package/dist/src/lib/keyPair.js +7 -7
  15. package/dist/src/lib/tokenAssociateBuilder.js +9 -28
  16. package/dist/src/lib/tokenTransferBuilder.d.ts +1 -1
  17. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
  18. package/dist/src/lib/tokenTransferBuilder.js +14 -10
  19. package/dist/src/lib/transaction.d.ts +1 -1
  20. package/dist/src/lib/transaction.d.ts.map +1 -1
  21. package/dist/src/lib/transaction.js +31 -27
  22. package/dist/src/lib/transactionBuilder.d.ts +1 -1
  23. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  24. package/dist/src/lib/transactionBuilder.js +20 -16
  25. package/dist/src/lib/transactionBuilderFactory.js +3 -3
  26. package/dist/src/lib/transferBuilder.d.ts +1 -1
  27. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  28. package/dist/src/lib/transferBuilder.js +5 -24
  29. package/dist/src/lib/utils.d.ts +18 -1
  30. package/dist/src/lib/utils.d.ts.map +1 -1
  31. package/dist/src/lib/utils.js +69 -8
  32. package/dist/src/lib/walletInitializationBuilder.js +13 -9
  33. package/dist/src/seedValidator.js +7 -3
  34. package/package.json +11 -11
@@ -1,26 +1,7 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
22
3
  exports.TransferBuilder = void 0;
23
- const proto = __importStar(require("@hashgraph/proto"));
4
+ const proto_1 = require("@hashgraph/proto");
24
5
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
25
6
  const transactionBuilder_1 = require("./transactionBuilder");
26
7
  const utils_1 = require("./utils");
@@ -28,7 +9,7 @@ const constants_1 = require("./constants");
28
9
  class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
29
10
  constructor(_coinConfig) {
30
11
  super(_coinConfig);
31
- this._txBodyData = new proto.CryptoTransferTransactionBody();
12
+ this._txBodyData = new proto_1.proto.CryptoTransferTransactionBody();
32
13
  this._txBody.cryptoTransfer = this._txBodyData;
33
14
  this._recipients = [];
34
15
  }
@@ -52,10 +33,10 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
52
33
  * @returns {TransferBuilder} - The builder with the new parameter set
53
34
  */
54
35
  send(recipient) {
55
- if (!utils_1.isValidAddress(recipient.address)) {
36
+ if (!(0, utils_1.isValidAddress)(recipient.address)) {
56
37
  throw new sdk_core_1.InvalidParameterValueError('Invalid address');
57
38
  }
58
- if (!utils_1.isValidAmount(recipient.amount)) {
39
+ if (!(0, utils_1.isValidAmount)(recipient.amount)) {
59
40
  throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
60
41
  }
61
42
  this._recipients.push(recipient);
@@ -71,4 +52,4 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
71
52
  }
72
53
  }
73
54
  exports.TransferBuilder = TransferBuilder;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyxtREFNOEI7QUFFOUIsNkRBQTBEO0FBRTFELG1DQUF3RDtBQUN4RCwyQ0FBb0Q7QUFFcEQsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUlyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxpQ0FBcUIsRUFBRTtZQUM3RCxNQUFNLElBQUksdUJBQVksQ0FBQyxlQUFlLEdBQUcsaUNBQXFCLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztTQUNoRztRQUNELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCx5QkFBeUI7SUFDekI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLHNCQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxDQUFDLHFCQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUU7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgcHJvdG8gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgUmVjaXBpZW50IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IERFRkFVTFRfU0lHTkVSX05VTUJFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfdHhCb2R5RGF0YTogcHJvdG8uQ3J5cHRvVHJhbnNmZXJUcmFuc2FjdGlvbkJvZHk7XG4gIHByb3RlY3RlZCBfcmVjaXBpZW50czogUmVjaXBpZW50W107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keURhdGEgPSBuZXcgcHJvdG8uQ3J5cHRvVHJhbnNmZXJUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvVHJhbnNmZXIgPSB0aGlzLl90eEJvZHlEYXRhO1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSBbXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignQSBtYXhpbXVtIG9mICcgKyBERUZBVUxUX1NJR05FUl9OVU1CRVIgKyAnIGNhbiBzaWduIHRoZSB0cmFuc2FjdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG5cbiAgLy8gcmVnaW9uIFRyYW5zZmVyIGZpZWxkc1xuICAvKipcbiAgICogU2V0IHRoZSByZWNpcGllbnQgdG8gYmUgdHJhbnNmZXJyZWRcbiAgICpcbiAgICogQHBhcmFtIHtSZWNpcGllbnR9IHJlY2lwaWVudCAtIHJlY2lwaWVudCB0byB0cmFuc2ZlciBjb25zaXN0aW5nIGRlc3RpbmF0aW9uIGFkZHJlc3MgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSAtIFRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBzZW5kKHJlY2lwaWVudDogUmVjaXBpZW50KTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghaXNWYWxpZEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFtb3VudCcpO1xuICAgIH1cbiAgICB0aGlzLl9yZWNpcGllbnRzLnB1c2gocmVjaXBpZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXlDO0FBQ3pDLG1EQU04QjtBQUU5Qiw2REFBMEQ7QUFFMUQsbUNBQXdEO0FBQ3hELDJDQUFvRDtBQUVwRCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBSXJELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxJQUFJLGlDQUFxQixFQUFFO1lBQzdELE1BQU0sSUFBSSx1QkFBWSxDQUFDLGVBQWUsR0FBRyxpQ0FBcUIsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHlCQUF5QjtJQUN6Qjs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsSUFBQSxzQkFBYyxFQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUkscUNBQTBCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyxJQUFBLHFCQUFhLEVBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUU7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBpc1ZhbGlkQWRkcmVzcywgaXNWYWxpZEFtb3VudCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TSUdORVJfTlVNQkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF9yZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2ZlciA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdBIG1heGltdW0gb2YgJyArIERFRkFVTFRfU0lHTkVSX05VTUJFUiArICcgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cblxuICAvLyByZWdpb24gVHJhbnNmZXIgZmllbGRzXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlY2lwaWVudCB0byBiZSB0cmFuc2ZlcnJlZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlY2lwaWVudH0gcmVjaXBpZW50IC0gcmVjaXBpZW50IHRvIHRyYW5zZmVyIGNvbnNpc3RpbmcgZGVzdGluYXRpb24gYWRkcmVzcyBhbmQgYW1vdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IC0gVGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKHJlY2lwaWVudC5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2lwaWVudHMucHVzaChyZWNpcGllbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyByZWNpcGllbnRzJyk7XG4gICAgfVxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { PrivateKey } from '@hashgraph/sdk';
2
- import * as proto from '@hashgraph/proto';
2
+ import { proto } from '@hashgraph/proto';
3
3
  import { AddressDetails } from './iface';
4
4
  import { toHex, toUint8Array } from '@bitgo-beta/sdk-core';
5
5
  import { BaseCoin } from '@bitgo-beta/statics';
@@ -190,4 +190,21 @@ export declare function getHederaTokenNameFromId(tokenId: string): Readonly<Base
190
190
  * @returns {boolean} true is input is a valid token transfer transaction
191
191
  */
192
192
  export declare function isTokenTransfer(transferTxBody: proto.ICryptoTransferTransactionBody | null): boolean;
193
+ /** validates a startTime string to be a valid timestamp and in the future
194
+ * @param {string} startTime - The startTime to be validated
195
+ * @throws {Error} - if startTime is not a valid timestamp or is in the past
196
+ * @returns {void}
197
+ * */
198
+ export declare function validateStartTime(startTime: string): void;
199
+ export declare function normalizeStarttime(startTime: string): string;
200
+ /**
201
+ * Await for a given amount of time in milliseconds
202
+ * @param ms - The amount of time to wait in milliseconds
203
+ * @returns {Promise<void>} - A promise that resolves after the given amount of time
204
+ */
205
+ export declare function sleep(ms: number): Promise<void>;
206
+ /**
207
+ * Check if the startTime is within the broadcast window (5 seconds after and 175 seconds after the startTime)
208
+ */
209
+ export declare function shouldBroadcastNow(startTime: string): boolean;
193
210
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -22,10 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
27
  };
24
28
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.isTokenTransfer = exports.getHederaTokenNameFromId = exports.getHederaTokenIdFromName = exports.isValidHederaTokenID = exports.buildHederaAccountID = exports.buildHederaTokenID = exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.getBaseAddress = exports.isSameBaseAddress = exports.convertFromStellarPub = exports.createRawKey = exports.isValidMemo = exports.removePrefix = exports.stringifyTxTime = exports.stringifyTokenId = exports.stringifyAccountId = exports.isValidRawTransactionFormat = exports.isValidAmount = exports.isValidTimeString = exports.getCurrentTime = exports.isNodeEnvironment = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = exports.toUint8Array = exports.toHex = void 0;
29
+ exports.shouldBroadcastNow = exports.sleep = exports.normalizeStarttime = exports.validateStartTime = exports.isTokenTransfer = exports.getHederaTokenNameFromId = exports.getHederaTokenIdFromName = exports.isValidHederaTokenID = exports.buildHederaAccountID = exports.buildHederaTokenID = exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.getBaseAddress = exports.isSameBaseAddress = exports.convertFromStellarPub = exports.createRawKey = exports.isValidMemo = exports.removePrefix = exports.stringifyTxTime = exports.stringifyTokenId = exports.stringifyAccountId = exports.isValidRawTransactionFormat = exports.isValidAmount = exports.isValidTimeString = exports.getCurrentTime = exports.isNodeEnvironment = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = exports.toUint8Array = exports.toHex = void 0;
26
30
  const _ = __importStar(require("lodash"));
27
31
  const sdk_1 = require("@hashgraph/sdk");
28
- const proto = __importStar(require("@hashgraph/proto"));
32
+ const proto_1 = require("@hashgraph/proto");
29
33
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
30
34
  const stellar = __importStar(require("stellar-sdk"));
31
35
  const url_1 = __importDefault(require("url"));
@@ -43,11 +47,15 @@ const MAX_TINYBARS_AMOUNT = new bignumber_js_1.default(2).pow(63).minus(1);
43
47
  * @returns {boolean} - The validation result
44
48
  */
45
49
  function isValidAddress(address) {
46
- if (_.isEmpty(address) || !address.match(/^\d+(?:(?=\.)(\.\d+){2}|(?!\.))$/)) {
50
+ const addressArray = address.split('?memoId=');
51
+ if (_.isEmpty(address) ||
52
+ ![1, 2].includes(addressArray.length) ||
53
+ !addressArray[0].match(/^\d+(?:(?=\.)(\.\d+){2}|(?!\.))$/) ||
54
+ (addressArray[1] && !isValidMemo(addressArray[1]))) {
47
55
  return false;
48
56
  }
49
57
  try {
50
- const acc = sdk_1.AccountId.fromString(address);
58
+ const acc = sdk_1.AccountId.fromString(addressArray[0]);
51
59
  return !_.isNaN(acc.num);
52
60
  }
53
61
  catch (e) {
@@ -332,7 +340,7 @@ exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
332
340
  */
333
341
  function buildHederaTokenID(tokenID) {
334
342
  const tokenData = sdk_1.TokenId.fromString(tokenID);
335
- return new proto.TokenID({
343
+ return new proto_1.proto.TokenID({
336
344
  tokenNum: tokenData.num,
337
345
  realmNum: tokenData.realm,
338
346
  shardNum: tokenData.shard,
@@ -347,7 +355,7 @@ exports.buildHederaTokenID = buildHederaTokenID;
347
355
  */
348
356
  function buildHederaAccountID(accountID) {
349
357
  const accountId = sdk_1.AccountId.fromString(accountID);
350
- return new proto.AccountID({
358
+ return new proto_1.proto.AccountID({
351
359
  shardNum: accountId.shard,
352
360
  realmNum: accountId.realm,
353
361
  accountNum: accountId.num,
@@ -407,4 +415,57 @@ function isTokenTransfer(transferTxBody) {
407
415
  return !!transferTxBody && !!transferTxBody.tokenTransfers && transferTxBody.tokenTransfers.length > 0;
408
416
  }
409
417
  exports.isTokenTransfer = isTokenTransfer;
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBNEI7QUFDNUIsd0NBQTBGO0FBQzFGLHdEQUEwQztBQUMxQyxnRUFBcUM7QUFDckMscURBQXVDO0FBRXZDLDhDQUFzQjtBQUN0QixtREFBdUU7QUFFOUQsc0ZBRkEsZ0JBQUssT0FFQTtBQUFFLDZGQUZBLHVCQUFZLE9BRUE7QUFENUIsaURBQW1FO0FBR25FLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRTtRQUM1RSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLE1BQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzFCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVZELHdDQVVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxJQUFZO0lBQy9DLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLE1BQU0sRUFBRSxHQUFHLG1CQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBYkQsb0RBYUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEdBQVc7SUFDMUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsZUFBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNwQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFWRCw0Q0FVQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUI7SUFDL0IsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7QUFDeEYsQ0FBQztBQUZELDhDQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWM7SUFDNUIsSUFBSSxpQkFBaUIsRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMzQjtTQUFNO1FBQ0wsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hFO0FBQ0gsQ0FBQztBQVJELHdDQVFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCw4Q0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE1BQWM7SUFDMUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FDTCxlQUFlLENBQUMsU0FBUyxFQUFFO1FBQzNCLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDekMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQ3pELENBQUM7QUFDSixDQUFDO0FBUEQsc0NBT0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLGNBQW1CO0lBQzdELE1BQU0sY0FBYyxHQUFHLE9BQU8sY0FBYyxLQUFLLFFBQVEsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFM0YsT0FBTyxjQUFjLElBQUksYUFBYSxDQUFDO0FBQ3pDLENBQUM7QUFMRCxrRUFLQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBb0I7SUFDckYsT0FBTyxHQUFHLFFBQVEsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztBQUMzRCxDQUFDO0FBRkQsZ0RBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWtCO0lBQy9FLE9BQU8sR0FBRyxRQUFRLElBQUksQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7QUFDekQsQ0FBQztBQUZELDRDQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFvQjtJQUNsRSxPQUFPLEdBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFGRCwwQ0FFQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFlBQVksQ0FBQyxNQUFjLEVBQUUsR0FBVztJQUN0RCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNqQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUxELG9DQUtDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFGRCxrQ0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEdBQVc7SUFDdEMsT0FBTyxnQkFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRkQsb0NBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFVBQWtCO0lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUM3QztJQUVELE1BQU0sTUFBTSxHQUFXLE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekUsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFQRCxzREFPQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxXQUFtQjtJQUNwRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekMsTUFBTSxJQUFJLHFCQUFVLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUxELDhDQUtDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7QUFDaEMsQ0FBQztBQUhELHdDQUdDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxVQUFrQjtJQUNsRCxNQUFNLGNBQWMsR0FBRyxhQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xHLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxRQUFrQixDQUFDO0lBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxJQUFJLHFCQUFVLENBQUMsb0JBQW9CLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FDeEQ7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFO1FBQzlCLE9BQU87WUFDTCxPQUFPLEVBQUUsVUFBVTtZQUNuQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDO0tBQ0g7SUFFRCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ3hELHVGQUF1RjtRQUN2RixNQUFNLElBQUkscUJBQVUsQ0FBQyxpQ0FBaUMsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUNyRTtJQUNELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFXLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QixNQUFNLElBQUkscUJBQVUsQ0FBQyxxQkFBcUIsVUFBVSx3QkFBd0IsQ0FBQyxDQUFDO0tBQy9FO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQTdCRCw4Q0E2QkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBa0I7SUFDbEUsSUFBSSxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pDLE9BQU8sR0FBRyxPQUFPLFdBQVcsTUFBTSxFQUFFLENBQUM7S0FDdEM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBTEQsNENBS0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLE9BQWU7SUFDekQsSUFBSTtRQUNGLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sT0FBTyxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ3JEO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVBELGtFQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFlO0lBQ2hELE1BQU0sU0FBUyxHQUFHLGFBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDdkIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSztRQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUs7S0FDMUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVBELGdEQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxTQUFpQjtJQUNwRCxNQUFNLFNBQVMsR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3pCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSztRQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDekIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0tBQzFCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFQRCxvREFPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsT0FBZTtJQUNsRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNqRyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUV6RSxPQUFPLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQztBQUMzQyxDQUFDO0FBTEQsb0RBS0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLFNBQWlCO0lBQ3hELElBQUksZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLFlBQVkscUJBQVcsRUFBRTtZQUNqRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDdEI7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFURCw0REFTQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZTtJQUN0RCxNQUFNLFdBQVcsR0FBRyxlQUFLO1NBQ3RCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2YsT0FBTyxJQUFJLFlBQVkscUJBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztJQUNqRSxDQUFDLENBQUM7U0FDRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0lBRXRELE9BQU8sV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdELENBQUM7QUFSRCw0REFRQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLGNBQTJEO0lBQ3pGLE9BQU8sQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDekcsQ0FBQztBQUZELDBDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgKiBhcyBwcm90byBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIHN0ZWxsYXIgZnJvbSAnc3RlbGxhci1zZGsnO1xuaW1wb3J0IHsgQWRkcmVzc0RldGFpbHMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1cmwgZnJvbSAndXJsJztcbmltcG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXksIFV0aWxzRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgY29pbnMsIEhlZGVyYVRva2VuIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5leHBvcnQgeyB0b0hleCwgdG9VaW50OEFycmF5IH07XG5cbmNvbnN0IE1BWF9USU5ZQkFSU19BTU9VTlQgPSBuZXcgQmlnTnVtYmVyKDIpLnBvdyg2MykubWludXMoMSk7XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBIZWRlcmEgYWNjb3VudCBhZGRyZXNzXG4gKlxuICogSW4gYW55IGZvcm0sIGBzaGFyZGAgYW5kIGByZWFsbWAgYXJlIGFzc3VtZWQgdG8gYmUgMCBpZiBub3QgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChfLmlzRW1wdHkoYWRkcmVzcykgfHwgIWFkZHJlc3MubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGFjYyA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFkZHJlc3MpO1xuICAgIHJldHVybiAhXy5pc05hTihhY2MubnVtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHRyYW5zYWN0aW9uIGlkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR4SWQgLSBUaGUgdHJhbnNhY3Rpb24gaWQgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc0VtcHR5KHR4SWQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgdHggPSBUcmFuc2FjdGlvbklkLmZyb21TdHJpbmcodHhJZCk7XG4gICAgaWYgKF8uaXNOaWwodHguYWNjb3VudElkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIV8uaXNOYU4odHguYWNjb3VudElkLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gUmV0dXJucyB3aGV0aGVyIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBIZWRlcmEgcHVibGljIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgcHVibGljIGtleSB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc0VtcHR5KGtleSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBwdWJLZXkgPSBQdWJsaWNLZXkuZnJvbVN0cmluZyhrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgcmV0dXJuICFfLmlzTmFOKHB1YktleS50b1N0cmluZygpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG5vZGVKUy5wcm9jZXNzIGV4aXN0IGFuZCBpZiBhIG5vZGUgdmVyc2lvbiBpcyBkZWZpbmVkIHRvIGRldGVybWluZSBpZiB0aGlzIGlzIGFuIG5vZGVKUyBlbnZpcm9ubWVudFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlRW52aXJvbm1lbnQoKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZSAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBjdXJyZW50IHRpbWUgd2l0aCBuYW5vc2Vjb25kcyBwcmVjaXNpb25cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBjdXJyZW50IHRpbWUgaW4gc2Vjb25kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWUoKTogc3RyaW5nIHtcbiAgaWYgKGlzTm9kZUVudmlyb25tZW50KCkpIHtcbiAgICBjb25zdCBuYW5vcyA9IHByb2Nlc3MuaHJ0aW1lKClbMV07XG4gICAgY29uc3Qgc2Vjb25kcyA9IChEYXRlLm5vdygpICogMTAwMDAwMCArIG5hbm9zKSAvIDEwMDAwMDAwMDA7XG4gICAgcmV0dXJuIHNlY29uZHMudG9GaXhlZCg5KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBwZXJmb3JtYW5jZS5ub3coKSkudG9GaXhlZCg5KTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgdGltZXN0YW1wXG4gKlxuICogTmFub3NlY29uZHMgYXJlIG9wdGlvbmFsIGFuZCBjYW4gYmUgcGFzc2VkIGFmdGVyIGEgZG90LCBmb3IgZXhhbXBsZTogMTU5NTM3NDcyMy4zNTY5ODE2ODlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGltZSAtIFRoZSB0aW1lc3RhbXAgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RyaW5nKHRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGltZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnQgbnVtYmVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCAtIFRoZSBzdHJpbmcgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFtb3VudChhbW91bnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBiaWdOdW1iZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKGFtb3VudCk7XG4gIHJldHVybiAoXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMCkgJiZcbiAgICBiaWdOdW1iZXJBbW91bnQuaXNMZXNzVGhhbk9yRXF1YWxUbyhNQVhfVElOWUJBUlNfQU1PVU5UKVxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgcmF3IHRyYW5zYWN0aW9uIGFjY29tbW9kYXRlcyB0byBiaXRnbydzIHByZWZlcnJlZCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge2FueX0gcmF3VHJhbnNhY3Rpb24gLSBUaGUgcmF3IHRyYW5zYWN0aW9uIHRvIGJlIGNoZWNrZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgY29uc3QgaXNBbHBoYU51bWVyaWMgPSB0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnICYmIC9eW1xcZGEtZkEtRl0rJC8udGVzdChyYXdUcmFuc2FjdGlvbik7XG4gIGNvbnN0IGlzVmFsaWRCdWZmZXIgPSBCdWZmZXIuaXNCdWZmZXIocmF3VHJhbnNhY3Rpb24pICYmICEhVWludDhBcnJheS5mcm9tKHJhd1RyYW5zYWN0aW9uKTtcblxuICByZXR1cm4gaXNBbHBoYU51bWVyaWMgfHwgaXNWYWxpZEJ1ZmZlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JQWNjb3VudElEfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklBY2NvdW50SUR9IGFjY291bnRJZCAtIEFjY291bnQgaWQgdG8gYmUgY2FzdCB0byBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUge3Byb3RvLklBY2NvdW50SUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlBY2NvdW50SWQoeyBzaGFyZE51bSwgcmVhbG1OdW0sIGFjY291bnROdW0gfTogcHJvdG8uSUFjY291bnRJRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7YWNjb3VudE51bX1gO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4ge3Byb3RvLklUb2tlbklEfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUb2tlbklEfSAtIHRva2VuIGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JVG9rZW5JRH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVRva2VuSWQoeyBzaGFyZE51bSwgcmVhbG1OdW0sIHRva2VuTnVtIH06IHByb3RvLklUb2tlbklEKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3NoYXJkTnVtIHx8IDB9LiR7cmVhbG1OdW0gfHwgMH0uJHt0b2tlbk51bX1gO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4ge3Byb3RvLklUaW1lc3RhbXB9IG9iamVjdFxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSVRpbWVzdGFtcH0gdGltZXN0YW1wIC0gVGltZXN0YW1wIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JVGltZXN0YW1wfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5VHhUaW1lKHsgc2Vjb25kcywgbmFub3MgfTogcHJvdG8uSVRpbWVzdGFtcCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWNvbmRzfS4ke25hbm9zfWA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBzcGVjaWZpZWQgcHJlZml4IGZyb20gYSBzdHJpbmcgb25seSBpZiBpdCBzdGFydHMgd2l0aCB0aGF0IHByZWZpeFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXggLSBUaGUgcHJlZml4IHRvIGJlIHJlbW92ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgb3JpZ2luYWwgc3RyaW5nLCB1c3VhbGx5IGEgcHJpdmF0ZSBvciBwdWJsaWMga2V5XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgd2l0aG91dCBwcmVmaXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVByZWZpeChwcmVmaXg6IHN0cmluZywga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoa2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgIHJldHVybiBrZXkuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGtleTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgbWVtb1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZW1vKG1lbW86IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gIShfLmlzRW1wdHkobWVtbykgfHwgQnVmZmVyLmZyb20obWVtbykubGVuZ3RoID4gMTAwKTtcbn1cblxuLyoqXG4gKiBVc2VzIHRoZSBuYXRpdmUgaGFzaGdyYXBoIFNESyBmdW5jdGlvbiB0byBnZXQgYSByYXcga2V5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgLSBQcml2YXRlIGtleVxuICogQHJldHVybnMge1ByaXZhdGVLZXl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSYXdLZXkocHJ2OiBzdHJpbmcpOiBQcml2YXRlS2V5IHtcbiAgcmV0dXJuIFByaXZhdGVLZXkuZnJvbVN0cmluZyhwcnYpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RlbGxhciBwdWJsaWMga2V5IHRvIGVkMjU1MTkgaGV4IGZvcm1hdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdGVsbGFyUHViXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZyb21TdGVsbGFyUHViKHN0ZWxsYXJQdWI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoc3RlbGxhclB1YikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIHN0ZWxsYXIgcHViLicpO1xuICB9XG5cbiAgY29uc3QgcmF3S2V5OiBCdWZmZXIgPSBzdGVsbGFyLlN0cktleS5kZWNvZGVFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpO1xuICByZXR1cm4gcmF3S2V5LnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdHdvIGFkZHJlc3NlcyBoYXZlIHRoZSBzYW1lIGJhc2UgYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhZGRyZXNzXG4gKiBAcGFyYW0ge1N0cmluZ30gYmFzZUFkZHJlc3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lQmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBiYXNlQWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIHJldHVybiBnZXRCYXNlQWRkcmVzcyhhZGRyZXNzKSA9PT0gZ2V0QmFzZUFkZHJlc3MoYmFzZUFkZHJlc3MpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGJhc2UgYWRkcmVzcyBwb3J0aW9uIG9mIGFuIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzc1xuICogQHJldHVybnMge1N0cmluZ30gLSB0aGUgYmFzZSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICByZXR1cm4gYWRkcmVzc0RldGFpbHMuYWRkcmVzcztcbn1cblxuLyoqXG4gKiBQcm9jZXNzIGFkZHJlc3MgaW50byBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJhd0FkZHJlc3NcbiAqIEByZXR1cm5zIHtBZGRyZXNzRGV0YWlsc30gLSBvYmplY3QgY29udGFpbmluZyBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzRGV0YWlscyhyYXdBZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzRGV0YWlscyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gdXJsLnBhcnNlKHJhd0FkZHJlc3MpO1xuICBjb25zdCBxdWVyeURldGFpbHMgPSBhZGRyZXNzRGV0YWlscy5xdWVyeSA/IG5ldyBVUkxTZWFyY2hQYXJhbXMoYWRkcmVzc0RldGFpbHMucXVlcnkpIDogdW5kZWZpbmVkO1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IGFkZHJlc3NEZXRhaWxzLnBhdGhuYW1lIGFzIHN0cmluZztcbiAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhiYXNlQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke3Jhd0FkZHJlc3N9YCk7XG4gIH1cblxuICAvLyBhZGRyZXNzIGRvZXNuJ3QgaGF2ZSBhIG1lbW8gaWQgb3IgbWVtb0lkIGlzIGVtcHR5XG4gIGlmIChiYXNlQWRkcmVzcyA9PT0gcmF3QWRkcmVzcykge1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiByYXdBZGRyZXNzLFxuICAgICAgbWVtb0lkOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGlmICghcXVlcnlEZXRhaWxzIHx8IF8uaXNOaWwocXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykpKSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG1vcmUgcHJvcGVydGllcywgdGhlIHF1ZXJ5IGRldGFpbHMgbmVlZCB0byBjb250YWluIHRoZSBtZW1vIGlkIHByb3BlcnR5XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWQ6ICR7cmF3QWRkcmVzc31gKTtcbiAgfVxuICBjb25zdCBtZW1vSWQgPSBxdWVyeURldGFpbHMuZ2V0KCdtZW1vSWQnKSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZE1lbW8obWVtb0lkKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICcke3Jhd0FkZHJlc3N9JywgbWVtb0lkIGlzIG5vdCB2YWxpZGApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiBiYXNlQWRkcmVzcyxcbiAgICBtZW1vSWQsXG4gIH07XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHJldHVybiBhZGRyZXNzIHdpdGggYXBwZW5kZWQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7QWRkcmVzc0RldGFpbHN9IGFkZHJlc3NEZXRhaWxzIC0gQWRkcmVzcyB3aGljaCB0byBhcHBlbmQgbWVtbyBpZFxuICogQHJldHVybnMge3N0cmluZ30gLSBBZGRyZXNzIHdpdGggYXBwZW5kZWQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3MsIG1lbW9JZCB9OiBBZGRyZXNzRGV0YWlscyk6IHN0cmluZyB7XG4gIGlmIChtZW1vSWQgJiYgaXNWYWxpZE1lbW8obWVtb0lkKSkge1xuICAgIHJldHVybiBgJHthZGRyZXNzfT9tZW1vSWQ9JHttZW1vSWR9YDtcbiAgfVxuICByZXR1cm4gYWRkcmVzcztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCBhZGRyZXNzIHdpdGggbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gQWRkcmVzcyBpbiB0aGUgZm9ybSA8YWRkcmVzcz4/bWVtb0lkPTxtZW1vSWQ+XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gICAgcmV0dXJuIGFkZHJlc3MgPT09IG5vcm1hbGl6ZUFkZHJlc3MoYWRkcmVzc0RldGFpbHMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgaGVkZXJhIHtwcm90by5Ub2tlbklEfSBvYmplY3QgZnJvbSB0b2tlbiBJRCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5JRCAtIFRoZSB0b2tlbiBJRCB0byBidWlsZFxuICogQHJldHVybnMge3Byb3RvLlRva2VuSUR9IC0gVGhlIHJlc3VsdGluZyBwcm90byBUb2tlbklEIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRIZWRlcmFUb2tlbklEKHRva2VuSUQ6IHN0cmluZyk6IHByb3RvLlRva2VuSUQge1xuICBjb25zdCB0b2tlbkRhdGEgPSBUb2tlbklkLmZyb21TdHJpbmcodG9rZW5JRCk7XG4gIHJldHVybiBuZXcgcHJvdG8uVG9rZW5JRCh7XG4gICAgdG9rZW5OdW06IHRva2VuRGF0YS5udW0sXG4gICAgcmVhbG1OdW06IHRva2VuRGF0YS5yZWFsbSxcbiAgICBzaGFyZE51bTogdG9rZW5EYXRhLnNoYXJkLFxuICB9KTtcbn1cblxuLyoqXG4gKiBCdWlsZCBoZWRlcmEge3Byb3RvLkFjY291bnRJRH0gb2JqZWN0IGZyb20gYWNjb3VudCBJRCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElEIC0gVGhlIGFjY291bnQgSUQgdG8gYnVpbGRcbiAqIEByZXR1cm5zIHtwcm90b30gLSBUaGUgcmVzdWx0aW5nIHByb3RvIEFjY291bnRJRCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVkZXJhQWNjb3VudElEKGFjY291bnRJRDogc3RyaW5nKTogcHJvdG8uQWNjb3VudElEIHtcbiAgY29uc3QgYWNjb3VudElkID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWNjb3VudElEKTtcbiAgcmV0dXJuIG5ldyBwcm90by5BY2NvdW50SUQoe1xuICAgIHNoYXJkTnVtOiBhY2NvdW50SWQuc2hhcmQsXG4gICAgcmVhbG1OdW06IGFjY291bnRJZC5yZWFsbSxcbiAgICBhY2NvdW50TnVtOiBhY2NvdW50SWQubnVtLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBIZWRlcmEgdG9rZW4gSUQgaXMgdmFsaWQgYW5kIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbklkIC0gVGhlIHRva2VuIElEIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHRva2VuSWQgaXMgdmFsaWQgYW5kIHN1cHBvcnRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEhlZGVyYVRva2VuSUQodG9rZW5JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzRm9ybWF0VmFsaWQgPSAhXy5pc0VtcHR5KHRva2VuSWQpICYmICEhdG9rZW5JZC5tYXRjaCgvXlxcZCsoPzooPz1cXC4pKFxcLlxcZCspezJ9fCg/IVxcLikpJC8pO1xuICBjb25zdCBpc1Rva2VuU3VwcG9ydGVkID0gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHRva2VuSWQpICE9PSB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIGlzRm9ybWF0VmFsaWQgJiYgaXNUb2tlblN1cHBvcnRlZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGFzc29jaWF0ZWQgaGVkZXJhIHRva2VuIElEIGZyb20gdG9rZW4gbmFtZSwgaWYgc3VwcG9ydGVkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRva2VuTmFtZSAtIFRoZSBoZWRlcmEgdG9rZW4gbmFtZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIGFzc29jaWF0ZWQgdG9rZW4gSUQgb3IgdW5kZWZpbmVkIGlmIG5vdCBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlZGVyYVRva2VuSWRGcm9tTmFtZSh0b2tlbk5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChjb2lucy5oYXModG9rZW5OYW1lKSkge1xuICAgIGNvbnN0IHRva2VuID0gY29pbnMuZ2V0KHRva2VuTmFtZSk7XG4gICAgaWYgKHRva2VuLmlzVG9rZW4gJiYgdG9rZW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbikge1xuICAgICAgcmV0dXJuIHRva2VuLnRva2VuSWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGFzc29jaWF0ZWQgaGVkZXJhIHRva2VuIGZyb20gdG9rZW4gSUQsIGlmIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB0b2tlbklkIC0gVGhlIHRva2VuIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtCYXNlQ29pbn0gLSBCYXNlQ29pbiBvYmplY3QgZm9yIHRoZSBtYXRjaGluZyB0b2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHRva2VuSWQ6IHN0cmluZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRva2Vuc0FycmF5ID0gY29pbnNcbiAgICAuZmlsdGVyKChjb2luKSA9PiB7XG4gICAgICByZXR1cm4gY29pbiBpbnN0YW5jZW9mIEhlZGVyYVRva2VuICYmIGNvaW4udG9rZW5JZCA9PT0gdG9rZW5JZDtcbiAgICB9KVxuICAgIC5tYXAoKHRva2VuKSA9PiB0b2tlbik7IC8vIGZsYXR0ZW4gY29pbiBtYXAgdG8gYXJyYXlcblxuICByZXR1cm4gdG9rZW5zQXJyYXkubGVuZ3RoID4gMCA/IHRva2Vuc0FycmF5WzBdIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyBhIHZhbGlkIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gKlxuICogQHBhcmFtIHtwcm90by5JQ3J5cHRvVHJhbnNmZXJUcmFuc2FjdGlvbkJvZHkgfCBudWxsfSB0cmFuc2ZlclR4Qm9keSBpcyBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uIGJvZHlcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlzIGlucHV0IGlzIGEgdmFsaWQgdG9rZW4gdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVG9rZW5UcmFuc2Zlcih0cmFuc2ZlclR4Qm9keTogcHJvdG8uSUNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5IHwgbnVsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISF0cmFuc2ZlclR4Qm9keSAmJiAhIXRyYW5zZmVyVHhCb2R5LnRva2VuVHJhbnNmZXJzICYmIHRyYW5zZmVyVHhCb2R5LnRva2VuVHJhbnNmZXJzLmxlbmd0aCA+IDA7XG59XG4iXX0=
418
+ /** validates a startTime string to be a valid timestamp and in the future
419
+ * @param {string} startTime - The startTime to be validated
420
+ * @throws {Error} - if startTime is not a valid timestamp or is in the past
421
+ * @returns {void}
422
+ * */
423
+ function validateStartTime(startTime) {
424
+ if (!isValidTimeString(startTime)) {
425
+ throw new Error('invalid startTime, got: ' + startTime);
426
+ }
427
+ const currentTime = getCurrentTime();
428
+ const startTimeFixed = normalizeStarttime(startTime);
429
+ const result = new bignumber_js_1.default(startTimeFixed).isLessThanOrEqualTo(currentTime);
430
+ if (result) {
431
+ throw new Error('startTime must be a future timestamp, got: ' + startTime);
432
+ }
433
+ }
434
+ exports.validateStartTime = validateStartTime;
435
+ function normalizeStarttime(startTime) {
436
+ return new bignumber_js_1.default(startTime).toFixed(9);
437
+ }
438
+ exports.normalizeStarttime = normalizeStarttime;
439
+ /**
440
+ * Await for a given amount of time in milliseconds
441
+ * @param ms - The amount of time to wait in milliseconds
442
+ * @returns {Promise<void>} - A promise that resolves after the given amount of time
443
+ */
444
+ function sleep(ms) {
445
+ console.log(`sleeping for ${ms} ms`);
446
+ return new Promise((resolve) => setTimeout(resolve, ms));
447
+ }
448
+ exports.sleep = sleep;
449
+ /**
450
+ * Check if the startTime is within the broadcast window (5 seconds after and 175 seconds after the startTime)
451
+ */
452
+ function shouldBroadcastNow(startTime) {
453
+ const startTimeFixed = normalizeStarttime(startTime);
454
+ const currentTime = getCurrentTime();
455
+ // startTime plus 5 seconds
456
+ const startingTimeWindow = new bignumber_js_1.default(startTimeFixed).plus(5).toFixed(9);
457
+ // startTime plus 170 seconds
458
+ const endingTimeWindow = new bignumber_js_1.default(startTimeFixed).plus(175).toFixed(9);
459
+ if (new bignumber_js_1.default(currentTime).isGreaterThan(endingTimeWindow)) {
460
+ throw new Error('startTime window expired, got: ' +
461
+ startTimeFixed +
462
+ ' - currentTime: ' +
463
+ currentTime +
464
+ ' - endingTimeWindow ' +
465
+ endingTimeWindow);
466
+ }
467
+ return (new bignumber_js_1.default(currentTime).isGreaterThanOrEqualTo(startingTimeWindow) &&
468
+ new bignumber_js_1.default(currentTime).isLessThanOrEqualTo(endingTimeWindow));
469
+ }
470
+ exports.shouldBroadcastNow = shouldBroadcastNow;
471
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLHdDQUEwRjtBQUMxRiw0Q0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLHFEQUF1QztBQUV2Qyw4Q0FBc0I7QUFDdEIsbURBQXVFO0FBRTlELHNGQUZBLGdCQUFLLE9BRUE7QUFBRSw2RkFGQSx1QkFBWSxPQUVBO0FBRDVCLGlEQUFtRTtBQUduRSxNQUFNLG1CQUFtQixHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7UUFDMUQsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEQ7UUFDQSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSTtRQUNGLE1BQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdB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QWdCLGtCQUFrQixDQUFDLFNBQWlCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLDJCQUEyQjtJQUMzQixNQUFNLGtCQUFrQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLDZCQUE2QjtJQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLElBQUksSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUNBQWlDO1lBQy9CLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixnQkFBZ0IsQ0FDbkIsQ0FBQztLQUNIO0lBRUQsT0FBTyxDQUNMLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQztRQUNyRSxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FDakUsQ0FBQztBQUNKLENBQUM7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgdG9IZXgsIHRvVWludDhBcnJheSwgVXRpbHNFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBjb2lucywgSGVkZXJhVG9rZW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmV4cG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXkgfTtcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYWRkcmVzc0FycmF5ID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcblxuICBpZiAoXG4gICAgXy5pc0VtcHR5KGFkZHJlc3MpIHx8XG4gICAgIVsxLCAyXS5pbmNsdWRlcyhhZGRyZXNzQXJyYXkubGVuZ3RoKSB8fFxuICAgICFhZGRyZXNzQXJyYXlbMF0ubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSB8fFxuICAgIChhZGRyZXNzQXJyYXlbMV0gJiYgIWlzVmFsaWRNZW1vKGFkZHJlc3NBcnJheVsxXSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzc0FycmF5WzBdKTtcbiAgICByZXR1cm4gIV8uaXNOYU4oYWNjLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eSh0eElkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb25JZC5mcm9tU3RyaW5nKHR4SWQpO1xuICAgIGlmIChfLmlzTmlsKHR4LmFjY291bnRJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFfLmlzTmFOKHR4LmFjY291bnRJZC5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHRpbWVzdGFtcFxuICpcbiAqIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yIGV4YW1wbGU6IDE1OTUzNzQ3MjMuMzU2OTgxNjg5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZXN0YW1wIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gKFxuICAgIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oTUFYX1RJTllCQVJTX0FNT1VOVClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHJhdyB0cmFuc2FjdGlvbiBhY2NvbW1vZGF0ZXMgdG8gYml0Z28ncyBwcmVmZXJyZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIC0gVGhlIHJhdyB0cmFuc2FjdGlvbiB0byBiZSBjaGVja2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljID0gdHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXltcXGRhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pO1xuICBjb25zdCBpc1ZhbGlkQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyKHJhd1RyYW5zYWN0aW9uKSAmJiAhIVVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbik7XG5cbiAgcmV0dXJuIGlzQWxwaGFOdW1lcmljIHx8IGlzVmFsaWRCdWZmZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSUFjY291bnRJRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JQWNjb3VudElEfSBhY2NvdW50SWQgLSBBY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVG9rZW5JRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVG9rZW5JRH0gLSB0b2tlbiBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRva2VuSUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbklkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCB0b2tlbk51bSB9OiBwcm90by5JVG9rZW5JRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7dG9rZW5OdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IHRpbWVzdGFtcCAtIFRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IC0gVGhlIHByZWZpeCB0byBiZSByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtb1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCk7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gUHJpdmF0ZSBrZXlcbiAqIEByZXR1cm5zIHtQcml2YXRlS2V5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmF3S2V5KHBydjogc3RyaW5nKTogUHJpdmF0ZUtleSB7XG4gIHJldHVybiBQcml2YXRlS2V5LmZyb21TdHJpbmcocHJ2KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0ZWxsYXIgcHVibGljIGtleSB0byBlZDI1NTE5IGhleCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RlbGxhclB1YlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tU3RlbGxhclB1YihzdGVsbGFyUHViOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBzdGVsbGFyIHB1Yi4nKTtcbiAgfVxuXG4gIGNvbnN0IHJhd0tleTogQnVmZmVyID0gc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVB1YmxpY0tleShzdGVsbGFyUHViKTtcbiAgcmV0dXJuIHJhd0tleS50b1N0cmluZygnaGV4Jyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHR3byBhZGRyZXNzZXMgaGF2ZSB0aGUgc2FtZSBiYXNlIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3MgcG9ydGlvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogUHJvY2VzcyBhZGRyZXNzIGludG8gYWRkcmVzcyBhbmQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdBZGRyZXNzXG4gKiBAcmV0dXJucyB7QWRkcmVzc0RldGFpbHN9IC0gb2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcyBhbmQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0RldGFpbHMocmF3QWRkcmVzczogc3RyaW5nKTogQWRkcmVzc0RldGFpbHMge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IHVybC5wYXJzZShyYXdBZGRyZXNzKTtcbiAgY29uc3QgcXVlcnlEZXRhaWxzID0gYWRkcmVzc0RldGFpbHMucXVlcnkgPyBuZXcgVVJMU2VhcmNoUGFyYW1zKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBhZGRyZXNzRGV0YWlscy5wYXRobmFtZSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHtyYXdBZGRyZXNzfWApO1xuICB9XG5cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkIG9yIG1lbW9JZCBpcyBlbXB0eVxuICBpZiAoYmFzZUFkZHJlc3MgPT09IHJhd0FkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmF3QWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoIXF1ZXJ5RGV0YWlscyB8fCBfLmlzTmlsKHF1ZXJ5RGV0YWlscy5nZXQoJ21lbW9JZCcpKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke3Jhd0FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gcXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykgYXMgc3RyaW5nO1xuICBpZiAoIWlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAnJHtyYXdBZGRyZXNzfScsIG1lbW9JZCBpcyBub3QgdmFsaWRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlscyAtIEFkZHJlc3Mgd2hpY2ggdG8gYXBwZW5kIG1lbW8gaWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAobWVtb0lkICYmIGlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIEFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiBpbnB1dCBpcyBhIHZhbGlkIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgIHJldHVybiBhZGRyZXNzID09PSBub3JtYWxpemVBZGRyZXNzKGFkZHJlc3NEZXRhaWxzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGhlZGVyYSB7cHJvdG8uVG9rZW5JRH0gb2JqZWN0IGZyb20gdG9rZW4gSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRva2VuSUQgLSBUaGUgdG9rZW4gSUQgdG8gYnVpbGRcbiAqIEByZXR1cm5zIHtwcm90by5Ub2tlbklEfSAtIFRoZSByZXN1bHRpbmcgcHJvdG8gVG9rZW5JRCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVkZXJhVG9rZW5JRCh0b2tlbklEOiBzdHJpbmcpOiBwcm90by5Ub2tlbklEIHtcbiAgY29uc3QgdG9rZW5EYXRhID0gVG9rZW5JZC5mcm9tU3RyaW5nKHRva2VuSUQpO1xuICByZXR1cm4gbmV3IHByb3RvLlRva2VuSUQoe1xuICAgIHRva2VuTnVtOiB0b2tlbkRhdGEubnVtLFxuICAgIHJlYWxtTnVtOiB0b2tlbkRhdGEucmVhbG0sXG4gICAgc2hhcmROdW06IHRva2VuRGF0YS5zaGFyZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGQgaGVkZXJhIHtwcm90by5BY2NvdW50SUR9IG9iamVjdCBmcm9tIGFjY291bnQgSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJRCAtIFRoZSBhY2NvdW50IElEIHRvIGJ1aWxkXG4gKiBAcmV0dXJucyB7cHJvdG99IC0gVGhlIHJlc3VsdGluZyBwcm90byBBY2NvdW50SUQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhlZGVyYUFjY291bnRJRChhY2NvdW50SUQ6IHN0cmluZyk6IHByb3RvLkFjY291bnRJRCB7XG4gIGNvbnN0IGFjY291bnRJZCA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFjY291bnRJRCk7XG4gIHJldHVybiBuZXcgcHJvdG8uQWNjb3VudElEKHtcbiAgICBzaGFyZE51bTogYWNjb3VudElkLnNoYXJkLFxuICAgIHJlYWxtTnVtOiBhY2NvdW50SWQucmVhbG0sXG4gICAgYWNjb3VudE51bTogYWNjb3VudElkLm51bSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgSGVkZXJhIHRva2VuIElEIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5JZCAtIFRoZSB0b2tlbiBJRCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB0b2tlbklkIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRIZWRlcmFUb2tlbklEKHRva2VuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0Zvcm1hdFZhbGlkID0gIV8uaXNFbXB0eSh0b2tlbklkKSAmJiAhIXRva2VuSWQubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKTtcbiAgY29uc3QgaXNUb2tlblN1cHBvcnRlZCA9IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkKSAhPT0gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBpc0Zvcm1hdFZhbGlkICYmIGlzVG9rZW5TdXBwb3J0ZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBJRCBmcm9tIHRva2VuIG5hbWUsIGlmIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUgLSBUaGUgaGVkZXJhIHRva2VuIG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSBhc3NvY2lhdGVkIHRva2VuIElEIG9yIHVuZGVmaW5lZCBpZiBub3Qgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodG9rZW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoY29pbnMuaGFzKHRva2VuTmFtZSkpIHtcbiAgICBjb25zdCB0b2tlbiA9IGNvaW5zLmdldCh0b2tlbk5hbWUpO1xuICAgIGlmICh0b2tlbi5pc1Rva2VuICYmIHRva2VuIGluc3RhbmNlb2YgSGVkZXJhVG9rZW4pIHtcbiAgICAgIHJldHVybiB0b2tlbi50b2tlbklkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBmcm9tIHRva2VuIElELCBpZiBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0gdG9rZW5JZCAtIFRoZSB0b2tlbiBhZGRyZXNzXG4gKiBAcmV0dXJucyB7QmFzZUNvaW59IC0gQmFzZUNvaW4gb2JqZWN0IGZvciB0aGUgbWF0Y2hpbmcgdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkOiBzdHJpbmcpOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnNBcnJheSA9IGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbiAmJiBjb2luLnRva2VuSWQgPT09IHRva2VuSWQ7XG4gICAgfSlcbiAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4pOyAvLyBmbGF0dGVuIGNvaW4gbWFwIHRvIGFycmF5XG5cbiAgcmV0dXJuIHRva2Vuc0FycmF5Lmxlbmd0aCA+IDAgPyB0b2tlbnNBcnJheVswXSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSUNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5IHwgbnVsbH0gdHJhbnNmZXJUeEJvZHkgaXMgYSB0cmFuc2ZlciB0cmFuc2FjdGlvbiBib2R5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpcyBpbnB1dCBpcyBhIHZhbGlkIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rva2VuVHJhbnNmZXIodHJhbnNmZXJUeEJvZHk6IHByb3RvLklDcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhdHJhbnNmZXJUeEJvZHkgJiYgISF0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycyAmJiB0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycy5sZW5ndGggPiAwO1xufVxuXG4vKiogdmFsaWRhdGVzIGEgc3RhcnRUaW1lIHN0cmluZyB0byBiZSBhIHZhbGlkIHRpbWVzdGFtcCBhbmQgaW4gdGhlIGZ1dHVyZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0VGltZSAtIFRoZSBzdGFydFRpbWUgdG8gYmUgdmFsaWRhdGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBzdGFydFRpbWUgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIG9yIGlzIGluIHRoZSBwYXN0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGFydFRpbWUoc3RhcnRUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFpc1ZhbGlkVGltZVN0cmluZyhzdGFydFRpbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXJ0VGltZSwgZ290OiAnICsgc3RhcnRUaW1lKTtcbiAgfVxuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIGNvbnN0IHN0YXJ0VGltZUZpeGVkID0gbm9ybWFsaXplU3RhcnR0aW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBCaWdOdW1iZXIoc3RhcnRUaW1lRml4ZWQpLmlzTGVzc1RoYW5PckVxdWFsVG8oY3VycmVudFRpbWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzdGFydFRpbWUgbXVzdCBiZSBhIGZ1dHVyZSB0aW1lc3RhbXAsIGdvdDogJyArIHN0YXJ0VGltZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZSkudG9GaXhlZCg5KTtcbn1cblxuLyoqXG4gKiBBd2FpdCBmb3IgYSBnaXZlbiBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBtcyAtIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kc1xuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIGdpdmVuIGFtb3VudCBvZiB0aW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnNvbGUubG9nKGBzbGVlcGluZyBmb3IgJHttc30gbXNgKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHN0YXJ0VGltZSBpcyB3aXRoaW4gdGhlIGJyb2FkY2FzdCB3aW5kb3cgKDUgc2Vjb25kcyBhZnRlciBhbmQgMTc1IHNlY29uZHMgYWZ0ZXIgdGhlIHN0YXJ0VGltZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEJyb2FkY2FzdE5vdyhzdGFydFRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzdGFydFRpbWVGaXhlZCA9IG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWUpO1xuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDUgc2Vjb25kc1xuICBjb25zdCBzdGFydGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDUpLnRvRml4ZWQoOSk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDE3MCBzZWNvbmRzXG4gIGNvbnN0IGVuZGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDE3NSkudG9GaXhlZCg5KTtcblxuICBpZiAobmV3IEJpZ051bWJlcihjdXJyZW50VGltZSkuaXNHcmVhdGVyVGhhbihlbmRpbmdUaW1lV2luZG93KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdzdGFydFRpbWUgd2luZG93IGV4cGlyZWQsIGdvdDogJyArXG4gICAgICAgIHN0YXJ0VGltZUZpeGVkICtcbiAgICAgICAgJyAtIGN1cnJlbnRUaW1lOiAnICtcbiAgICAgICAgY3VycmVudFRpbWUgK1xuICAgICAgICAnIC0gZW5kaW5nVGltZVdpbmRvdyAnICtcbiAgICAgICAgZW5kaW5nVGltZVdpbmRvd1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oc3RhcnRpbmdUaW1lV2luZG93KSAmJlxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzTGVzc1RoYW5PckVxdWFsVG8oZW5kaW5nVGltZVdpbmRvdylcbiAgKTtcbn1cbiJdfQ==
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -21,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
26
  exports.WalletInitializationBuilder = void 0;
23
27
  const Long = __importStar(require("long"));
24
- const proto = __importStar(require("@hashgraph/proto"));
28
+ const proto_1 = require("@hashgraph/proto");
25
29
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
26
30
  const transactionBuilder_1 = require("./transactionBuilder");
27
31
  const utils_1 = require("./utils");
@@ -31,9 +35,9 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
31
35
  constructor(_coinConfig) {
32
36
  super(_coinConfig);
33
37
  this._owners = [];
34
- this._txBodyData = new proto.CryptoCreateTransactionBody();
38
+ this._txBodyData = new proto_1.proto.CryptoCreateTransactionBody();
35
39
  this._txBody.cryptoCreateAccount = this._txBodyData;
36
- this._txBodyData.autoRenewPeriod = new proto.Duration({ seconds: Long.fromNumber(7890000) });
40
+ this._txBodyData.autoRenewPeriod = new proto_1.proto.Duration({ seconds: Long.fromNumber(7890000) });
37
41
  }
38
42
  // region Base Builder
39
43
  /** @inheritdoc */
@@ -52,11 +56,11 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
52
56
  return this._owners.reduce((tKeys, key) => {
53
57
  if (tKeys.keys && tKeys.keys.keys) {
54
58
  tKeys.keys.keys.push({
55
- ed25519: utils_1.toUint8Array(new _1.KeyPair({ pub: key }).getKeys(rawKeys).pub),
59
+ ed25519: (0, utils_1.toUint8Array)(new _1.KeyPair({ pub: key }).getKeys(rawKeys).pub),
56
60
  });
57
61
  }
58
62
  return tKeys;
59
- }, new proto.ThresholdKey({ threshold: 2, keys: { keys: [] } }));
63
+ }, new proto_1.proto.ThresholdKey({ threshold: 2, keys: { keys: [] } }));
60
64
  }
61
65
  /** @inheritdoc */
62
66
  initBuilder(tx) {
@@ -69,7 +73,7 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
69
73
  initOwners(keys) {
70
74
  if (keys.keys && keys.keys.keys) {
71
75
  keys.keys.keys.forEach((key) => {
72
- this.owner(utils_1.toHex(key.ed25519));
76
+ this.owner((0, utils_1.toHex)(key.ed25519));
73
77
  });
74
78
  }
75
79
  }
@@ -85,7 +89,7 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
85
89
  if (this._owners.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
86
90
  throw new sdk_core_1.BuildTransactionError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' owners can be set for a multisig wallet');
87
91
  }
88
- if (!utils_1.isValidPublicKey(address)) {
92
+ if (!(0, utils_1.isValidPublicKey)(address)) {
89
93
  throw new sdk_core_1.BuildTransactionError('Invalid address: ' + address);
90
94
  }
91
95
  if (this._owners.includes(address)) {
@@ -107,4 +111,4 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
107
111
  }
108
112
  }
109
113
  exports.WalletInitializationBuilder = WalletInitializationBuilder;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJDQUE2QjtBQUM3Qix3REFBMEM7QUFDMUMsbURBQThFO0FBQzlFLDZEQUEwRDtBQUUxRCxtQ0FBZ0U7QUFDaEUseUJBQTZCO0FBQzdCLDJDQUFvRDtBQUVwRCxNQUFhLDJCQUE0QixTQUFRLHVDQUFrQjtJQUlqRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFJN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUUsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIs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bkgsQ0FBQztTQUNIO1FBQ0QsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUVGO0FBNUZELGtFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCAqIGFzIExvbmcgZnJvbSAnbG9uZyc7XG5pbXBvcnQgKiBhcyBwcm90byBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzVmFsaWRQdWJsaWNLZXksIHRvSGV4LCB0b1VpbnQ4QXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX293bmVyczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudCA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5hdXRvUmVuZXdQZXJpb2QgPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoNzg5MDAwMCkgfSk7XG4gIH1cblxuICAvLyByZWdpb24gQmFzZSBCdWlsZGVyXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5rZXkgPSB7IHRocmVzaG9sZEtleTogdGhpcy5idWlsZE93bmVyc0tleXMoKSB9O1xuICAgIHRoaXMuX3R4Qm9keURhdGEuaW5pdGlhbEJhbGFuY2UgPSBMb25nLlpFUk87XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3S2V5cyAtIERlZmluZXMgaWYgdGhlIG93bmVycyBrZXlzIGFyZSBvYnRhaW5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMge3Byb3RvLlRocmVzaG9sZEtleX0gLSBUaGUgd2FsbGV0IHRocmVzaG9sZCBrZXlzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkT3duZXJzS2V5cyhyYXdLZXlzID0gdHJ1ZSk6IHByb3RvLlRocmVzaG9sZEtleSB7XG4gICAgcmV0dXJuIHRoaXMuX293bmVycy5yZWR1Y2UoKHRLZXlzLCBrZXkpID0+IHtcbiAgICAgIGlmICh0S2V5cy5rZXlzICYmIHRLZXlzLmtleXMua2V5cykge1xuICAgICAgICB0S2V5cy5rZXlzLmtleXMucHVzaCh7XG4gICAgICAgICAgZWQyNTUxOTogdG9VaW50OEFycmF5KG5ldyBLZXlQYWlyKHsgcHViOiBrZXkgfSkuZ2V0S2V5cyhyYXdLZXlzKS5wdWIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0S2V5cztcbiAgICB9LCBuZXcgcHJvdG8uVGhyZXNob2xkS2V5KHsgdGhyZXNob2xkOiAyLCBrZXlzOiB7IGtleXM6IFtdIH0gfSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBjcmVhdGVBY2MgPSB0eC50eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudDtcbiAgICBpZiAoY3JlYXRlQWNjICYmIGNyZWF0ZUFjYy5rZXkgJiYgY3JlYXRlQWNjLmtleS50aHJlc2hvbGRLZXkpIHtcbiAgICAgIHRoaXMuaW5pdE93bmVycyhjcmVhdGVBY2Mua2V5LnRocmVzaG9sZEtleSBhcyBwcm90by5UaHJlc2hvbGRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE93bmVycyhrZXlzOiBwcm90by5UaHJlc2hvbGRLZXkpIHtcbiAgICBpZiAoa2V5cy5rZXlzICYmIGtleXMua2V5cy5rZXlzKSB7XG4gICAgICBrZXlzLmtleXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5vd25lcih0b0hleChrZXkuZWQyNTUxOSEpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gQ29tbW9uIGJ1aWxkZXIgbWV0aG9kc1xuICAvKipcbiAgICogU2V0IG9uZSBvZiB0aGUgb3duZXJzIG9mIHRoZSBtdWx0aXNpZyB3YWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIHB1YmxpYyBrZXkgb2YgdGhlIG93bmVyJ3MgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSAtIFRoaXMgd2FsbGV0IGluaXRpYWxpemF0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG93bmVyKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl9vd25lcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBvd25lcnMgY2FuIGJlIHNldCBmb3IgYSBtdWx0aXNpZyB3YWxsZXQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzczogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3duZXJzLmluY2x1ZGVzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCBvd25lciBhZGRyZXNzOiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVycy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vd25lcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB3YWxsZXQgb3duZXJzJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggIT09IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb246IHdyb25nIG51bWJlciBvZiBvd25lcnMgLS0gcmVxdWlyZWQ6ICR7REVGQVVMVF9TSUdORVJfTlVNQkVSfSwgZm91bmQ6ICR7dGhpcy5fb3duZXJzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwyQ0FBNkI7QUFDN0IsNENBQXlDO0FBQ3pDLG1EQUE4RTtBQUM5RSw2REFBMEQ7QUFFMUQsbUNBQWdFO0FBQ2hFLHlCQUE2QjtBQUM3QiwyQ0FBb0Q7QUFFcEQsTUFBYSwyQkFBNEIsU0FBUSx1Q0FBa0I7SUFJakUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBSTdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxhQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJB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LENBQUMsTUFBTSxFQUFFLENBQ25ILENBQUM7U0FDSDtRQUNELEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQTVGRCxrRUE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzVmFsaWRQdWJsaWNLZXksIHRvSGV4LCB0b1VpbnQ4QXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX293bmVyczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudCA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5hdXRvUmVuZXdQZXJpb2QgPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoNzg5MDAwMCkgfSk7XG4gIH1cblxuICAvLyByZWdpb24gQmFzZSBCdWlsZGVyXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5rZXkgPSB7IHRocmVzaG9sZEtleTogdGhpcy5idWlsZE93bmVyc0tleXMoKSB9O1xuICAgIHRoaXMuX3R4Qm9keURhdGEuaW5pdGlhbEJhbGFuY2UgPSBMb25nLlpFUk87XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3S2V5cyAtIERlZmluZXMgaWYgdGhlIG93bmVycyBrZXlzIGFyZSBvYnRhaW5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMge3Byb3RvLlRocmVzaG9sZEtleX0gLSBUaGUgd2FsbGV0IHRocmVzaG9sZCBrZXlzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkT3duZXJzS2V5cyhyYXdLZXlzID0gdHJ1ZSk6IHByb3RvLlRocmVzaG9sZEtleSB7XG4gICAgcmV0dXJuIHRoaXMuX293bmVycy5yZWR1Y2UoKHRLZXlzLCBrZXkpID0+IHtcbiAgICAgIGlmICh0S2V5cy5rZXlzICYmIHRLZXlzLmtleXMua2V5cykge1xuICAgICAgICB0S2V5cy5rZXlzLmtleXMucHVzaCh7XG4gICAgICAgICAgZWQyNTUxOTogdG9VaW50OEFycmF5KG5ldyBLZXlQYWlyKHsgcHViOiBrZXkgfSkuZ2V0S2V5cyhyYXdLZXlzKS5wdWIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0S2V5cztcbiAgICB9LCBuZXcgcHJvdG8uVGhyZXNob2xkS2V5KHsgdGhyZXNob2xkOiAyLCBrZXlzOiB7IGtleXM6IFtdIH0gfSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBjcmVhdGVBY2MgPSB0eC50eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudDtcbiAgICBpZiAoY3JlYXRlQWNjICYmIGNyZWF0ZUFjYy5rZXkgJiYgY3JlYXRlQWNjLmtleS50aHJlc2hvbGRLZXkpIHtcbiAgICAgIHRoaXMuaW5pdE93bmVycyhjcmVhdGVBY2Mua2V5LnRocmVzaG9sZEtleSBhcyBwcm90by5UaHJlc2hvbGRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE93bmVycyhrZXlzOiBwcm90by5UaHJlc2hvbGRLZXkpIHtcbiAgICBpZiAoa2V5cy5rZXlzICYmIGtleXMua2V5cy5rZXlzKSB7XG4gICAgICBrZXlzLmtleXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5vd25lcih0b0hleChrZXkuZWQyNTUxOSEpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gQ29tbW9uIGJ1aWxkZXIgbWV0aG9kc1xuICAvKipcbiAgICogU2V0IG9uZSBvZiB0aGUgb3duZXJzIG9mIHRoZSBtdWx0aXNpZyB3YWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIHB1YmxpYyBrZXkgb2YgdGhlIG93bmVyJ3MgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSAtIFRoaXMgd2FsbGV0IGluaXRpYWxpemF0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG93bmVyKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl9vd25lcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBvd25lcnMgY2FuIGJlIHNldCBmb3IgYSBtdWx0aXNpZyB3YWxsZXQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzczogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3duZXJzLmluY2x1ZGVzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCBvd25lciBhZGRyZXNzOiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVycy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vd25lcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB3YWxsZXQgb3duZXJzJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggIT09IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb246IHdyb25nIG51bWJlciBvZiBvd25lcnMgLS0gcmVxdWlyZWQ6ICR7REVGQVVMVF9TSUdORVJfTlVNQkVSfSwgZm91bmQ6ICR7dGhpcy5fb3duZXJzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -77,7 +81,7 @@ class SeedValidator {
77
81
  */
78
82
  static isValidHbarSeedFormat(seed) {
79
83
  try {
80
- utils_1.createRawKey(seed);
84
+ (0, utils_1.createRawKey)(seed);
81
85
  }
82
86
  catch {
83
87
  return false;
@@ -86,4 +90,4 @@ class SeedValidator {
86
90
  }
87
91
  }
88
92
  exports.SeedValidator = SeedValidator;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsMENBQTRCO0FBQzVCLGlEQUFpRDtBQUNqRCx1Q0FBMkM7QUFDM0MsNkRBQW9EO0FBQ3BEOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFDdkMsSUFBSSxJQUFJLEdBQTJCLFNBQVMsQ0FBQztRQUU3Qyw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRCw2RkFBNkY7WUFDN0YsNkVBQTZFO1lBQzdFLDhCQUE4QjtZQUU5QixJQUFJLHVCQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2hFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsR0FBRyxDQUFDO1lBQ3pFLElBQUksYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztnQkFBRSxJQUFJLEdBQUcsb0JBQVUsQ0FBQyxJQUFJLENBQUM7U0FDdkU7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUFDLElBQVksRUFBRSxVQUFzQjtRQUNuRSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxVQUFVLEtBQUssV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQVk7UUFDekMsTUFBTSxVQUFVLEdBQUcsdUJBQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUk7WUFDRixvQkFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQTNERCxzQ0EyREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVJhd0tleSB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCB7IEFsZ29MaWIgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29pbi1hbGdvJztcbi8qKlxuICogVGhpcyBjbGFzc2VzIGludGVudGlvbiBpcyB0byBndWVzcy92ZXJpZnkgd2hhdCBzZWVkcyBjb21lIGZyb20gd2hlcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWVkVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIFRyeSB0byBndWVzcyB3aGF0IGtpbmQgb2Ygc2VlZCB0aGlzIGNvdWxkIGJlXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gcmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGNvaW4gdHlwZSBpcyB1bmRldGVjdGFibGUuIHJldHVybnNcbiAgICogdGhlIGNvaW4gZmFtaWx5IG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBnZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZDogc3RyaW5nKTogQ29pbkZhbWlseSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvaW46IENvaW5GYW1pbHkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBpZiB0aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBtb3JlIHRoYW4gb25lIGNvbXBldGluZyBzZWVkIGZvcm1hdCwgdGhhdCBjb3VsZCBiZSBhbiBpc3N1ZVxuICAgIGlmICghU2VlZFZhbGlkYXRvci5oYXNDb21wZXRpbmdTZWVkRm9ybWF0cyhzZWVkKSkge1xuICAgICAgLy8gb3JkZXJpbmcgZ2VuZXJhbGx5IG1hdHRlcnMgaGVyZSAtIGhiYXIgaXMgdGhlIGxlYXN0IHBlcm1pc3NpdmUgZm9yIHNlZWQgY2hlY2tpbmcsIGFsZ28gYW5kXG4gICAgICAvLyBzdGVsbGFyIGhhdmUgY2hlY2tzdW1zLiBjb2luIGlzIGd1YXJhbnRlZWQgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlIGJ5IHRoZVxuICAgICAgLy8gY29tcGV0aW5nIHNlZWQgZm9ybWF0IGNoZWNrXG5cbiAgICAgIGlmIChBbGdvTGliLmFsZ29VdGlscy5pc1ZhbGlkU2VlZChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuQUxHTztcbiAgICAgIGlmIChzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCkpIGNvaW4gPSBDb2luRmFtaWx5LlhMTTtcbiAgICAgIGlmIChTZWVkVmFsaWRhdG9yLmlzVmFsaWRIYmFyU2VlZEZvcm1hdChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuSEJBUjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGlzIGlzIGEgdmFsaWQgc2VlZCBmb3IgdGhpcyBjb2luIGZhbWlseSB0eXBlLlxuICAgKiBAcGFyYW0gc2VlZCAtIHNlZWRcbiAgICogQHBhcmFtIGNvaW5GYW1pbHkgLSB0aGUgY29pbkZhbWlseSBvZiB0aGUgY29pbiB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkRWQyNTUxOVNlZWRGb3JDb2luKHNlZWQ6IHN0cmluZywgY29pbkZhbWlseTogQ29pbkZhbWlseSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGd1ZXNzZWRDb2luID0gU2VlZFZhbGlkYXRvci5nZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIGNvaW5GYW1pbHkgPT09IGd1ZXNzZWRDb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlIGlzIG5vIG92ZXJsYXAgZm9yIGFueSB0d28gc2VlZHMgd2UgcHV0IGludG8gdGhpcyBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbnNcbiAgICogaW50ZW50aW9uIGlzIGZvciBnYXRpbmcgd2hldGhlciB0aGlzIHNlZWQgY291bGQgcG9zc2libHkgbWF0Y2ggdHdvIGZvcm1hdHMgb3IgaXMgaW52YWxpZCBpdHNlbGYuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNBbGdvU2VlZCA9IEFsZ29MaWIuYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzU3RlbGxhclNlZWQgPSBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCk7XG4gICAgY29uc3QgaXNIYmFyU2VlZCA9IFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpO1xuXG4gICAgcmV0dXJuIF8uc3VtKFtpc0FsZ29TZWVkLCBpc1N0ZWxsYXJTZWVkLCBpc0hiYXJTZWVkXSkgIT09IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaXMgYSB2YWxpZCBIYmFyIHBydi4gVGhlc2UgY2FuIGJlIGVuY29kZWQgZGlmZmVyZW50bHkuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjcmVhdGVSYXdLZXkoc2VlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXVDO0FBQ3ZDLDBDQUE0QjtBQUM1QixpREFBaUQ7QUFDakQsdUNBQTJDO0FBQzNDLDZEQUFvRDtBQUNwRDs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUN4Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUksSUFBSSxHQUEyQixTQUFTLENBQUM7UUFFN0MsNEZBQTRGO1FBQzVGLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEQsNkZBQTZGO1lBQzdGLDZFQUE2RTtZQUM3RSw4QkFBOEI7WUFFOUIsSUFBSSx1QkFBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQztZQUNoRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLEdBQUcsQ0FBQztZQUN6RSxJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsVUFBc0I7UUFDbkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE9BQU8sVUFBVSxLQUFLLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLHVCQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJO1lBQ0YsSUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQTNERCxzQ0EyREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVJhd0tleSB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCB7IEFsZ29MaWIgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29pbi1hbGdvJztcbi8qKlxuICogVGhpcyBjbGFzc2VzIGludGVudGlvbiBpcyB0byBndWVzcy92ZXJpZnkgd2hhdCBzZWVkcyBjb21lIGZyb20gd2hlcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWVkVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIFRyeSB0byBndWVzcyB3aGF0IGtpbmQgb2Ygc2VlZCB0aGlzIGNvdWxkIGJlXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gcmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGNvaW4gdHlwZSBpcyB1bmRldGVjdGFibGUuIHJldHVybnNcbiAgICogdGhlIGNvaW4gZmFtaWx5IG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBnZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZDogc3RyaW5nKTogQ29pbkZhbWlseSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvaW46IENvaW5GYW1pbHkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBpZiB0aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBtb3JlIHRoYW4gb25lIGNvbXBldGluZyBzZWVkIGZvcm1hdCwgdGhhdCBjb3VsZCBiZSBhbiBpc3N1ZVxuICAgIGlmICghU2VlZFZhbGlkYXRvci5oYXNDb21wZXRpbmdTZWVkRm9ybWF0cyhzZWVkKSkge1xuICAgICAgLy8gb3JkZXJpbmcgZ2VuZXJhbGx5IG1hdHRlcnMgaGVyZSAtIGhiYXIgaXMgdGhlIGxlYXN0IHBlcm1pc3NpdmUgZm9yIHNlZWQgY2hlY2tpbmcsIGFsZ28gYW5kXG4gICAgICAvLyBzdGVsbGFyIGhhdmUgY2hlY2tzdW1zLiBjb2luIGlzIGd1YXJhbnRlZWQgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlIGJ5IHRoZVxuICAgICAgLy8gY29tcGV0aW5nIHNlZWQgZm9ybWF0IGNoZWNrXG5cbiAgICAgIGlmIChBbGdvTGliLmFsZ29VdGlscy5pc1ZhbGlkU2VlZChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuQUxHTztcbiAgICAgIGlmIChzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCkpIGNvaW4gPSBDb2luRmFtaWx5LlhMTTtcbiAgICAgIGlmIChTZWVkVmFsaWRhdG9yLmlzVmFsaWRIYmFyU2VlZEZvcm1hdChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuSEJBUjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGlzIGlzIGEgdmFsaWQgc2VlZCBmb3IgdGhpcyBjb2luIGZhbWlseSB0eXBlLlxuICAgKiBAcGFyYW0gc2VlZCAtIHNlZWRcbiAgICogQHBhcmFtIGNvaW5GYW1pbHkgLSB0aGUgY29pbkZhbWlseSBvZiB0aGUgY29pbiB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkRWQyNTUxOVNlZWRGb3JDb2luKHNlZWQ6IHN0cmluZywgY29pbkZhbWlseTogQ29pbkZhbWlseSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGd1ZXNzZWRDb2luID0gU2VlZFZhbGlkYXRvci5nZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIGNvaW5GYW1pbHkgPT09IGd1ZXNzZWRDb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlIGlzIG5vIG92ZXJsYXAgZm9yIGFueSB0d28gc2VlZHMgd2UgcHV0IGludG8gdGhpcyBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbnNcbiAgICogaW50ZW50aW9uIGlzIGZvciBnYXRpbmcgd2hldGhlciB0aGlzIHNlZWQgY291bGQgcG9zc2libHkgbWF0Y2ggdHdvIGZvcm1hdHMgb3IgaXMgaW52YWxpZCBpdHNlbGYuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNBbGdvU2VlZCA9IEFsZ29MaWIuYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzU3RlbGxhclNlZWQgPSBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCk7XG4gICAgY29uc3QgaXNIYmFyU2VlZCA9IFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpO1xuXG4gICAgcmV0dXJuIF8uc3VtKFtpc0FsZ29TZWVkLCBpc1N0ZWxsYXJTZWVkLCBpc0hiYXJTZWVkXSkgIT09IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaXMgYSB2YWxpZCBIYmFyIHBydi4gVGhlc2UgY2FuIGJlIGVuY29kZWQgZGlmZmVyZW50bHkuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjcmVhdGVSYXdLZXkoc2VlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-hbar",
3
- "version": "1.3.3-alpha.23",
3
+ "version": "1.3.3-alpha.231",
4
4
  "description": "BitGo SDK coin library for Hbar",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
19
  "license": "MIT",
20
20
  "engines": {
21
- "node": ">=14 <17"
21
+ "node": ">=18 <21"
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",
@@ -40,22 +40,22 @@
40
40
  ]
41
41
  },
42
42
  "dependencies": {
43
- "@bitgo-beta/sdk-coin-algo": "1.3.3-alpha.23",
44
- "@bitgo-beta/sdk-core": "2.4.1-alpha.23",
45
- "@bitgo-beta/statics": "10.0.1-alpha.23",
46
- "@hashgraph/proto": "2.0.1-beta.2",
47
- "@hashgraph/sdk": "~2.3.0",
43
+ "@bitgo-beta/sdk-coin-algo": "1.3.3-alpha.232",
44
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.232",
45
+ "@bitgo-beta/statics": "10.0.1-alpha.232",
46
+ "@hashgraph/proto": "2.12.0",
47
+ "@hashgraph/sdk": "2.29.0",
48
48
  "@stablelib/sha384": "^1.0.0",
49
49
  "bignumber.js": "^9.0.0",
50
50
  "lodash": "^4.17.15",
51
51
  "long": "^4.0.0",
52
- "protobufjs": "^6.8.9",
52
+ "protobufjs": "7.2.5",
53
53
  "stellar-sdk": "^10.0.1",
54
54
  "tweetnacl": "^1.0.3"
55
55
  },
56
56
  "devDependencies": {
57
- "@bitgo-beta/sdk-api": "1.6.1-alpha.23",
58
- "@bitgo-beta/sdk-test": "^1.2.15"
57
+ "@bitgo-beta/sdk-api": "1.6.1-alpha.232",
58
+ "@bitgo-beta/sdk-test": "^8.0.51"
59
59
  },
60
- "gitHead": "3483ab8d4de1ddedcc921b8293391ca810e40099"
60
+ "gitHead": "4c9ae8f65b7a618308dd05e79b5e2d0067c66498"
61
61
  }