@bitgo/sdk-core 38.5.2 → 38.7.0
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/bitgo/baseCoin/baseCoin.d.ts +13 -3
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +35 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +11 -2
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/keychain/iKeychains.d.ts +12 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/keychain/keychains.d.ts +6 -2
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +9 -5
- package/dist/src/bitgo/trading/network/network.d.ts +1 -1
- package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
- package/dist/src/bitgo/trading/network/network.js +5 -10
- package/dist/src/bitgo/trading/network/types.d.ts +1 -1
- package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
- package/dist/src/bitgo/trading/network/types.js +1 -1
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +6 -1
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +10 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +7 -6
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +8 -9
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
- package/dist/src/bitgo/wallet/iWallets.d.ts +11 -4
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +23 -4
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +16 -12
- package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
- package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
- package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +25 -1
- package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +24 -1
- package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +35 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -39,5 +39,28 @@ describe('wallet options codecs with encryptionVersion', () => {
|
|
|
39
39
|
it('GenerateGoAccountWalletOptionsCodec works without encryptionVersion', () => {
|
|
40
40
|
assert_1.default.ok((0, Either_1.isRight)(iWallets_1.GenerateGoAccountWalletOptionsCodec.decode(goAccountBase)));
|
|
41
41
|
});
|
|
42
|
+
it('GenerateGoAccountWalletOptionsCodec accepts password fields when user key signing is disabled', () => {
|
|
43
|
+
assert_1.default.ok((0, Either_1.isRight)(iWallets_1.GenerateGoAccountWalletOptionsCodec.decode({
|
|
44
|
+
...goAccountBase,
|
|
45
|
+
userKeySigningRequired: false,
|
|
46
|
+
})));
|
|
47
|
+
});
|
|
48
|
+
it('GenerateGoAccountWalletOptionsCodec accepts omitted password fields when user key signing is disabled', () => {
|
|
49
|
+
assert_1.default.ok((0, Either_1.isRight)(iWallets_1.GenerateGoAccountWalletOptionsCodec.decode({
|
|
50
|
+
label: 'test',
|
|
51
|
+
enterprise: 'ent',
|
|
52
|
+
type: 'trading',
|
|
53
|
+
userKeySigningRequired: false,
|
|
54
|
+
})));
|
|
55
|
+
});
|
|
56
|
+
it('GenerateGoAccountWalletOptionsCodec rejects a single password field when user key signing is disabled', () => {
|
|
57
|
+
assert_1.default.ok((0, Either_1.isLeft)(iWallets_1.GenerateGoAccountWalletOptionsCodec.decode({
|
|
58
|
+
label: 'test',
|
|
59
|
+
passphrase: 'pass',
|
|
60
|
+
enterprise: 'ent',
|
|
61
|
+
type: 'trading',
|
|
62
|
+
userKeySigningRequired: false,
|
|
63
|
+
})));
|
|
64
|
+
});
|
|
42
65
|
});
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0T3B0aW9uc0NvZGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby93YWxsZXQvd2FsbGV0T3B0aW9uc0NvZGVjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qix5Q0FBK0M7QUFFL0Msb0VBRytDO0FBRS9DLFFBQVEsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7SUFDNUQsTUFBTSxhQUFhLEdBQUc7UUFDcEIsS0FBSyxFQUFFLE1BQU07UUFDYixVQUFVLEVBQUUsTUFBTTtRQUNsQixVQUFVLEVBQUUsS0FBSztRQUNqQixzQkFBc0IsRUFBRSxNQUFNO1FBQzlCLE9BQU8sRUFBRSxrQkFBMkI7S0FDckMsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxNQUFNO1FBQ2IsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsc0JBQXNCLEVBQUUsTUFBTTtRQUM5QixJQUFJLEVBQUUsU0FBa0I7S0FDekIsQ0FBQztJQUVGLEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7UUFDMUUsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxnQkFBTyxFQUFDLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQU0sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxRUFBcUUsRUFBRSxHQUFHLEVBQUU7UUFDN0UsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxnQkFBTyxFQUFDLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO1FBQzFFLGdCQUFNLENBQUMsRUFBRSxDQUFDLElBQUEsZ0JBQU8sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7UUFDMUUsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxlQUFNLEVBQUMsOENBQW1DLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscUVBQXFFLEVBQUUsR0FBRyxFQUFFO1FBQzdFLGdCQUFNLENBQUMsRUFBRSxDQUFDLElBQUEsZ0JBQU8sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtGQUErRixFQUFFLEdBQUcsRUFBRTtRQUN2RyxnQkFBTSxDQUFDLEVBQUUsQ0FDUCxJQUFBLGdCQUFPLEVBQ0wsOENBQW1DLENBQUMsTUFBTSxDQUFDO1lBQ3pDLEdBQUcsYUFBYTtZQUNoQixzQkFBc0IsRUFBRSxLQUFLO1NBQzlCLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1R0FBdUcsRUFBRSxHQUFHLEVBQUU7UUFDL0csZ0JBQU0sQ0FBQyxFQUFFLENBQ1AsSUFBQSxnQkFBTyxFQUNMLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUksRUFBRSxTQUFTO1lBQ2Ysc0JBQXNCLEVBQUUsS0FBSztTQUM5QixDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUdBQXVHLEVBQUUsR0FBRyxFQUFFO1FBQy9HLGdCQUFNLENBQUMsRUFBRSxDQUNQLElBQUEsZUFBTSxFQUNKLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUksRUFBRSxTQUFTO1lBQ2Ysc0JBQXNCLEVBQUUsS0FBSztTQUM5QixDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGlzUmlnaHQsIGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5cbmltcG9ydCB7XG4gIEdlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjLFxuICBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9pV2FsbGV0cyc7XG5cbmRlc2NyaWJlKCd3YWxsZXQgb3B0aW9ucyBjb2RlY3Mgd2l0aCBlbmNyeXB0aW9uVmVyc2lvbicsICgpID0+IHtcbiAgY29uc3QgbGlnaHRuaW5nQmFzZSA9IHtcbiAgICBsYWJlbDogJ3Rlc3QnLFxuICAgIHBhc3NwaHJhc2U6ICdwYXNzJyxcbiAgICBlbnRlcnByaXNlOiAnZW50JyxcbiAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlOiAnY29kZScsXG4gICAgc3ViVHlwZTogJ2xpZ2h0bmluZ0N1c3RvZHknIGFzIGNvbnN0LFxuICB9O1xuXG4gIGNvbnN0IGdvQWNjb3VudEJhc2UgPSB7XG4gICAgbGFiZWw6ICd0ZXN0JyxcbiAgICBwYXNzcGhyYXNlOiAncGFzcycsXG4gICAgZW50ZXJwcmlzZTogJ2VudCcsXG4gICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogJ2NvZGUnLFxuICAgIHR5cGU6ICd0cmFkaW5nJyBhcyBjb25zdCxcbiAgfTtcblxuICBpdCgnR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWMgYWNjZXB0cyBlbmNyeXB0aW9uVmVyc2lvbjogMicsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNSaWdodChHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoeyAuLi5saWdodG5pbmdCYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMiB9KSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWMgcmVqZWN0cyBlbmNyeXB0aW9uVmVyc2lvbjogMycsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNMZWZ0KEdlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjLmRlY29kZSh7IC4uLmxpZ2h0bmluZ0Jhc2UsIGVuY3J5cHRpb25WZXJzaW9uOiAzIH0pKSk7XG4gIH0pO1xuXG4gIGl0KCdHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnNDb2RlYyB3b3JrcyB3aXRob3V0IGVuY3J5cHRpb25WZXJzaW9uJywgKCkgPT4ge1xuICAgIGFzc2VydC5vayhpc1JpZ2h0KEdlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjLmRlY29kZShsaWdodG5pbmdCYXNlKSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgYWNjZXB0cyBlbmNyeXB0aW9uVmVyc2lvbjogMicsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNSaWdodChHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoeyAuLi5nb0FjY291bnRCYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMiB9KSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgcmVqZWN0cyBlbmNyeXB0aW9uVmVyc2lvbjogMycsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNMZWZ0KEdlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjLmRlY29kZSh7IC4uLmdvQWNjb3VudEJhc2UsIGVuY3J5cHRpb25WZXJzaW9uOiAzIH0pKSk7XG4gIH0pO1xuXG4gIGl0KCdHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYyB3b3JrcyB3aXRob3V0IGVuY3J5cHRpb25WZXJzaW9uJywgKCkgPT4ge1xuICAgIGFzc2VydC5vayhpc1JpZ2h0KEdlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjLmRlY29kZShnb0FjY291bnRCYXNlKSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgYWNjZXB0cyBwYXNzd29yZCBmaWVsZHMgd2hlbiB1c2VyIGtleSBzaWduaW5nIGlzIGRpc2FibGVkJywgKCkgPT4ge1xuICAgIGFzc2VydC5vayhcbiAgICAgIGlzUmlnaHQoXG4gICAgICAgIEdlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjLmRlY29kZSh7XG4gICAgICAgICAgLi4uZ29BY2NvdW50QmFzZSxcbiAgICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgYWNjZXB0cyBvbWl0dGVkIHBhc3N3b3JkIGZpZWxkcyB3aGVuIHVzZXIga2V5IHNpZ25pbmcgaXMgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKFxuICAgICAgaXNSaWdodChcbiAgICAgICAgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMuZGVjb2RlKHtcbiAgICAgICAgICBsYWJlbDogJ3Rlc3QnLFxuICAgICAgICAgIGVudGVycHJpc2U6ICdlbnQnLFxuICAgICAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgcmVqZWN0cyBhIHNpbmdsZSBwYXNzd29yZCBmaWVsZCB3aGVuIHVzZXIga2V5IHNpZ25pbmcgaXMgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKFxuICAgICAgaXNMZWZ0KFxuICAgICAgICBHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoe1xuICAgICAgICAgIGxhYmVsOiAndGVzdCcsXG4gICAgICAgICAgcGFzc3BocmFzZTogJ3Bhc3MnLFxuICAgICAgICAgIGVudGVycHJpc2U6ICdlbnQnLFxuICAgICAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -48,7 +48,7 @@ describe('Wallets - GoAccount (OFC trading) wallet creation', function () {
|
|
|
48
48
|
beforeEach(function () {
|
|
49
49
|
mockKeychains = {
|
|
50
50
|
create: sinon.stub().returns({ pub: userPub, prv: userPrv }),
|
|
51
|
-
add: sinon.stub().
|
|
51
|
+
add: sinon.stub().callsFake(async (params) => ({ id: 'user-key-id', ...params })),
|
|
52
52
|
};
|
|
53
53
|
const mockWalletData = { id: 'wallet-id', keys: ['user-key-id'] };
|
|
54
54
|
postChain = {
|
|
@@ -78,7 +78,7 @@ describe('Wallets - GoAccount (OFC trading) wallet creation', function () {
|
|
|
78
78
|
sinon.restore();
|
|
79
79
|
});
|
|
80
80
|
it('should forward userKeySigningRequired: false in coinSpecific when provided', async function () {
|
|
81
|
-
await wallets.generateWallet({
|
|
81
|
+
const result = await wallets.generateWallet({
|
|
82
82
|
label: 'Test OFC Wallet',
|
|
83
83
|
passphrase: 'test-passphrase',
|
|
84
84
|
enterprise: 'enterprise-123',
|
|
@@ -90,6 +90,10 @@ describe('Wallets - GoAccount (OFC trading) wallet creation', function () {
|
|
|
90
90
|
const sentParams = postChain.send.firstCall.args[0];
|
|
91
91
|
sentParams.should.have.property('coinSpecific');
|
|
92
92
|
sentParams.coinSpecific.should.have.property('userKeySigningRequired', false);
|
|
93
|
+
const keychainParams = mockKeychains.add.firstCall.args[0];
|
|
94
|
+
keychainParams.should.have.property('encryptedPrv', `encrypted:test-passphrase:${userPrv}`);
|
|
95
|
+
keychainParams.should.have.property('originalPasscodeEncryptionCode', 'pce-code');
|
|
96
|
+
result.should.have.property('encryptedWalletPassphrase', 'encrypted:pce-code:test-passphrase');
|
|
93
97
|
});
|
|
94
98
|
it('should forward userKeySigningRequired: true in coinSpecific when explicitly set', async function () {
|
|
95
99
|
await wallets.generateWallet({
|
|
@@ -114,5 +118,33 @@ describe('Wallets - GoAccount (OFC trading) wallet creation', function () {
|
|
|
114
118
|
const sentParams = postChain.send.firstCall.args[0];
|
|
115
119
|
sentParams.should.not.have.property('coinSpecific');
|
|
116
120
|
});
|
|
121
|
+
it('should generate a public-only user key when user key signing is disabled and password fields are omitted', async function () {
|
|
122
|
+
const result = await wallets.generateWallet({
|
|
123
|
+
label: 'Passwordless OFC Wallet',
|
|
124
|
+
enterprise: 'enterprise-123',
|
|
125
|
+
type: 'trading',
|
|
126
|
+
userKeySigningRequired: false,
|
|
127
|
+
});
|
|
128
|
+
assert.ok(mockKeychains.add.calledOnce, 'user key should be uploaded once');
|
|
129
|
+
const keychainParams = mockKeychains.add.firstCall.args[0];
|
|
130
|
+
keychainParams.should.have.property('pub', userPub);
|
|
131
|
+
keychainParams.should.not.have.property('encryptedPrv');
|
|
132
|
+
keychainParams.should.not.have.property('originalPasscodeEncryptionCode');
|
|
133
|
+
assert.ok(postChain.send.calledOnce, 'POST /wallet/add should be called once');
|
|
134
|
+
postChain.send.firstCall.args[0].coinSpecific.should.have.property('userKeySigningRequired', false);
|
|
135
|
+
result.should.not.have.property('encryptedWalletPassphrase');
|
|
136
|
+
result.should.not.have.property('warning');
|
|
137
|
+
});
|
|
138
|
+
it('should reject passwordless generation when only one password field is supplied', async function () {
|
|
139
|
+
await assert.rejects(wallets.generateWallet({
|
|
140
|
+
label: 'Passwordless OFC Wallet',
|
|
141
|
+
enterprise: 'enterprise-123',
|
|
142
|
+
type: 'trading',
|
|
143
|
+
userKeySigningRequired: false,
|
|
144
|
+
passphrase: 'partial-password-input',
|
|
145
|
+
}), /error\(s\) parsing generate go account request params/);
|
|
146
|
+
assert.strictEqual(mockKeychains.add.called, false);
|
|
147
|
+
assert.strictEqual(postChain.send.called, false);
|
|
148
|
+
});
|
|
117
149
|
});
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0c0dvQWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby93YWxsZXQvd2FsbGV0c0dvQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUNqQyw2Q0FBK0I7QUFDL0Isa0JBQWdCO0FBQ2hCLGtFQUErRDtBQUUvRCxRQUFRLENBQUMsbURBQW1ELEVBQUU7SUFDNUQsSUFBSSxPQUFnQixDQUFDO0lBQ3JCLElBQUksU0FBYyxDQUFDO0lBQ25CLElBQUksWUFBaUIsQ0FBQztJQUN0QixJQUFJLGFBQWtCLENBQUM7SUFDdkIsSUFBSSxTQUFjLENBQUM7SUFFbkIsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQ1gsaUhBQWlILENBQUM7SUFFcEgsVUFBVSxDQUFDO1FBQ1QsYUFBYSxHQUFHO1lBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM1RCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLENBQUM7U0FDL0YsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBRWxFLFNBQVMsR0FBRztZQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO1NBQ25CLENBQUM7UUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNyQixNQUFNLEVBQUUsS0FB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QUFLO1FBQzlFLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUMzQixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7WUFDN0IsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixzQkFBc0IsRUFBRSxVQUFVO1lBQ2xDLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IFdhbGxldHMgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L3dhbGxldHMnO1xuXG5kZXNjcmliZSgnV2FsbGV0cyAtIEdvQWNjb3VudCAoT0ZDIHRyYWRpbmcpIHdhbGxldCBjcmVhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHdhbGxldHM6IFdhbGxldHM7XG4gIGxldCBtb2NrQml0R286IGFueTtcbiAgbGV0IG1vY2tCYXNlQ29pbjogYW55O1xuICBsZXQgbW9ja0tleWNoYWluczogYW55O1xuICBsZXQgcG9zdENoYWluOiBhbnk7XG5cbiAgY29uc3QgdXNlclBydiA9ICd4cHJ2U29tZVVzZXJQcml2YXRlS2V5JztcbiAgY29uc3QgdXNlclB1YiA9XG4gICAgJ3hwdWI2NjFNeU13QXFSYmNGdFhnUzVzWUpBQnFxRzlZTG1DNFExUmRhcDlnU0U4TnF0d3liR2hlUFkyZ1oyOUVTRmpxSm9DdTFSdXBqZThZdEdxc2VmRDI2NVRNZzd1c1VERmRwNlcxRUdNY2V0OCc7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgbW9ja0tleWNoYWlucyA9IHtcbiAgICAgIGNyZWF0ZTogc2lub24uc3R1YigpLnJldHVybnMoeyBwdWI6IHVzZXJQdWIsIHBydjogdXNlclBydiB9KSxcbiAgICAgIGFkZDogc2lub24uc3R1YigpLnJlc29sdmVzKHsgaWQ6ICd1c2VyLWtleS1pZCcsIHB1YjogdXNlclB1YiwgZW5jcnlwdGVkUHJ2OiAnZW5jcnlwdGVkLXBydicgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IG1vY2tXYWxsZXREYXRhID0geyBpZDogJ3dhbGxldC1pZCcsIGtleXM6IFsndXNlci1rZXktaWQnXSB9O1xuXG4gICAgcG9zdENoYWluID0ge1xuICAgICAgc2VuZDogc2lub24uc3R1YigpLFxuICAgIH07XG4gICAgcG9zdENoYWluLnNlbmQucmV0dXJucyh7XG4gICAgICByZXN1bHQ6IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyhtb2NrV2FsbGV0RGF0YSksXG4gICAgfSk7XG5cbiAgICBtb2NrQml0R28gPSB7XG4gICAgICBwb3N0OiBzaW5vbi5zdHViKCkucmV0dXJucyhwb3N0Q2hhaW4pLFxuICAgICAgZW5jcnlwdDogc2lub25cbiAgICAgICAgLnN0dWIoKVxuICAgICAgICAuY2FsbHNGYWtlKFxuICAgICAgICAgIGFzeW5jICh7IHBhc3N3b3JkLCBpbnB1dCB9OiB7IHBhc3N3b3JkOiBzdHJpbmc7IGlucHV0OiBzdHJpbmcgfSkgPT4gYGVuY3J5cHRlZDoke3Bhc3N3b3JkfToke2lucHV0fWBcbiAgICAgICAgKSxcbiAgICAgIHNldFJlcXVlc3RUcmFjZXI6IHNpbm9uLnN0dWIoKSxcbiAgICB9O1xuXG4gICAgbW9ja0Jhc2VDb2luID0ge1xuICAgICAgZ2V0RmFtaWx5OiBzaW5vbi5zdHViKCkucmV0dXJucygnb2ZjJyksXG4gICAgICBnZXRDaGFpbjogc2lub24uc3R1YigpLnJldHVybnMoJ29mYycpLFxuICAgICAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZTogc2lub24uc3R1YigpLnJldHVybnMoJ29uY2hhaW4nKSxcbiAgICAgIHN1cHBvcnRzVHNzOiBzaW5vbi5zdHViKCkucmV0dXJucyhmYWxzZSksXG4gICAgICBrZXljaGFpbnM6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKG1vY2tLZXljaGFpbnMpLFxuICAgICAgdXJsOiBzaW5vbi5zdHViKCkucmV0dXJucygnL3Rlc3QvdXJsJyksXG4gICAgfTtcblxuICAgIHdhbGxldHMgPSBuZXcgV2FsbGV0cyhtb2NrQml0R28sIG1vY2tCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2lub24ucmVzdG9yZSgpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZvcndhcmQgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogZmFsc2UgaW4gY29pblNwZWNpZmljIHdoZW4gcHJvdmlkZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgd2FsbGV0cy5nZW5lcmF0ZVdhbGxldCh7XG4gICAgICBsYWJlbDogJ1Rlc3QgT0ZDIFdhbGxldCcsXG4gICAgICBwYXNzcGhyYXNlOiAndGVzdC1wYXNzcGhyYXNlJyxcbiAgICAgIGVudGVycHJpc2U6ICdlbnRlcnByaXNlLTEyMycsXG4gICAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlOiAncGNlLWNvZGUnLFxuICAgICAgdHlwZTogJ3RyYWRpbmcnLFxuICAgICAgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBhc3NlcnQub2socG9zdENoYWluLnNlbmQuY2FsbGVkT25jZSwgJ1BPU1QgL3dhbGxldC9hZGQgc2hvdWxkIGJlIGNhbGxlZCBvbmNlJyk7XG4gICAgY29uc3Qgc2VudFBhcmFtcyA9IHBvc3RDaGFpbi5zZW5kLmZpcnN0Q2FsbC5hcmdzWzBdO1xuICAgIHNlbnRQYXJhbXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2NvaW5TcGVjaWZpYycpO1xuICAgIHNlbnRQYXJhbXMuY29pblNwZWNpZmljLnNob3VsZC5oYXZlLnByb3BlcnR5KCd1c2VyS2V5U2lnbmluZ1JlcXVpcmVkJywgZmFsc2UpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZvcndhcmQgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogdHJ1ZSBpbiBjb2luU3BlY2lmaWMgd2hlbiBleHBsaWNpdGx5IHNldCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCB3YWxsZXRzLmdlbmVyYXRlV2FsbGV0KHtcbiAgICAgIGxhYmVsOiAnVGVzdCBPRkMgV2FsbGV0JyxcbiAgICAgIHBhc3NwaHJhc2U6ICd0ZXN0LXBhc3NwaHJhc2UnLFxuICAgICAgZW50ZXJwcmlzZTogJ2VudGVycHJpc2UtMTIzJyxcbiAgICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6ICdwY2UtY29kZScsXG4gICAgICB0eXBlOiAndHJhZGluZycsXG4gICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VudFBhcmFtcyA9IHBvc3RDaGFpbi5zZW5kLmZpcnN0Q2FsbC5hcmdzWzBdO1xuICAgIHNlbnRQYXJhbXMuY29pblNwZWNpZmljLnNob3VsZC5oYXZlLnByb3BlcnR5KCd1c2VyS2V5U2lnbmluZ1JlcXVpcmVkJywgdHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgb21pdCBjb2luU3BlY2lmaWMgd2hlbiB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkIGlzIG5vdCBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCB3YWxsZXRzLmdlbmVyYXRlV2FsbGV0KHtcbiAgICAgIGxhYmVsOiAnVGVzdCBPRkMgV2FsbGV0JyxcbiAgICAgIHBhc3NwaHJhc2U6ICd0ZXN0LXBhc3NwaHJhc2UnLFxuICAgICAgZW50ZXJwcmlzZTogJ2VudGVycHJpc2UtMTIzJyxcbiAgICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6ICdwY2UtY29kZScsXG4gICAgICB0eXBlOiAndHJhZGluZycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZW50UGFyYW1zID0gcG9zdENoYWluLnNlbmQuZmlyc3RDYWxsLmFyZ3NbMF07XG4gICAgc2VudFBhcmFtcy5zaG91bGQubm90LmhhdmUucHJvcGVydHkoJ2NvaW5TcGVjaWZpYycpO1xuICB9KTtcbn0pO1xuIl19
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0c0dvQWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby93YWxsZXQvd2FsbGV0c0dvQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUNqQyw2Q0FBK0I7QUFDL0Isa0JBQWdCO0FBQ2hCLGtFQUErRDtBQUUvRCxRQUFRLENBQUMsbURBQW1ELEVBQUU7SUFDNUQsSUFBSSxPQUFnQixDQUFDO0lBQ3JCLElBQUksU0FBYyxDQUFDO0lBQ25CLElBQUksWUFBaUIsQ0FBQztJQUN0QixJQUFJLGFBQWtCLENBQUM7SUFDdkIsSUFBSSxTQUFjLENBQUM7SUFFbkIsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQ1gsaUhBQWlILENBQUM7SUFFcEgsVUFBVSxDQUFDO1FBQ1QsYUFBYSxHQUFHO1lBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM1RCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDbEYsQ0FBQztRQUVGLE1BQU0sY0FBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBRWxFLFNBQVMsR0FBRztZQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO1NBQ25CLENBQUM7UUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNy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QUN4RCxDQUFDO1FBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IFdhbGxldHMgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L3dhbGxldHMnO1xuXG5kZXNjcmliZSgnV2FsbGV0cyAtIEdvQWNjb3VudCAoT0ZDIHRyYWRpbmcpIHdhbGxldCBjcmVhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHdhbGxldHM6IFdhbGxldHM7XG4gIGxldCBtb2NrQml0R286IGFueTtcbiAgbGV0IG1vY2tCYXNlQ29pbjogYW55O1xuICBsZXQgbW9ja0tleWNoYWluczogYW55O1xuICBsZXQgcG9zdENoYWluOiBhbnk7XG5cbiAgY29uc3QgdXNlclBydiA9ICd4cHJ2U29tZVVzZXJQcml2YXRlS2V5JztcbiAgY29uc3QgdXNlclB1YiA9XG4gICAgJ3hwdWI2NjFNeU13QXFSYmNGdFhnUzVzWUpBQnFxRzlZTG1DNFExUmRhcDlnU0U4TnF0d3liR2hlUFkyZ1oyOUVTRmpxSm9DdTFSdXBqZThZdEdxc2VmRDI2NVRNZzd1c1VERmRwNlcxRUdNY2V0OCc7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgbW9ja0tleWNoYWlucyA9IHtcbiAgICAgIGNyZWF0ZTogc2lub24uc3R1YigpLnJldHVybnMoeyBwdWI6IHVzZXJQdWIsIHBydjogdXNlclBydiB9KSxcbiAgICAgIGFkZDogc2lub24uc3R1YigpLmNhbGxzRmFrZShhc3luYyAocGFyYW1zKSA9PiAoeyBpZDogJ3VzZXIta2V5LWlkJywgLi4ucGFyYW1zIH0pKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbW9ja1dhbGxldERhdGEgPSB7IGlkOiAnd2FsbGV0LWlkJywga2V5czogWyd1c2VyLWtleS1pZCddIH07XG5cbiAgICBwb3N0Q2hhaW4gPSB7XG4gICAgICBzZW5kOiBzaW5vbi5zdHViKCksXG4gICAgfTtcbiAgICBwb3N0Q2hhaW4uc2VuZC5yZXR1cm5zKHtcbiAgICAgIHJlc3VsdDogc2lub24uc3R1YigpLnJlc29sdmVzKG1vY2tXYWxsZXREYXRhKSxcbiAgICB9KTtcblxuICAgIG1vY2tCaXRHbyA9IHtcbiAgICAgIHBvc3Q6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKHBvc3RDaGFpbiksXG4gICAgICBlbmNyeXB0OiBzaW5vblxuICAgICAgICAuc3R1YigpXG4gICAgICAgIC5jYWxsc0Zha2UoXG4gICAgICAgICAgYXN5bmMgKHsgcGFzc3dvcmQsIGlucHV0IH06IHsgcGFzc3dvcmQ6IHN0cmluZzsgaW5wdXQ6IHN0cmluZyB9KSA9PiBgZW5jcnlwdGVkOiR7cGFzc3dvcmR9OiR7aW5wdXR9YFxuICAgICAgICApLFxuICAgICAgc2V0UmVxdWVzdFRyYWNlcjogc2lub24uc3R1YigpLFxuICAgIH07XG5cbiAgICBtb2NrQmFzZUNvaW4gPSB7XG4gICAgICBnZXRGYW1pbHk6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKCdvZmMnKSxcbiAgICAgIGdldENoYWluOiBzaW5vbi5zdHViKCkucmV0dXJucygnb2ZjJyksXG4gICAgICBnZXREZWZhdWx0TXVsdGlzaWdUeXBlOiBzaW5vbi5zdHViKCkucmV0dXJucygnb25jaGFpbicpLFxuICAgICAgc3VwcG9ydHNUc3M6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKGZhbHNlKSxcbiAgICAgIGtleWNoYWluczogc2lub24uc3R1YigpLnJldHVybnMobW9ja0tleWNoYWlucyksXG4gICAgICB1cmw6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKCcvdGVzdC91cmwnKSxcbiAgICB9O1xuXG4gICAgd2FsbGV0cyA9IG5ldyBXYWxsZXRzKG1vY2tCaXRHbywgbW9ja0Jhc2VDb2luKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZm9yd2FyZCB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSBpbiBjb2luU3BlY2lmaWMgd2hlbiBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXRzLmdlbmVyYXRlV2FsbGV0KHtcbiAgICAgIGxhYmVsOiAnVGVzdCBPRkMgV2FsbGV0JyxcbiAgICAgIHBhc3NwaHJhc2U6ICd0ZXN0LXBhc3NwaHJhc2UnLFxuICAgICAgZW50ZXJwcmlzZTogJ2VudGVycHJpc2UtMTIzJyxcbiAgICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6ICdwY2UtY29kZScsXG4gICAgICB0eXBlOiAndHJhZGluZycsXG4gICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGFzc2VydC5vayhwb3N0Q2hhaW4uc2VuZC5jYWxsZWRPbmNlLCAnUE9TVCAvd2FsbGV0L2FkZCBzaG91bGQgYmUgY2FsbGVkIG9uY2UnKTtcbiAgICBjb25zdCBzZW50UGFyYW1zID0gcG9zdENoYWluLnNlbmQuZmlyc3RDYWxsLmFyZ3NbMF07XG4gICAgc2VudFBhcmFtcy5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY29pblNwZWNpZmljJyk7XG4gICAgc2VudFBhcmFtcy5jb2luU3BlY2lmaWMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3VzZXJLZXlTaWduaW5nUmVxdWlyZWQnLCBmYWxzZSk7XG5cbiAgICBjb25zdCBrZXljaGFpblBhcmFtcyA9IG1vY2tLZXljaGFpbnMuYWRkLmZpcnN0Q2FsbC5hcmdzWzBdO1xuICAgIGtleWNoYWluUGFyYW1zLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNyeXB0ZWRQcnYnLCBgZW5jcnlwdGVkOnRlc3QtcGFzc3BocmFzZToke3VzZXJQcnZ9YCk7XG4gICAga2V5Y2hhaW5QYXJhbXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ29yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZScsICdwY2UtY29kZScpO1xuICAgIHJlc3VsdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jcnlwdGVkV2FsbGV0UGFzc3BocmFzZScsICdlbmNyeXB0ZWQ6cGNlLWNvZGU6dGVzdC1wYXNzcGhyYXNlJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZm9yd2FyZCB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiB0cnVlIGluIGNvaW5TcGVjaWZpYyB3aGVuIGV4cGxpY2l0bHkgc2V0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGF3YWl0IHdhbGxldHMuZ2VuZXJhdGVXYWxsZXQoe1xuICAgICAgbGFiZWw6ICdUZXN0IE9GQyBXYWxsZXQnLFxuICAgICAgcGFzc3BocmFzZTogJ3Rlc3QtcGFzc3BocmFzZScsXG4gICAgICBlbnRlcnByaXNlOiAnZW50ZXJwcmlzZS0xMjMnLFxuICAgICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogJ3BjZS1jb2RlJyxcbiAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZW50UGFyYW1zID0gcG9zdENoYWluLnNlbmQuZmlyc3RDYWxsLmFyZ3NbMF07XG4gICAgc2VudFBhcmFtcy5jb2luU3BlY2lmaWMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3VzZXJLZXlTaWduaW5nUmVxdWlyZWQnLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBvbWl0IGNvaW5TcGVjaWZpYyB3aGVuIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQgaXMgbm90IHByb3ZpZGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGF3YWl0IHdhbGxldHMuZ2VuZXJhdGVXYWxsZXQoe1xuICAgICAgbGFiZWw6ICdUZXN0IE9GQyBXYWxsZXQnLFxuICAgICAgcGFzc3BocmFzZTogJ3Rlc3QtcGFzc3BocmFzZScsXG4gICAgICBlbnRlcnByaXNlOiAnZW50ZXJwcmlzZS0xMjMnLFxuICAgICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogJ3BjZS1jb2RlJyxcbiAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbnRQYXJhbXMgPSBwb3N0Q2hhaW4uc2VuZC5maXJzdENhbGwuYXJnc1swXTtcbiAgICBzZW50UGFyYW1zLnNob3VsZC5ub3QuaGF2ZS5wcm9wZXJ0eSgnY29pblNwZWNpZmljJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2VuZXJhdGUgYSBwdWJsaWMtb25seSB1c2VyIGtleSB3aGVuIHVzZXIga2V5IHNpZ25pbmcgaXMgZGlzYWJsZWQgYW5kIHBhc3N3b3JkIGZpZWxkcyBhcmUgb21pdHRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXRzLmdlbmVyYXRlV2FsbGV0KHtcbiAgICAgIGxhYmVsOiAnUGFzc3dvcmRsZXNzIE9GQyBXYWxsZXQnLFxuICAgICAgZW50ZXJwcmlzZTogJ2VudGVycHJpc2UtMTIzJyxcbiAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgYXNzZXJ0Lm9rKG1vY2tLZXljaGFpbnMuYWRkLmNhbGxlZE9uY2UsICd1c2VyIGtleSBzaG91bGQgYmUgdXBsb2FkZWQgb25jZScpO1xuICAgIGNvbnN0IGtleWNoYWluUGFyYW1zID0gbW9ja0tleWNoYWlucy5hZGQuZmlyc3RDYWxsLmFyZ3NbMF07XG4gICAga2V5Y2hhaW5QYXJhbXMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3B1YicsIHVzZXJQdWIpO1xuICAgIGtleWNoYWluUGFyYW1zLnNob3VsZC5ub3QuaGF2ZS5wcm9wZXJ0eSgnZW5jcnlwdGVkUHJ2Jyk7XG4gICAga2V5Y2hhaW5QYXJhbXMuc2hvdWxkLm5vdC5oYXZlLnByb3BlcnR5KCdvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUnKTtcblxuICAgIGFzc2VydC5vayhwb3N0Q2hhaW4uc2VuZC5jYWxsZWRPbmNlLCAnUE9TVCAvd2FsbGV0L2FkZCBzaG91bGQgYmUgY2FsbGVkIG9uY2UnKTtcbiAgICBwb3N0Q2hhaW4uc2VuZC5maXJzdENhbGwuYXJnc1swXS5jb2luU3BlY2lmaWMuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3VzZXJLZXlTaWduaW5nUmVxdWlyZWQnLCBmYWxzZSk7XG4gICAgcmVzdWx0LnNob3VsZC5ub3QuaGF2ZS5wcm9wZXJ0eSgnZW5jcnlwdGVkV2FsbGV0UGFzc3BocmFzZScpO1xuICAgIHJlc3VsdC5zaG91bGQubm90LmhhdmUucHJvcGVydHkoJ3dhcm5pbmcnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZWplY3QgcGFzc3dvcmRsZXNzIGdlbmVyYXRpb24gd2hlbiBvbmx5IG9uZSBwYXNzd29yZCBmaWVsZCBpcyBzdXBwbGllZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhcbiAgICAgIHdhbGxldHMuZ2VuZXJhdGVXYWxsZXQoe1xuICAgICAgICBsYWJlbDogJ1Bhc3N3b3JkbGVzcyBPRkMgV2FsbGV0JyxcbiAgICAgICAgZW50ZXJwcmlzZTogJ2VudGVycHJpc2UtMTIzJyxcbiAgICAgICAgdHlwZTogJ3RyYWRpbmcnLFxuICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgcGFzc3BocmFzZTogJ3BhcnRpYWwtcGFzc3dvcmQtaW5wdXQnLFxuICAgICAgfSksXG4gICAgICAvZXJyb3JcXChzXFwpIHBhcnNpbmcgZ2VuZXJhdGUgZ28gYWNjb3VudCByZXF1ZXN0IHBhcmFtcy9cbiAgICApO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG1vY2tLZXljaGFpbnMuYWRkLmNhbGxlZCwgZmFsc2UpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChwb3N0Q2hhaW4uc2VuZC5jYWxsZWQsIGZhbHNlKTtcbiAgfSk7XG59KTtcbiJdfQ==
|