@bitgo-beta/sdk-coin-tempo 1.0.1-beta.31 → 1.0.1-beta.310

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/constants.d.ts +21 -1
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +25 -5
  7. package/dist/src/lib/index.d.ts +4 -0
  8. package/dist/src/lib/index.d.ts.map +1 -1
  9. package/dist/src/lib/index.js +5 -1
  10. package/dist/src/lib/keyPair.d.ts +5 -25
  11. package/dist/src/lib/keyPair.d.ts.map +1 -1
  12. package/dist/src/lib/keyPair.js +9 -97
  13. package/dist/src/lib/tip20Abi.d.ts +98 -0
  14. package/dist/src/lib/tip20Abi.d.ts.map +1 -0
  15. package/dist/src/lib/tip20Abi.js +62 -0
  16. package/dist/src/lib/transaction.d.ts +144 -0
  17. package/dist/src/lib/transaction.d.ts.map +1 -0
  18. package/dist/src/lib/transaction.js +216 -0
  19. package/dist/src/lib/transactionBuilder.d.ts +139 -0
  20. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/transactionBuilder.js +408 -0
  22. package/dist/src/lib/types.d.ts +27 -0
  23. package/dist/src/lib/types.d.ts.map +1 -0
  24. package/dist/src/lib/types.js +3 -0
  25. package/dist/src/lib/utils.d.ts +70 -7
  26. package/dist/src/lib/utils.d.ts.map +1 -1
  27. package/dist/src/lib/utils.js +148 -16
  28. package/dist/src/register.d.ts.map +1 -1
  29. package/dist/src/register.js +5 -1
  30. package/dist/src/tempo.d.ts +95 -41
  31. package/dist/src/tempo.d.ts.map +1 -1
  32. package/dist/src/tempo.js +447 -76
  33. package/dist/src/tip20Token.d.ts +83 -0
  34. package/dist/src/tip20Token.d.ts.map +1 -0
  35. package/dist/src/tip20Token.js +202 -0
  36. package/dist/test/integration/tip20.d.ts +7 -0
  37. package/dist/test/integration/tip20.d.ts.map +1 -0
  38. package/dist/test/integration/tip20.js +178 -0
  39. package/dist/test/resources/tempo.d.ts +61 -0
  40. package/dist/test/resources/tempo.d.ts.map +1 -0
  41. package/dist/test/resources/tempo.js +79 -0
  42. package/dist/test/unit/index.js +172 -3
  43. package/dist/test/unit/tempo.d.ts +2 -0
  44. package/dist/test/unit/tempo.d.ts.map +1 -0
  45. package/dist/test/unit/tempo.js +207 -0
  46. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  47. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  48. package/dist/test/unit/transactionBuilder.js +858 -0
  49. package/dist/test/unit/utils.js +6 -5
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +12 -7
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ethers_1 = require("ethers");
6
7
  const utils_1 = __importDefault(require("../../src/lib/utils"));
7
8
  describe('Tempo Utils', function () {
8
9
  describe('Address Validation', function () {
9
10
  it('should validate a valid address', function () {
10
- // TODO: Add valid address examples for Tempo
11
- const validAddress = 'validAddress123';
11
+ // Valid checksummed Ethereum-style address
12
+ const validAddress = ethers_1.ethers.utils.getAddress('0x742d35cc6634c0532925a3b844bc9e7595f0beb1');
12
13
  utils_1.default.isValidAddress(validAddress).should.be.true();
13
14
  });
14
15
  it('should invalidate an invalid address', function () {
@@ -23,7 +24,7 @@ describe('Tempo Utils', function () {
23
24
  it('should validate a valid public key', function () {
24
25
  // TODO: Add valid public key examples for Tempo
25
26
  const validPubKey = '0'.repeat(64);
26
- utils_1.default.isValidPublicKey(validPubKey).should.be.true();
27
+ utils_1.default.isValidPublicKey(validPubKey).should.be.false();
27
28
  });
28
29
  it('should invalidate an invalid public key', function () {
29
30
  const invalidPubKey = 'notahexstring';
@@ -37,7 +38,7 @@ describe('Tempo Utils', function () {
37
38
  describe('Private Key Validation', function () {
38
39
  it('should validate a valid private key', function () {
39
40
  const validPrvKey = '0'.repeat(64);
40
- utils_1.default.isValidPrivateKey(validPrvKey).should.be.true();
41
+ utils_1.default.isValidPrivateKey(validPrvKey).should.be.false();
41
42
  });
42
43
  it('should invalidate an invalid private key', function () {
43
44
  const invalidPrvKey = 'notahexstring';
@@ -49,4 +50,4 @@ describe('Tempo Utils', function () {
49
50
  });
50
51
  });
51
52
  });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixRQUFRLENBQUMsb0JBQW9CLEVBQUU7UUFDN0IsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1lBQ3BDLDZDQUE2QztZQUM3QyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQztZQUN2QyxlQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUU7WUFDekMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3JDLGVBQUssQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRTtZQUN2QyxlQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtRQUNoQyxFQUFFLENBQUMsb0NBQW9DLEVBQUU7WUFDdkMsZ0RBQWdEO1lBQ2hELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVBQUU7WUFDNUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBQ3RDLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0JBQXdCLEVBQUU7UUFDakMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUU7WUFDN0MsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBQ3RDLGVBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFO1lBQ3RELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxlQUFLLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcblxuZGVzY3JpYmUoJ1RlbXBvIFV0aWxzJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnQWRkcmVzcyBWYWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSB2YWxpZCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gVE9ETzogQWRkIHZhbGlkIGFkZHJlc3MgZXhhbXBsZXMgZm9yIFRlbXBvXG4gICAgICBjb25zdCB2YWxpZEFkZHJlc3MgPSAndmFsaWRBZGRyZXNzMTIzJztcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKHZhbGlkQWRkcmVzcykuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52YWxpZGF0ZSBhbiBpbnZhbGlkIGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpbnZhbGlkQWRkcmVzcyA9ICdpbnZhbGlkIUAjJCc7XG4gICAgICB1dGlscy5pc1ZhbGlkQWRkcmVzcyhpbnZhbGlkQWRkcmVzcykuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludmFsaWRhdGUgYW4gZW1wdHkgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1B1YmxpYyBLZXkgVmFsaWRhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgdmFsaWQgcHVibGljIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFRPRE86IEFkZCB2YWxpZCBwdWJsaWMga2V5IGV4YW1wbGVzIGZvciBUZW1wb1xuICAgICAgY29uc3QgdmFsaWRQdWJLZXkgPSAnMCcucmVwZWF0KDY0KTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkodmFsaWRQdWJLZXkpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludmFsaWRhdGUgYW4gaW52YWxpZCBwdWJsaWMga2V5JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaW52YWxpZFB1YktleSA9ICdub3RhaGV4c3RyaW5nJztcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkoaW52YWxpZFB1YktleSkuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludmFsaWRhdGUgYSBwdWJsaWMga2V5IHdpdGggd3JvbmcgbGVuZ3RoJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd3JvbmdMZW5ndGhQdWJLZXkgPSAnMCcucmVwZWF0KDMyKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkod3JvbmdMZW5ndGhQdWJLZXkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUHJpdmF0ZSBLZXkgVmFsaWRhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgdmFsaWQgcHJpdmF0ZSBrZXknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB2YWxpZFBydktleSA9ICcwJy5yZXBlYXQoNjQpO1xuICAgICAgdXRpbHMuaXNWYWxpZFByaXZhdGVLZXkodmFsaWRQcnZLZXkpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludmFsaWRhdGUgYW4gaW52YWxpZCBwcml2YXRlIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRQcnZLZXkgPSAnbm90YWhleHN0cmluZyc7XG4gICAgICB1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShpbnZhbGlkUHJ2S2V5KS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52YWxpZGF0ZSBhIHByaXZhdGUga2V5IHdpdGggd3JvbmcgbGVuZ3RoJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd3JvbmdMZW5ndGhQcnZLZXkgPSAnMCcucmVwZWF0KDMyKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KHdyb25nTGVuZ3RoUHJ2S2V5KS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBZ0M7QUFDaEMsZ0VBQXdDO0FBRXhDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsUUFBUSxDQUFDLG9CQUFvQixFQUFFO1FBQzdCLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtZQUNwQywyQ0FBMkM7WUFDM0MsTUFBTSxZQUFZLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUMzRixlQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUU7WUFDekMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3JDLGVBQUssQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRTtZQUN2QyxlQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtRQUNoQyxFQUFFLENBQUMsb0NBQW9DLEVBQUU7WUFDdkMsZ0RBQWdEO1lBQ2hELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVBQUU7WUFDNUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBQ3RDLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0JBQXdCLEVBQUU7UUFDakMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUU7WUFDN0MsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBQ3RDLGVBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFO1lBQ3RELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxlQUFLLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV0aGVycyB9IGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vc3JjL2xpYi91dGlscyc7XG5cbmRlc2NyaWJlKCdUZW1wbyBVdGlscycsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ0FkZHJlc3MgVmFsaWRhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgdmFsaWQgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFZhbGlkIGNoZWNrc3VtbWVkIEV0aGVyZXVtLXN0eWxlIGFkZHJlc3NcbiAgICAgIGNvbnN0IHZhbGlkQWRkcmVzcyA9IGV0aGVycy51dGlscy5nZXRBZGRyZXNzKCcweDc0MmQzNWNjNjYzNGMwNTMyOTI1YTNiODQ0YmM5ZTc1OTVmMGJlYjEnKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKHZhbGlkQWRkcmVzcykuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52YWxpZGF0ZSBhbiBpbnZhbGlkIGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpbnZhbGlkQWRkcmVzcyA9ICdpbnZhbGlkIUAjJCc7XG4gICAgICB1dGlscy5pc1ZhbGlkQWRkcmVzcyhpbnZhbGlkQWRkcmVzcykuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGludmFsaWRhdGUgYW4gZW1wdHkgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1B1YmxpYyBLZXkgVmFsaWRhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgdmFsaWQgcHVibGljIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFRPRE86IEFkZCB2YWxpZCBwdWJsaWMga2V5IGV4YW1wbGVzIGZvciBUZW1wb1xuICAgICAgY29uc3QgdmFsaWRQdWJLZXkgPSAnMCcucmVwZWF0KDY0KTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkodmFsaWRQdWJLZXkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbnZhbGlkYXRlIGFuIGludmFsaWQgcHVibGljIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRQdWJLZXkgPSAnbm90YWhleHN0cmluZyc7XG4gICAgICB1dGlscy5pc1ZhbGlkUHVibGljS2V5KGludmFsaWRQdWJLZXkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbnZhbGlkYXRlIGEgcHVibGljIGtleSB3aXRoIHdyb25nIGxlbmd0aCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdyb25nTGVuZ3RoUHViS2V5ID0gJzAnLnJlcGVhdCgzMik7XG4gICAgICB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHdyb25nTGVuZ3RoUHViS2V5KS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ByaXZhdGUgS2V5IFZhbGlkYXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhIHZhbGlkIHByaXZhdGUga2V5JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdmFsaWRQcnZLZXkgPSAnMCcucmVwZWF0KDY0KTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KHZhbGlkUHJ2S2V5KS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW52YWxpZGF0ZSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaW52YWxpZFBydktleSA9ICdub3RhaGV4c3RyaW5nJztcbiAgICAgIHV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KGludmFsaWRQcnZLZXkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbnZhbGlkYXRlIGEgcHJpdmF0ZSBrZXkgd2l0aCB3cm9uZyBsZW5ndGgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB3cm9uZ0xlbmd0aFBydktleSA9ICcwJy5yZXBlYXQoMzIpO1xuICAgICAgdXRpbHMuaXNWYWxpZFByaXZhdGVLZXkod3JvbmdMZW5ndGhQcnZLZXkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19