@bitgo-beta/sdk-coin-iota 1.0.1-beta.324 → 1.0.1-beta.326
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.
- package/dist/src/iota.d.ts +123 -27
- package/dist/src/iota.d.ts.map +1 -1
- package/dist/src/iota.js +217 -103
- package/dist/src/lib/constants.d.ts +50 -1
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +68 -4
- package/dist/src/lib/iface.d.ts +141 -1
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/keyPair.d.ts +100 -6
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +103 -10
- package/dist/src/lib/transaction.d.ts +117 -14
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +190 -67
- package/dist/src/lib/transactionBuilder.d.ts +73 -34
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +90 -45
- package/dist/src/lib/transactionBuilderFactory.d.ts +89 -6
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +103 -16
- package/dist/src/lib/transferBuilder.d.ts +43 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +50 -5
- package/dist/src/lib/transferTransaction.d.ts +93 -2
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +180 -51
- package/dist/src/lib/utils.d.ts +107 -8
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +134 -23
- package/dist/test/unit/helpers/testHelpers.d.ts +57 -0
- package/dist/test/unit/helpers/testHelpers.d.ts.map +1 -0
- package/dist/test/unit/helpers/testHelpers.js +176 -0
- package/dist/test/unit/iota.js +47 -152
- package/dist/test/unit/keyPair.js +34 -61
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +137 -255
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +43 -108
- package/dist/test/unit/transactionBuilder/transferBuilder.js +296 -762
- package/dist/test/unit/transferTransaction.js +106 -353
- package/dist/test/unit/utils.js +171 -197
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -32,104 +32,77 @@ describe('Iota KeyPair', function () {
|
|
|
32
32
|
bitgo.safeRegister('tiota', src_1.Iota.createInstance);
|
|
33
33
|
basecoin = bitgo.coin('tiota');
|
|
34
34
|
});
|
|
35
|
-
describe('
|
|
36
|
-
it('from
|
|
35
|
+
describe('KeyPair Creation', () => {
|
|
36
|
+
it('should create keypair with public and private keys from empty value', async () => {
|
|
37
37
|
const keyPair = new src_1.KeyPair();
|
|
38
|
-
|
|
39
|
-
should_1.default.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
should_1.default.
|
|
38
|
+
const keys = keyPair.getKeys();
|
|
39
|
+
should_1.default.exist(keys.prv);
|
|
40
|
+
should_1.default.exist(keys.pub);
|
|
41
|
+
const address = await utils_1.default.getAddressFromPublicKey(keys.pub);
|
|
42
|
+
should_1.default.exist(address);
|
|
43
43
|
});
|
|
44
|
-
|
|
45
|
-
describe('Keypair from derived Public Key', () => {
|
|
46
|
-
it('should create keypair with just derived public key', () => {
|
|
44
|
+
it('should create keypair from derived public key', () => {
|
|
47
45
|
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
|
|
48
46
|
keyPair.getKeys().pub.should.equal(rootPublicKey);
|
|
49
|
-
});
|
|
50
|
-
it('should derived ed25519 public key should be valid', () => {
|
|
51
47
|
utils_1.default.isValidPublicKey(rootPublicKey).should.be.true();
|
|
52
48
|
});
|
|
53
|
-
|
|
54
|
-
describe('Keypair from random seed', () => {
|
|
55
|
-
it('should generate a keypair from random seed', function () {
|
|
49
|
+
it('should create keypair from random seed', () => {
|
|
56
50
|
const keyPair = basecoin.generateKeyPair();
|
|
57
51
|
keyPair.should.have.property('pub');
|
|
58
52
|
keyPair.should.have.property('prv');
|
|
59
53
|
basecoin.isValidPub(keyPair.pub).should.equal(true);
|
|
60
54
|
});
|
|
61
|
-
|
|
62
|
-
describe('should fail to create a KeyPair', function () {
|
|
63
|
-
it('from an invalid public key', () => {
|
|
64
|
-
const source = {
|
|
65
|
-
pub: '01D63D',
|
|
66
|
-
};
|
|
67
|
-
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
68
|
-
});
|
|
69
|
-
it('from an invalid public key with 0x prefix', () => {
|
|
70
|
-
const source = {
|
|
71
|
-
pub: '0x' + 'a'.repeat(64),
|
|
72
|
-
};
|
|
73
|
-
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
74
|
-
});
|
|
75
|
-
it('from a too short public key', () => {
|
|
76
|
-
const source = {
|
|
77
|
-
pub: 'abc123',
|
|
78
|
-
};
|
|
79
|
-
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
80
|
-
});
|
|
81
|
-
it('from a too long public key', () => {
|
|
82
|
-
const source = {
|
|
83
|
-
pub: 'a'.repeat(128),
|
|
84
|
-
};
|
|
85
|
-
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
describe('KeyPair operations', () => {
|
|
89
|
-
it('should get keys from keypair', () => {
|
|
55
|
+
it('should create keypair without private key', () => {
|
|
90
56
|
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
|
|
91
57
|
const keys = keyPair.getKeys();
|
|
92
58
|
keys.should.have.property('pub');
|
|
93
59
|
keys.pub.should.equal(rootPublicKey);
|
|
60
|
+
should_1.default.not.exist(keys.prv);
|
|
61
|
+
});
|
|
62
|
+
const invalidPublicKeys = [
|
|
63
|
+
{ pub: '01D63D', description: 'invalid format' },
|
|
64
|
+
{ pub: '0x' + 'a'.repeat(64), description: '0x prefix' },
|
|
65
|
+
{ pub: 'abc123', description: 'too short' },
|
|
66
|
+
{ pub: 'a'.repeat(128), description: 'too long' },
|
|
67
|
+
];
|
|
68
|
+
invalidPublicKeys.forEach(({ pub, description }) => {
|
|
69
|
+
it(`should reject public key with ${description}`, () => {
|
|
70
|
+
assert_1.default.throws(() => new src_1.KeyPair({ pub }));
|
|
71
|
+
});
|
|
94
72
|
});
|
|
73
|
+
});
|
|
74
|
+
describe('KeyPair Operations', () => {
|
|
95
75
|
it('should generate random keypair each time', () => {
|
|
96
76
|
const keyPair1 = basecoin.generateKeyPair();
|
|
97
77
|
const keyPair2 = basecoin.generateKeyPair();
|
|
98
78
|
keyPair1.pub.should.not.equal(keyPair2.pub);
|
|
99
79
|
keyPair1.prv.should.not.equal(keyPair2.prv);
|
|
100
80
|
});
|
|
101
|
-
it('should create keypair without private key', () => {
|
|
102
|
-
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
|
|
103
|
-
const keys = keyPair.getKeys();
|
|
104
|
-
keys.should.have.property('pub');
|
|
105
|
-
keys.pub.should.equal(rootPublicKey);
|
|
106
|
-
should_1.default.not.exist(keys.prv);
|
|
107
|
-
});
|
|
108
81
|
it('should validate generated public keys', () => {
|
|
109
82
|
const keyPair = basecoin.generateKeyPair();
|
|
110
83
|
basecoin.isValidPub(keyPair.pub).should.equal(true);
|
|
111
84
|
utils_1.default.isValidPublicKey(keyPair.pub).should.be.true();
|
|
112
85
|
});
|
|
113
86
|
});
|
|
114
|
-
describe('Address
|
|
115
|
-
it('should derive address from public key',
|
|
87
|
+
describe('Address Derivation', () => {
|
|
88
|
+
it('should derive valid address from public key', () => {
|
|
116
89
|
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
|
|
117
|
-
const address =
|
|
90
|
+
const address = keyPair.getAddress();
|
|
118
91
|
should_1.default.exist(address);
|
|
119
92
|
utils_1.default.isValidAddress(address).should.be.true();
|
|
120
93
|
});
|
|
121
|
-
it('should derive same address from same public key',
|
|
122
|
-
const address1 =
|
|
123
|
-
const address2 =
|
|
94
|
+
it('should derive same address from same public key', () => {
|
|
95
|
+
const address1 = utils_1.default.getAddressFromPublicKey(rootPublicKey);
|
|
96
|
+
const address2 = utils_1.default.getAddressFromPublicKey(rootPublicKey);
|
|
124
97
|
address1.should.equal(address2);
|
|
125
98
|
});
|
|
126
|
-
it('should derive different addresses from different public keys',
|
|
99
|
+
it('should derive different addresses from different public keys', () => {
|
|
127
100
|
const keyPair1 = basecoin.generateKeyPair();
|
|
128
101
|
const keyPair2 = basecoin.generateKeyPair();
|
|
129
|
-
const address1 =
|
|
130
|
-
const address2 =
|
|
102
|
+
const address1 = utils_1.default.getAddressFromPublicKey(keyPair1.pub);
|
|
103
|
+
const address2 = utils_1.default.getAddressFromPublicKey(keyPair2.pub);
|
|
131
104
|
address1.should.not.equal(address2);
|
|
132
105
|
});
|
|
133
106
|
});
|
|
134
107
|
});
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUEwQztBQUMxQyxnRUFBd0M7QUFDeEMsb0RBQTRCO0FBQzVCLG1EQUE2QztBQUM3Qyx5REFBcUU7QUFDckUsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxRQUFRLENBQUMsY0FBYyxFQUFFO0lBQ3ZCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksR0FBVSxDQUFDO0lBQ2YsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBRWIsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLGdDQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLEdBQUcsR0FBRyxNQUFNLGdCQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxjQUFj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RUFBRSxLQUFLLElBQUksRUFBRTtZQUM1RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRTVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFbkUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEtleVBhaXIsIElvdGEgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgRWRkc2EgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBFZDI1NTE5QmlwMzJIZFRyZWUsIEhEVHJlZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcblxuZGVzY3JpYmUoJ0lvdGEgS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHJvb3RLZXljaGFpbjtcbiAgbGV0IHJvb3RQdWJsaWNLZXk7XG4gIGxldCBNUEM6IEVkZHNhO1xuICBsZXQgaGRUcmVlOiBIRFRyZWU7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGFzeW5jICgpID0+IHtcbiAgICBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICAgIE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoaGRUcmVlKTtcbiAgICBjb25zdCBBID0gTVBDLmtleVNoYXJlKDEsIDIsIDMpO1xuICAgIGNvbnN0IEIgPSBNUEMua2V5U2hhcmUoMiwgMiwgMyk7XG4gICAgY29uc3QgQyA9IE1QQy5rZXlTaGFyZSgzLCAyLCAzKTtcblxuICAgIGNvbnN0IEFfY29tYmluZSA9IE1QQy5rZXlDb21iaW5lKEEudVNoYXJlLCBbQi55U2hhcmVzWzFdLCBDLnlTaGFyZXNbMV1dKTtcblxuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gQV9jb21iaW5lLnBTaGFyZS55ICsgQV9jb21iaW5lLnBTaGFyZS5jaGFpbmNvZGU7XG4gICAgcm9vdEtleWNoYWluID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sICdtLzAnKTtcbiAgICByb290UHVibGljS2V5ID0gQnVmZmVyLmZyb20ocm9vdEtleWNoYWluLCAnaGV4Jykuc2xpY2UoMCwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3Rpb3RhJywgSW90YS5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKCd0aW90YScpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGNyZWF0ZSBhIHZhbGlkIEtleVBhaXInLCAoKSA9PiB7XG4gICAgaXQoJ2Zyb20gYW4gZW1wdHkgdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSBhd2FpdCB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShrZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgY29uc29sZS5sb2coJ2FkZHJlc3M6JywgYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXhpc3RzKGFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5cGFpciBmcm9tIGRlcml2ZWQgUHVibGljIEtleScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIHdpdGgganVzdCBkZXJpdmVkIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBrZXlQYWlyLmdldEtleXMoKS5wdWIuc2hvdWxkLmVxdWFsKHJvb3RQdWJsaWNLZXkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZXJpdmVkIGVkMjU1MTkgcHVibGljIGtleSBzaG91bGQgYmUgdmFsaWQnLCAoKSA9PiB7XG4gICAgICB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHJvb3RQdWJsaWNLZXkpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlwYWlyIGZyb20gcmFuZG9tIHNlZWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhIGtleXBhaXIgZnJvbSByYW5kb20gc2VlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGtleVBhaXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicpO1xuICAgICAga2V5UGFpci5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgncHJ2Jyk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkUHViKGtleVBhaXIucHViKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgZmFpbCB0byBjcmVhdGUgYSBLZXlQYWlyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdmcm9tIGFuIGludmFsaWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IHtcbiAgICAgICAgcHViOiAnMDFENjNEJyxcbiAgICAgIH07XG5cbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHB1YmxpYyBrZXkgd2l0aCAweCBwcmVmaXgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJzB4JyArICdhJy5yZXBlYXQoNjQpLFxuICAgICAgfTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGEgdG9vIHNob3J0IHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJ2FiYzEyMycsXG4gICAgICB9O1xuXG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBLZXlQYWlyKHNvdXJjZSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSB0b28gbG9uZyBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICdhJy5yZXBlYXQoMTI4KSxcbiAgICAgIH07XG5cbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlQYWlyIG9wZXJhdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQga2V5cyBmcm9tIGtleXBhaXInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICAgIGtleXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicpO1xuICAgICAga2V5cy5wdWIuc2hvdWxkLmVxdWFsKHJvb3RQdWJsaWNLZXkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSByYW5kb20ga2V5cGFpciBlYWNoIHRpbWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyMSA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAgY29uc3Qga2V5UGFpcjIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcblxuICAgICAga2V5UGFpcjEucHViLnNob3VsZC5ub3QuZXF1YWwoa2V5UGFpcjIucHViKTtcbiAgICAgIGtleVBhaXIxLnBydi5zaG91bGQubm90LmVxdWFsKGtleVBhaXIyLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIHdpdGhvdXQgcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICAgIGtleXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicpO1xuICAgICAga2V5cy5wdWIuc2hvdWxkLmVxdWFsKHJvb3RQdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdChrZXlzLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGdlbmVyYXRlZCBwdWJsaWMga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRQdWIoa2V5UGFpci5wdWIpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkoa2V5UGFpci5wdWIpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBZGRyZXNzIGRlcml2YXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzID0gYXdhaXQgdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGFkZHJlc3MpO1xuICAgICAgdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlIHNhbWUgYWRkcmVzcyBmcm9tIHNhbWUgcHVibGljIGtleScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFkZHJlc3MxID0gYXdhaXQgdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocm9vdFB1YmxpY0tleSk7XG4gICAgICBjb25zdCBhZGRyZXNzMiA9IGF3YWl0IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KHJvb3RQdWJsaWNLZXkpO1xuXG4gICAgICBhZGRyZXNzMS5zaG91bGQuZXF1YWwoYWRkcmVzczIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgZGlmZmVyZW50IGFkZHJlc3NlcyBmcm9tIGRpZmZlcmVudCBwdWJsaWMga2V5cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIxID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBjb25zdCBrZXlQYWlyMiA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuXG4gICAgICBjb25zdCBhZGRyZXNzMSA9IGF3YWl0IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KGtleVBhaXIxLnB1Yik7XG4gICAgICBjb25zdCBhZGRyZXNzMiA9IGF3YWl0IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KGtleVBhaXIyLnB1Yik7XG5cbiAgICAgIGFkZHJlc3MxLnNob3VsZC5ub3QuZXF1YWwoYWRkcmVzczIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUEwQztBQUMxQyxnRUFBd0M7QUFDeEMsb0RBQTRCO0FBQzVCLG1EQUE2QztBQUM3Qyx5REFBcUU7QUFDckUsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxRQUFRLENBQUMsY0FBYyxFQUFFO0lBQ3ZCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksR0FBVSxDQUFDO0lBQ2YsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBRWIsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLGdDQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLEdBQUcsR0FBRyxNQUFNLGdCQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxjQUFj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QUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1lBQ3RFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFFNUMsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxlQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdELFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBLZXlQYWlyLCBJb3RhIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEVkZHNhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgRWQyNTUxOUJpcDMySGRUcmVlLCBIRFRyZWUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmRlc2NyaWJlKCdJb3RhIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gIGxldCByb290S2V5Y2hhaW47XG4gIGxldCByb290UHVibGljS2V5O1xuICBsZXQgTVBDOiBFZGRzYTtcbiAgbGV0IGhkVHJlZTogSERUcmVlO1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgbGV0IGJhc2Vjb2luO1xuXG4gIGJlZm9yZShhc3luYyAoKSA9PiB7XG4gICAgaGRUcmVlID0gYXdhaXQgRWQyNTUxOUJpcDMySGRUcmVlLmluaXRpYWxpemUoKTtcbiAgICBNUEMgPSBhd2FpdCBFZGRzYS5pbml0aWFsaXplKGhkVHJlZSk7XG4gICAgY29uc3QgQSA9IE1QQy5rZXlTaGFyZSgxLCAyLCAzKTtcbiAgICBjb25zdCBCID0gTVBDLmtleVNoYXJlKDIsIDIsIDMpO1xuICAgIGNvbnN0IEMgPSBNUEMua2V5U2hhcmUoMywgMiwgMyk7XG5cbiAgICBjb25zdCBBX2NvbWJpbmUgPSBNUEMua2V5Q29tYmluZShBLnVTaGFyZSwgW0IueVNoYXJlc1sxXSwgQy55U2hhcmVzWzFdXSk7XG5cbiAgICBjb25zdCBjb21tb25LZXljaGFpbiA9IEFfY29tYmluZS5wU2hhcmUueSArIEFfY29tYmluZS5wU2hhcmUuY2hhaW5jb2RlO1xuICAgIHJvb3RLZXljaGFpbiA9IE1QQy5kZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluLCAnbS8wJyk7XG4gICAgcm9vdFB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHJvb3RLZXljaGFpbiwgJ2hleCcpLnNsaWNlKDAsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAnbW9jaycgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0aW90YScsIElvdGEuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbigndGlvdGEnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tleVBhaXIgQ3JlYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUga2V5cGFpciB3aXRoIHB1YmxpYyBhbmQgcHJpdmF0ZSBrZXlzIGZyb20gZW1wdHkgdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEtleXMoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGtleXMucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdChrZXlzLnB1Yik7XG5cbiAgICAgIGNvbnN0IGFkZHJlc3MgPSBhd2FpdCB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShrZXlzLnB1Yik7XG4gICAgICBzaG91bGQuZXhpc3QoYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIGZyb20gZGVyaXZlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiByb290UHVibGljS2V5IH0pO1xuICAgICAga2V5UGFpci5nZXRLZXlzKCkucHViLnNob3VsZC5lcXVhbChyb290UHVibGljS2V5KTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocm9vdFB1YmxpY0tleSkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGtleXBhaXIgZnJvbSByYW5kb20gc2VlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGtleVBhaXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicpO1xuICAgICAga2V5UGFpci5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgncHJ2Jyk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkUHViKGtleVBhaXIucHViKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIHdpdGhvdXQgcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICAgIGtleXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicpO1xuICAgICAga2V5cy5wdWIuc2hvdWxkLmVxdWFsKHJvb3RQdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdChrZXlzLnBydik7XG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnZhbGlkUHVibGljS2V5cyA9IFtcbiAgICAgIHsgcHViOiAnMDFENjNEJywgZGVzY3JpcHRpb246ICdpbnZhbGlkIGZvcm1hdCcgfSxcbiAgICAgIHsgcHViOiAnMHgnICsgJ2EnLnJlcGVhdCg2NCksIGRlc2NyaXB0aW9uOiAnMHggcHJlZml4JyB9LFxuICAgICAgeyBwdWI6ICdhYmMxMjMnLCBkZXNjcmlwdGlvbjogJ3RvbyBzaG9ydCcgfSxcbiAgICAgIHsgcHViOiAnYScucmVwZWF0KDEyOCksIGRlc2NyaXB0aW9uOiAndG9vIGxvbmcnIH0sXG4gICAgXTtcblxuICAgIGludmFsaWRQdWJsaWNLZXlzLmZvckVhY2goKHsgcHViLCBkZXNjcmlwdGlvbiB9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIHJlamVjdCBwdWJsaWMga2V5IHdpdGggJHtkZXNjcmlwdGlvbn1gLCAoKSA9PiB7XG4gICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoeyBwdWIgfSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlQYWlyIE9wZXJhdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSByYW5kb20ga2V5cGFpciBlYWNoIHRpbWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyMSA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAgY29uc3Qga2V5UGFpcjIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcblxuICAgICAga2V5UGFpcjEucHViLnNob3VsZC5ub3QuZXF1YWwoa2V5UGFpcjIucHViKTtcbiAgICAgIGtleVBhaXIxLnBydi5zaG91bGQubm90LmVxdWFsKGtleVBhaXIyLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGdlbmVyYXRlZCBwdWJsaWMga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRQdWIoa2V5UGFpci5wdWIpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkoa2V5UGFpci5wdWIpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBZGRyZXNzIERlcml2YXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgdmFsaWQgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHJvb3RQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChhZGRyZXNzKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRlcml2ZSBzYW1lIGFkZHJlc3MgZnJvbSBzYW1lIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzMSA9IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KHJvb3RQdWJsaWNLZXkpO1xuICAgICAgY29uc3QgYWRkcmVzczIgPSB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShyb290UHVibGljS2V5KTtcblxuICAgICAgYWRkcmVzczEuc2hvdWxkLmVxdWFsKGFkZHJlc3MyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlIGRpZmZlcmVudCBhZGRyZXNzZXMgZnJvbSBkaWZmZXJlbnQgcHVibGljIGtleXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyMSA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAgY29uc3Qga2V5UGFpcjIgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcblxuICAgICAgY29uc3QgYWRkcmVzczEgPSB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShrZXlQYWlyMS5wdWIpO1xuICAgICAgY29uc3QgYWRkcmVzczIgPSB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShrZXlQYWlyMi5wdWIpO1xuXG4gICAgICBhZGRyZXNzMS5zaG91bGQubm90LmVxdWFsKGFkZHJlc3MyKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|