@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.
Files changed (41) hide show
  1. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +13 -3
  2. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  3. package/dist/src/bitgo/baseCoin/baseCoin.js +35 -1
  4. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +11 -2
  5. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  6. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  7. package/dist/src/bitgo/keychain/iKeychains.d.ts +12 -0
  8. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  9. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  10. package/dist/src/bitgo/keychain/keychains.d.ts +6 -2
  11. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  12. package/dist/src/bitgo/keychain/keychains.js +9 -5
  13. package/dist/src/bitgo/trading/network/network.d.ts +1 -1
  14. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
  15. package/dist/src/bitgo/trading/network/network.js +5 -10
  16. package/dist/src/bitgo/trading/network/types.d.ts +1 -1
  17. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  18. package/dist/src/bitgo/trading/network/types.js +1 -1
  19. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +6 -1
  20. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  21. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +10 -1
  22. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  23. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +7 -6
  24. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  25. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +8 -9
  26. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
  27. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
  28. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
  29. package/dist/src/bitgo/wallet/iWallets.d.ts +11 -4
  30. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  31. package/dist/src/bitgo/wallet/iWallets.js +23 -4
  32. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  33. package/dist/src/bitgo/wallet/wallets.js +16 -12
  34. package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
  35. package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
  36. package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
  37. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +25 -1
  38. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +24 -1
  39. package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +35 -3
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0T3B0aW9uc0NvZGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby93YWxsZXQvd2FsbGV0T3B0aW9uc0NvZGVjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qix5Q0FBK0M7QUFFL0Msb0VBRytDO0FBRS9DLFFBQVEsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7SUFDNUQsTUFBTSxhQUFhLEdBQUc7UUFDcEIsS0FBSyxFQUFFLE1BQU07UUFDYixVQUFVLEVBQUUsTUFBTTtRQUNsQixVQUFVLEVBQUUsS0FBSztRQUNqQixzQkFBc0IsRUFBRSxNQUFNO1FBQzlCLE9BQU8sRUFBRSxrQkFBMkI7S0FDckMsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxNQUFNO1FBQ2IsVUFBVSxFQUFFLE1BQU07UUFDbEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsc0JBQXNCLEVBQUUsTUFBTTtRQUM5QixJQUFJLEVBQUUsU0FBa0I7S0FDekIsQ0FBQztJQUVGLEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7UUFDMUUsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxnQkFBTyxFQUFDLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFBLGVBQU0sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxRUFBcUUsRUFBRSxHQUFHLEVBQUU7UUFDN0UsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxnQkFBTyxFQUFDLDhDQUFtQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO1FBQzFFLGdCQUFNLENBQUMsRUFBRSxDQUFDLElBQUEsZ0JBQU8sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7UUFDMUUsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsSUFBQSxlQUFNLEVBQUMsOENBQW1DLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscUVBQXFFLEVBQUUsR0FBRyxFQUFFO1FBQzdFLGdCQUFNLENBQUMsRUFBRSxDQUFDLElBQUEsZ0JBQU8sRUFBQyw4Q0FBbUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBpc1JpZ2h0LCBpc0xlZnQgfSBmcm9tICdmcC10cy9FaXRoZXInO1xuXG5pbXBvcnQge1xuICBHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnNDb2RlYyxcbiAgR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvaVdhbGxldHMnO1xuXG5kZXNjcmliZSgnd2FsbGV0IG9wdGlvbnMgY29kZWNzIHdpdGggZW5jcnlwdGlvblZlcnNpb24nLCAoKSA9PiB7XG4gIGNvbnN0IGxpZ2h0bmluZ0Jhc2UgPSB7XG4gICAgbGFiZWw6ICd0ZXN0JyxcbiAgICBwYXNzcGhyYXNlOiAncGFzcycsXG4gICAgZW50ZXJwcmlzZTogJ2VudCcsXG4gICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogJ2NvZGUnLFxuICAgIHN1YlR5cGU6ICdsaWdodG5pbmdDdXN0b2R5JyBhcyBjb25zdCxcbiAgfTtcblxuICBjb25zdCBnb0FjY291bnRCYXNlID0ge1xuICAgIGxhYmVsOiAndGVzdCcsXG4gICAgcGFzc3BocmFzZTogJ3Bhc3MnLFxuICAgIGVudGVycHJpc2U6ICdlbnQnLFxuICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU6ICdjb2RlJyxcbiAgICB0eXBlOiAndHJhZGluZycgYXMgY29uc3QsXG4gIH07XG5cbiAgaXQoJ0dlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjIGFjY2VwdHMgZW5jcnlwdGlvblZlcnNpb246IDInLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlzUmlnaHQoR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWMuZGVjb2RlKHsgLi4ubGlnaHRuaW5nQmFzZSwgZW5jcnlwdGlvblZlcnNpb246IDIgfSkpKTtcbiAgfSk7XG5cbiAgaXQoJ0dlbmVyYXRlTGlnaHRuaW5nV2FsbGV0T3B0aW9uc0NvZGVjIHJlamVjdHMgZW5jcnlwdGlvblZlcnNpb246IDMnLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlzTGVmdChHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoeyAuLi5saWdodG5pbmdCYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMyB9KSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVMaWdodG5pbmdXYWxsZXRPcHRpb25zQ29kZWMgd29ya3Mgd2l0aG91dCBlbmNyeXB0aW9uVmVyc2lvbicsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNSaWdodChHZW5lcmF0ZUxpZ2h0bmluZ1dhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUobGlnaHRuaW5nQmFzZSkpKTtcbiAgfSk7XG5cbiAgaXQoJ0dlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjIGFjY2VwdHMgZW5jcnlwdGlvblZlcnNpb246IDInLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlzUmlnaHQoR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMuZGVjb2RlKHsgLi4uZ29BY2NvdW50QmFzZSwgZW5jcnlwdGlvblZlcnNpb246IDIgfSkpKTtcbiAgfSk7XG5cbiAgaXQoJ0dlbmVyYXRlR29BY2NvdW50V2FsbGV0T3B0aW9uc0NvZGVjIHJlamVjdHMgZW5jcnlwdGlvblZlcnNpb246IDMnLCAoKSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlzTGVmdChHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoeyAuLi5nb0FjY291bnRCYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMyB9KSkpO1xuICB9KTtcblxuICBpdCgnR2VuZXJhdGVHb0FjY291bnRXYWxsZXRPcHRpb25zQ29kZWMgd29ya3Mgd2l0aG91dCBlbmNyeXB0aW9uVmVyc2lvbicsICgpID0+IHtcbiAgICBhc3NlcnQub2soaXNSaWdodChHZW5lcmF0ZUdvQWNjb3VudFdhbGxldE9wdGlvbnNDb2RlYy5kZWNvZGUoZ29BY2NvdW50QmFzZSkpKTtcbiAgfSk7XG59KTtcbiJdfQ==
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().resolves({ id: 'user-key-id', pub: userPub, encryptedPrv: 'encrypted-prv' }),
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==