@bitgo-beta/account-lib 2.24.1-alpha.48 → 2.24.1-alpha.481
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/README.md +1 -1
- package/dist/resources/dot/index.js +6 -2
- package/dist/resources/dot/westend.d.ts +1 -1
- package/dist/resources/dot/westend.d.ts.map +1 -1
- package/dist/resources/dot/westend.js +2 -2
- package/dist/resources/dot/westend.ts +1 -1
- package/dist/src/index.d.ts +110 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +259 -17
- package/dist/src/keyPair/index.js +24 -11
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +27 -10
- package/dist/src/utils/messages/index.d.ts +10 -0
- package/dist/src/utils/messages/index.d.ts.map +1 -0
- package/dist/src/utils/messages/index.js +30 -0
- package/dist/test/resources/ed25519Deriver.d.ts +15 -0
- package/dist/test/resources/ed25519Deriver.d.ts.map +1 -0
- package/dist/test/resources/ed25519Deriver.js +18 -0
- package/dist/test/resources/testTransaction.d.ts +11 -0
- package/dist/test/resources/testTransaction.d.ts.map +1 -0
- package/dist/test/resources/testTransaction.js +19 -0
- package/dist/test/resources/testTransactionBuilder.d.ts +26 -0
- package/dist/test/resources/testTransactionBuilder.d.ts.map +1 -0
- package/dist/test/resources/testTransactionBuilder.js +47 -0
- package/dist/test/unit/coin/baseCoin/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/coin/baseCoin/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/coin/baseCoin/transactionBuilder.js +135 -0
- package/dist/test/unit/fixtures.d.ts +16 -0
- package/dist/test/unit/fixtures.d.ts.map +1 -0
- package/dist/test/unit/fixtures.js +43 -0
- package/dist/test/unit/index.d.ts +2 -0
- package/dist/test/unit/index.d.ts.map +1 -0
- package/dist/test/unit/index.js +13 -0
- package/dist/test/unit/keyPair/index.d.ts +2 -0
- package/dist/test/unit/keyPair/index.d.ts.map +1 -0
- package/dist/test/unit/keyPair/index.js +132 -0
- package/dist/test/unit/messageFactory.d.ts +2 -0
- package/dist/test/unit/messageFactory.d.ts.map +1 -0
- package/dist/test/unit/messageFactory.js +78 -0
- package/dist/test/unit/mpc/tss/ecdsa/ecdsa.d.ts +2 -0
- package/dist/test/unit/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
- package/dist/test/unit/mpc/tss/ecdsa/ecdsa.js +333 -0
- package/dist/test/unit/mpc/tss/eddsa/eddsa.d.ts +5 -0
- package/dist/test/unit/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
- package/dist/test/unit/mpc/tss/eddsa/eddsa.js +322 -0
- package/dist/test/unit/mpc/tss/fixtures/ecdsa.d.ts +130 -0
- package/dist/test/unit/mpc/tss/fixtures/ecdsa.d.ts.map +1 -0
- package/dist/test/unit/mpc/tss/fixtures/ecdsa.js +283 -0
- package/dist/test/unit/utils/crypto.d.ts +2 -0
- package/dist/test/unit/utils/crypto.d.ts.map +1 -0
- package/dist/test/unit/utils/crypto.js +60 -0
- package/dist/test/unit/utils/ed25519KeyDeriver.d.ts +2 -0
- package/dist/test/unit/utils/ed25519KeyDeriver.d.ts.map +1 -0
- package/dist/test/unit/utils/ed25519KeyDeriver.js +23 -0
- package/dist/test/unit/utils/index.d.ts +2 -0
- package/dist/test/unit/utils/index.d.ts.map +1 -0
- package/dist/test/unit/utils/index.js +61 -0
- package/dist/test/unit/utils/messages/index.d.ts +2 -0
- package/dist/test/unit/utils/messages/index.d.ts.map +1 -0
- package/dist/test/unit/utils/messages/index.js +51 -0
- package/dist/test/unit/verifyMessage.d.ts +2 -0
- package/dist/test/unit/verifyMessage.d.ts.map +1 -0
- package/dist/test/unit/verifyMessage.js +96 -0
- package/dist/tsconfig.tsbuildinfo +1 -43551
- package/package.json +77 -32
- package/.mocharc.js +0 -10
- package/CHANGELOG.md +0 -409
- package/DEVELOPER.md +0 -93
- package/resources/README.md +0 -17
- package/resources/cspr/contract/keys-manager.wasm +0 -0
- package/resources/dot/index.ts +0 -2
- package/resources/dot/mainnet.ts +0 -2
- package/resources/dot/westend.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/unit/keyPair/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
/**
|
|
40
|
+
* @prettier
|
|
41
|
+
*/
|
|
42
|
+
const assert_1 = __importDefault(require("assert"));
|
|
43
|
+
const keyPair_1 = require("../../../src/keyPair");
|
|
44
|
+
const coinModules = __importStar(require("../../../src"));
|
|
45
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
46
|
+
describe('Key Pair Factory', () => {
|
|
47
|
+
describe('coinToKey map initialization', function () {
|
|
48
|
+
const supportedCoinsExceptTestnet = Object.keys(coinModules)
|
|
49
|
+
// TODO(BG-40990): temporarily disable eth2 from the test for bls not initialized error
|
|
50
|
+
.filter((k) => coinModules[k].KeyPair && !['eth2', 'evmcoin', 'cosmossharedcoin', 'stt'].includes(k.trim().toLowerCase()));
|
|
51
|
+
supportedCoinsExceptTestnet.forEach((coinName) => {
|
|
52
|
+
it(`should initialize a ${coinName} keyPair map`, () => {
|
|
53
|
+
const keyPair = (0, keyPair_1.register)(coinName);
|
|
54
|
+
(typeof keyPair.getKeys).should.equal('function');
|
|
55
|
+
(typeof keyPair.getAddress).should.equal('function');
|
|
56
|
+
(typeof keyPair.recordKeysFromPrivateKey).should.equal('function');
|
|
57
|
+
(typeof keyPair.recordKeysFromPublicKey).should.equal('function');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
it('should fail to instantiate an unsupported coin', () => {
|
|
61
|
+
assert_1.default.throws(() => (0, keyPair_1.register)('fakeUnsupported'));
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('secp256k1 generation', function () {
|
|
65
|
+
it('should initialize eth keyPair map', () => {
|
|
66
|
+
const eth = statics_1.coins.get('eth');
|
|
67
|
+
const keyPair = (0, keyPair_1.register)(eth.name);
|
|
68
|
+
(typeof keyPair.getKeys).should.equal('function');
|
|
69
|
+
(typeof keyPair.getAddress).should.equal('function');
|
|
70
|
+
(typeof keyPair.getPublicKey).should.equal('function');
|
|
71
|
+
});
|
|
72
|
+
it('should initialize eth keyPair map with arguments', () => {
|
|
73
|
+
const eth = statics_1.coins.get('eth');
|
|
74
|
+
const uncompressedPub = '04D63D9FD9FD772A989C5B90EDB37716406356E98273E5F98FE07652247A3A827503E948A2FDBF74A981D4E0054F10EDA7042C2D469F44473D3C7791E0E326E355';
|
|
75
|
+
const pubKey = { pub: uncompressedPub };
|
|
76
|
+
const keyPair = (0, keyPair_1.register)(eth.name, pubKey);
|
|
77
|
+
(typeof keyPair.getKeys).should.equal('function');
|
|
78
|
+
(typeof keyPair.getAddress).should.equal('function');
|
|
79
|
+
(typeof keyPair.getPublicKey).should.equal('function');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe('ed25519 generation', function () {
|
|
83
|
+
const fixedKeyPair = {
|
|
84
|
+
prv: 'e349d47cd4af4644afbc05b8463c0d0d19a0cc742be5c1646af2e7be8aafbd50',
|
|
85
|
+
};
|
|
86
|
+
const givenSignature = new Uint8Array(Buffer.from('b2e775827f6b3c9050524a7d2f5344db73eb92044d8e42c38357a30686a9ce3a19b8fbf8c9d1edb0f3c5232441d34b63af92805aed77097ee50076f696eaff0f', 'hex'));
|
|
87
|
+
['dot', 'tdot', 'algo', 'talgo', 'hbar', 'thbar', 'sol', 'tsol'].forEach((coinName) => {
|
|
88
|
+
describe(`${coinName} keyPair`, function () {
|
|
89
|
+
const kp = (0, keyPair_1.register)(coinName, fixedKeyPair);
|
|
90
|
+
it(`should initialize ${coinName} keyPair map`, () => {
|
|
91
|
+
const keyPair = (0, keyPair_1.register)(coinName);
|
|
92
|
+
(typeof keyPair.getKeys).should.equal('function');
|
|
93
|
+
(typeof keyPair.getAddress).should.equal('function');
|
|
94
|
+
(typeof keyPair.verifySignature).should.equal('function');
|
|
95
|
+
(typeof keyPair.signMessage).should.equal('function');
|
|
96
|
+
});
|
|
97
|
+
it(`should initialize ${coinName} keyPair map with arguments`, () => {
|
|
98
|
+
const keyPair = (0, keyPair_1.register)(coinName, fixedKeyPair);
|
|
99
|
+
(typeof keyPair.getKeys).should.equal('function');
|
|
100
|
+
(typeof keyPair.getAddress).should.equal('function');
|
|
101
|
+
(typeof keyPair.verifySignature).should.equal('function');
|
|
102
|
+
(typeof keyPair.signMessage).should.equal('function');
|
|
103
|
+
});
|
|
104
|
+
it('should get same signature from same message', () => {
|
|
105
|
+
// When
|
|
106
|
+
const signature = kp.signMessage('message');
|
|
107
|
+
// Then
|
|
108
|
+
signature.should.deepEqual(givenSignature);
|
|
109
|
+
});
|
|
110
|
+
it('should get different signature form different message', () => {
|
|
111
|
+
// When
|
|
112
|
+
const signature = kp.signMessage('wrong message');
|
|
113
|
+
// Then
|
|
114
|
+
signature.should.not.deepEqual(givenSignature);
|
|
115
|
+
});
|
|
116
|
+
it('should be verified correctly', () => {
|
|
117
|
+
// When
|
|
118
|
+
const verifyResult = kp.verifySignature('message', givenSignature);
|
|
119
|
+
// Then
|
|
120
|
+
verifyResult.should.be.True();
|
|
121
|
+
});
|
|
122
|
+
it('should not be verified wrong message', () => {
|
|
123
|
+
// When
|
|
124
|
+
const verifyResult = kp.verifySignature('wrong message', givenSignature);
|
|
125
|
+
// Then
|
|
126
|
+
verifyResult.should.be.False();
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQva2V5UGFpci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsb0RBQTRCO0FBQzVCLGtEQUFnRDtBQUNoRCwwREFBNEM7QUFDNUMsaURBQTRDO0FBSTVDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7SUFDaEMsUUFBUSxDQUFDLDhCQUE4QixFQUFFO1FBQ3ZDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDMUQsdUZBQXVGO2FBQ3RGLE1BQU0sQ0FDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQzdHLENBQUM7UUFFSiwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMvQyxFQUFFLENBQUMsdUJBQXVCLFFBQVEsY0FBYyxFQUFFLEdBQUcsRUFBRTtnQkFDckQsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBUSxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xELENBQUMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxPQUFPLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLE1BQU0s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O2dCQUM3QyxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsdURBQXVELEVBQUUsR0FBRyxFQUFFO29CQUMvRCxPQUFPO29CQUNQLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ2xELE9BQU87b0JBQ1AsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO29CQUN0QyxPQUFPO29CQUNQLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUNuRSxPQUFPO29CQUNQLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO29CQUM5QyxPQUFPO29CQUNQLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUN6RSxPQUFPO29CQUNQLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgcmVnaXN0ZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMva2V5UGFpcic7XG5pbXBvcnQgKiBhcyBjb2luTW9kdWxlcyBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEtleVBhaXIgYXMgRXRoS2V5UGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb2luLWV0aCc7XG5pbXBvcnQgeyBFZDI1NTE5S2V5UGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZGVzY3JpYmUoJ0tleSBQYWlyIEZhY3RvcnknLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjb2luVG9LZXkgbWFwIGluaXRpYWxpemF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHN1cHBvcnRlZENvaW5zRXhjZXB0VGVzdG5ldCA9IE9iamVjdC5rZXlzKGNvaW5Nb2R1bGVzKVxuICAgICAgLy8gVE9ETyhCRy00MDk5MCk6IHRlbXBvcmFyaWx5IGRpc2FibGUgZXRoMiBmcm9tIHRoZSB0ZXN0IGZvciBibHMgbm90IGluaXRpYWxpemVkIGVycm9yXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoaykgPT5cbiAgICAgICAgICBjb2luTW9kdWxlc1trXS5LZXlQYWlyICYmICFbJ2V0aDInLCAnZXZtY29pbicsICdjb3Ntb3NzaGFyZWRjb2luJywgJ3N0dCddLmluY2x1ZGVzKGsudHJpbSgpLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgKTtcblxuICAgIHN1cHBvcnRlZENvaW5zRXhjZXB0VGVzdG5ldC5mb3JFYWNoKChjb2luTmFtZSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBpbml0aWFsaXplIGEgJHtjb2luTmFtZX0ga2V5UGFpciBtYXBgLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGtleVBhaXIgPSByZWdpc3Rlcihjb2luTmFtZSk7XG4gICAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRLZXlzKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRBZGRyZXNzKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgICh0eXBlb2Yga2V5UGFpci5yZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICAgICAgKHR5cGVvZiBrZXlQYWlyLnJlY29yZEtleXNGcm9tUHVibGljS2V5KS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byBpbnN0YW50aWF0ZSBhbiB1bnN1cHBvcnRlZCBjb2luJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiByZWdpc3RlcignZmFrZVVuc3VwcG9ydGVkJykpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2VjcDI1NmsxIGdlbmVyYXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIGV0aCBrZXlQYWlyIG1hcCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGV0aCA9IGNvaW5zLmdldCgnZXRoJyk7XG4gICAgICBjb25zdCBrZXlQYWlyID0gcmVnaXN0ZXIoZXRoLm5hbWUpIGFzIEV0aEtleVBhaXI7XG4gICAgICAodHlwZW9mIGtleVBhaXIuZ2V0S2V5cykuc2hvdWxkLmVxdWFsKCdmdW5jdGlvbicpO1xuICAgICAgKHR5cGVvZiBrZXlQYWlyLmdldEFkZHJlc3MpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRQdWJsaWNLZXkpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSBldGgga2V5UGFpciBtYXAgd2l0aCBhcmd1bWVudHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBldGggPSBjb2lucy5nZXQoJ2V0aCcpO1xuICAgICAgY29uc3QgdW5jb21wcmVzc2VkUHViID1cbiAgICAgICAgJzA0RDYzRDlGRDlGRDc3MkE5ODlDNUI5MEVEQjM3NzE2NDA2MzU2RTk4MjczRTVGOThGRTA3NjUyMjQ3QTNBODI3NTAzRTk0OEEyRkRCRjc0QTk4MUQ0RTAwNTRGMTBFREE3MDQyQzJENDY5RjQ0NDczRDNDNzc5MUUwRTMyNkUzNTUnO1xuICAgICAgY29uc3QgcHViS2V5ID0geyBwdWI6IHVuY29tcHJlc3NlZFB1YiB9O1xuICAgICAgY29uc3Qga2V5UGFpciA9IHJlZ2lzdGVyKGV0aC5uYW1lLCBwdWJLZXkpIGFzIEV0aEtleVBhaXI7XG4gICAgICAodHlwZW9mIGtleVBhaXIuZ2V0S2V5cykuc2hvdWxkLmVxdWFsKCdmdW5jdGlvbicpO1xuICAgICAgKHR5cGVvZiBrZXlQYWlyLmdldEFkZHJlc3MpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRQdWJsaWNLZXkpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2VkMjU1MTkgZ2VuZXJhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBmaXhlZEtleVBhaXIgPSB7XG4gICAgICBwcnY6ICdlMzQ5ZDQ3Y2Q0YWY0NjQ0YWZiYzA1Yjg0NjNjMGQwZDE5YTBjYzc0MmJlNWMxNjQ2YWYyZTdiZThhYWZiZDUwJyxcbiAgICB9O1xuICAgIGNvbnN0IGdpdmVuU2lnbmF0dXJlID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgJ2IyZTc3NTgyN2Y2YjNjOTA1MDUyNGE3ZDJmNTM0NGRiNzNlYjkyMDQ0ZDhlNDJjMzgzNTdhMzA2ODZhOWNlM2ExOWI4ZmJmOGM5ZDFlZGIwZjNjNTIzMjQ0MWQzNGI2M2FmOTI4MDVhZWQ3NzA5N2VlNTAwNzZmNjk2ZWFmZjBmJyxcbiAgICAgICAgJ2hleCcsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBbJ2RvdCcsICd0ZG90JywgJ2FsZ28nLCAndGFsZ28nLCAnaGJhcicsICd0aGJhcicsICdzb2wnLCAndHNvbCddLmZvckVhY2goKGNvaW5OYW1lKSA9PiB7XG4gICAgICBkZXNjcmliZShgJHtjb2luTmFtZX0ga2V5UGFpcmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qga3AgPSByZWdpc3Rlcihjb2luTmFtZSwgZml4ZWRLZXlQYWlyKSBhcyBFZDI1NTE5S2V5UGFpcjtcblxuICAgICAgICBpdChgc2hvdWxkIGluaXRpYWxpemUgJHtjb2luTmFtZX0ga2V5UGFpciBtYXBgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5UGFpciA9IHJlZ2lzdGVyKGNvaW5OYW1lKSBhcyBFZDI1NTE5S2V5UGFpcjtcbiAgICAgICAgICAodHlwZW9mIGtleVBhaXIuZ2V0S2V5cykuc2hvdWxkLmVxdWFsKCdmdW5jdGlvbicpO1xuICAgICAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRBZGRyZXNzKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgICAgKHR5cGVvZiBrZXlQYWlyLnZlcmlmeVNpZ25hdHVyZSkuc2hvdWxkLmVxdWFsKCdmdW5jdGlvbicpO1xuICAgICAgICAgICh0eXBlb2Yga2V5UGFpci5zaWduTWVzc2FnZSkuc2hvdWxkLmVxdWFsKCdmdW5jdGlvbicpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdChgc2hvdWxkIGluaXRpYWxpemUgJHtjb2luTmFtZX0ga2V5UGFpciBtYXAgd2l0aCBhcmd1bWVudHNgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5UGFpciA9IHJlZ2lzdGVyKGNvaW5OYW1lLCBmaXhlZEtleVBhaXIpIGFzIEVkMjU1MTlLZXlQYWlyO1xuICAgICAgICAgICh0eXBlb2Yga2V5UGFpci5nZXRLZXlzKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgICAgKHR5cGVvZiBrZXlQYWlyLmdldEFkZHJlc3MpLnNob3VsZC5lcXVhbCgnZnVuY3Rpb24nKTtcbiAgICAgICAgICAodHlwZW9mIGtleVBhaXIudmVyaWZ5U2lnbmF0dXJlKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgICAgKHR5cGVvZiBrZXlQYWlyLnNpZ25NZXNzYWdlKS5zaG91bGQuZXF1YWwoJ2Z1bmN0aW9uJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgZ2V0IHNhbWUgc2lnbmF0dXJlIGZyb20gc2FtZSBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgICAgIC8vIFdoZW5cbiAgICAgICAgICBjb25zdCBzaWduYXR1cmUgPSBrcC5zaWduTWVzc2FnZSgnbWVzc2FnZScpO1xuICAgICAgICAgIC8vIFRoZW5cbiAgICAgICAgICBzaWduYXR1cmUuc2hvdWxkLmRlZXBFcXVhbChnaXZlblNpZ25hdHVyZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgZ2V0IGRpZmZlcmVudCBzaWduYXR1cmUgZm9ybSBkaWZmZXJlbnQgbWVzc2FnZScsICgpID0+IHtcbiAgICAgICAgICAvLyBXaGVuXG4gICAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0ga3Auc2lnbk1lc3NhZ2UoJ3dyb25nIG1lc3NhZ2UnKTtcbiAgICAgICAgICAvLyBUaGVuXG4gICAgICAgICAgc2lnbmF0dXJlLnNob3VsZC5ub3QuZGVlcEVxdWFsKGdpdmVuU2lnbmF0dXJlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBiZSB2ZXJpZmllZCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICAgICAgLy8gV2hlblxuICAgICAgICAgIGNvbnN0IHZlcmlmeVJlc3VsdCA9IGtwLnZlcmlmeVNpZ25hdHVyZSgnbWVzc2FnZScsIGdpdmVuU2lnbmF0dXJlKTtcbiAgICAgICAgICAvLyBUaGVuXG4gICAgICAgICAgdmVyaWZ5UmVzdWx0LnNob3VsZC5iZS5UcnVlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgbm90IGJlIHZlcmlmaWVkIHdyb25nIG1lc3NhZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgLy8gV2hlblxuICAgICAgICAgIGNvbnN0IHZlcmlmeVJlc3VsdCA9IGtwLnZlcmlmeVNpZ25hdHVyZSgnd3JvbmcgbWVzc2FnZScsIGdpdmVuU2lnbmF0dXJlKTtcbiAgICAgICAgICAvLyBUaGVuXG4gICAgICAgICAgdmVyaWZ5UmVzdWx0LnNob3VsZC5iZS5GYWxzZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageFactory.d.ts","sourceRoot":"","sources":["../../../test/unit/messageFactory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
9
|
+
const src_1 = require("../../src");
|
|
10
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
11
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
12
|
+
const fixtures_1 = require("./fixtures");
|
|
13
|
+
describe('Message Builder Factory', () => {
|
|
14
|
+
describe('getMessageBuilderFactory', () => {
|
|
15
|
+
it('should fail to instantiate an unsupported coin', () => {
|
|
16
|
+
assert_1.default.throws(() => (0, src_1.getMessageBuilderFactory)('fakeUnsupported'), (e) => {
|
|
17
|
+
return (e instanceof sdk_core_1.BuildMessageError &&
|
|
18
|
+
e.message === 'Message builder factory for coin fakeUnsupported not supported');
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
it('should succeed for supported coins', () => {
|
|
22
|
+
const ethFactory = (0, src_1.getMessageBuilderFactory)('eth');
|
|
23
|
+
should_1.default.exist(ethFactory);
|
|
24
|
+
ethFactory.should.be.instanceof(sdk_core_1.BaseMessageBuilderFactory);
|
|
25
|
+
// Verify hteth is also supported
|
|
26
|
+
const htethFactory = (0, src_1.getMessageBuilderFactory)('hteth');
|
|
27
|
+
should_1.default.exist(htethFactory);
|
|
28
|
+
htethFactory.should.be.instanceof(sdk_core_1.BaseMessageBuilderFactory);
|
|
29
|
+
});
|
|
30
|
+
it('should auto-register all non-token coins with SHARED_EVM_MESSAGE_SIGNING feature', () => {
|
|
31
|
+
const evmCoins = statics_1.coins.reduce((acc, coin) => {
|
|
32
|
+
if (coin.features.includes(statics_1.CoinFeature.SHARED_EVM_MESSAGE_SIGNING) && !coin.isToken) {
|
|
33
|
+
acc.push(coin.name);
|
|
34
|
+
}
|
|
35
|
+
return acc;
|
|
36
|
+
}, []);
|
|
37
|
+
evmCoins.length.should.be.greaterThan(0);
|
|
38
|
+
for (const coinName of evmCoins) {
|
|
39
|
+
const factory = (0, src_1.getMessageBuilderFactory)(coinName);
|
|
40
|
+
should_1.default.exist(factory, `Expected message builder factory for ${coinName}`);
|
|
41
|
+
factory.should.be.instanceof(sdk_core_1.BaseMessageBuilderFactory);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
it('should not register token coins with SHARED_EVM_MESSAGE_SIGNING feature', () => {
|
|
45
|
+
const evmTokens = statics_1.coins.reduce((acc, coin) => {
|
|
46
|
+
if (coin.features.includes(statics_1.CoinFeature.SHARED_EVM_MESSAGE_SIGNING) && coin.isToken) {
|
|
47
|
+
acc.push(coin.name);
|
|
48
|
+
}
|
|
49
|
+
return acc;
|
|
50
|
+
}, []);
|
|
51
|
+
evmTokens.length.should.be.greaterThan(0);
|
|
52
|
+
for (const tokenName of evmTokens) {
|
|
53
|
+
assert_1.default.throws(() => (0, src_1.getMessageBuilderFactory)(tokenName), (e) => e instanceof sdk_core_1.BuildMessageError, `Token ${tokenName} should not have a message builder factory`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('registerMessageBuilderFactory', () => {
|
|
58
|
+
// Mock message builder that implements required abstract methods
|
|
59
|
+
it('should register a new message builder factory', () => {
|
|
60
|
+
const coinName = 'fakeTestCoin';
|
|
61
|
+
const mockCoin = sinon_1.default.createStubInstance(statics_1.BaseCoin);
|
|
62
|
+
sinon_1.default
|
|
63
|
+
.stub(statics_1.coins, 'get')
|
|
64
|
+
.withArgs(coinName)
|
|
65
|
+
.returns(mockCoin);
|
|
66
|
+
const factory = (0, src_1.registerMessageBuilderFactory)(coinName, fixtures_1.MockMessageBuilderFactory);
|
|
67
|
+
should_1.default.exist(factory);
|
|
68
|
+
factory.should.be.instanceof(fixtures_1.MockMessageBuilderFactory);
|
|
69
|
+
// Verify we can get it back
|
|
70
|
+
const retrievedFactory = (0, src_1.getMessageBuilderFactory)(coinName);
|
|
71
|
+
should_1.default.exist(retrievedFactory);
|
|
72
|
+
retrievedFactory.should.be.instanceof(fixtures_1.MockMessageBuilderFactory);
|
|
73
|
+
// Restore the stub
|
|
74
|
+
sinon_1.default.restore();
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZUZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGtEQUEwQjtBQUMxQixtQ0FBb0Y7QUFDcEYsbURBQW9GO0FBQ3BGLGlEQUFtRTtBQUNuRSx5Q0FBdUQ7QUFFdkQsUUFBUSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO1FBQ3hDLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLEVBQUU7WUFDeEQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsSUFBQSw4QkFBd0IsRUFBQyxpQkFBaUIsQ0FBQyxFQUNqRCxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUNYLE9BQU8sQ0FDTCxDQUFDLFlBQVksNEJBQWlCO29CQUM5QixDQUFDLENBQUMsT0FBTyxLQUFLLGdFQUFnRSxDQUMvRSxDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7WUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBQSw4QkFBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QixVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsb0NBQXlCLENBQUMsQ0FBQztZQUUzRCxpQ0FBaUM7WUFDakMsTUFBTSxZQUFZLEdBQUcsSUFBQSw4QkFBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUN2RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENB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QkFBZ0IsR0FBRyxJQUFBLDhCQUF3QixFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVELGdCQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0IsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsb0NBQXlCLENBQUMsQ0FBQztZQUVqRSxtQkFBbUI7WUFDbkIsZUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgeyBnZXRNZXNzYWdlQnVpbGRlckZhY3RvcnksIHJlZ2lzdGVyTWVzc2FnZUJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IEJhc2VNZXNzYWdlQnVpbGRlckZhY3RvcnksIEJ1aWxkTWVzc2FnZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMsIEJhc2VDb2luLCBDb2luRmVhdHVyZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgTW9ja01lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnTWVzc2FnZSBCdWlsZGVyIEZhY3RvcnknLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlckZhY3RvcnknLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGluc3RhbnRpYXRlIGFuIHVuc3VwcG9ydGVkIGNvaW4nLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBnZXRNZXNzYWdlQnVpbGRlckZhY3RvcnkoJ2Zha2VVbnN1cHBvcnRlZCcpLFxuICAgICAgICAoZTogRXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEJ1aWxkTWVzc2FnZUVycm9yICYmXG4gICAgICAgICAgICBlLm1lc3NhZ2UgPT09ICdNZXNzYWdlIGJ1aWxkZXIgZmFjdG9yeSBmb3IgY29pbiBmYWtlVW5zdXBwb3J0ZWQgbm90IHN1cHBvcnRlZCdcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2VlZCBmb3Igc3VwcG9ydGVkIGNvaW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXRoRmFjdG9yeSA9IGdldE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSgnZXRoJyk7XG4gICAgICBzaG91bGQuZXhpc3QoZXRoRmFjdG9yeSk7XG4gICAgICBldGhGYWN0b3J5LnNob3VsZC5iZS5pbnN0YW5jZW9mKEJhc2VNZXNzYWdlQnVpbGRlckZhY3RvcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgaHRldGggaXMgYWxzbyBzdXBwb3J0ZWRcbiAgICAgIGNvbnN0IGh0ZXRoRmFjdG9yeSA9IGdldE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSgnaHRldGgnKTtcbiAgICAgIHNob3VsZC5leGlzdChodGV0aEZhY3RvcnkpO1xuICAgICAgaHRldGhGYWN0b3J5LnNob3VsZC5iZS5pbnN0YW5jZW9mKEJhc2VNZXNzYWdlQnVpbGRlckZhY3RvcnkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhdXRvLXJlZ2lzdGVyIGFsbCBub24tdG9rZW4gY29pbnMgd2l0aCBTSEFSRURfRVZNX01FU1NBR0VfU0lHTklORyBmZWF0dXJlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXZtQ29pbnMgPSBjb2lucy5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGNvaW4pID0+IHtcbiAgICAgICAgaWYgKGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9NRVNTQUdFX1NJR05JTkcpICYmICFjb2luLmlzVG9rZW4pIHtcbiAgICAgICAgICBhY2MucHVzaChjb2luLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG4gICAgICBldm1Db2lucy5sZW5ndGguc2hvdWxkLmJlLmdyZWF0ZXJUaGFuKDApO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvaW5OYW1lIG9mIGV2bUNvaW5zKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbk5hbWUpO1xuICAgICAgICBzaG91bGQuZXhpc3QoZmFjdG9yeSwgYEV4cGVjdGVkIG1lc3NhZ2UgYnVpbGRlciBmYWN0b3J5IGZvciAke2NvaW5OYW1lfWApO1xuICAgICAgICBmYWN0b3J5LnNob3VsZC5iZS5pbnN0YW5jZW9mKEJhc2VNZXNzYWdlQnVpbGRlckZhY3RvcnkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgcmVnaXN0ZXIgdG9rZW4gY29pbnMgd2l0aCBTSEFSRURfRVZNX01FU1NBR0VfU0lHTklORyBmZWF0dXJlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXZtVG9rZW5zID0gY29pbnMucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjb2luKSA9PiB7XG4gICAgICAgIGlmIChjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fTUVTU0FHRV9TSUdOSU5HKSAmJiBjb2luLmlzVG9rZW4pIHtcbiAgICAgICAgICBhY2MucHVzaChjb2luLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG4gICAgICBldm1Ub2tlbnMubGVuZ3RoLnNob3VsZC5iZS5ncmVhdGVyVGhhbigwKTtcblxuICAgICAgZm9yIChjb25zdCB0b2tlbk5hbWUgb2YgZXZtVG9rZW5zKSB7XG4gICAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICAgKCkgPT4gZ2V0TWVzc2FnZUJ1aWxkZXJGYWN0b3J5KHRva2VuTmFtZSksXG4gICAgICAgICAgKGU6IEVycm9yKSA9PiBlIGluc3RhbmNlb2YgQnVpbGRNZXNzYWdlRXJyb3IsXG4gICAgICAgICAgYFRva2VuICR7dG9rZW5OYW1lfSBzaG91bGQgbm90IGhhdmUgYSBtZXNzYWdlIGJ1aWxkZXIgZmFjdG9yeWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZWdpc3Rlck1lc3NhZ2VCdWlsZGVyRmFjdG9yeScsICgpID0+IHtcbiAgICAvLyBNb2NrIG1lc3NhZ2UgYnVpbGRlciB0aGF0IGltcGxlbWVudHMgcmVxdWlyZWQgYWJzdHJhY3QgbWV0aG9kc1xuXG4gICAgaXQoJ3Nob3VsZCByZWdpc3RlciBhIG5ldyBtZXNzYWdlIGJ1aWxkZXIgZmFjdG9yeScsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvaW5OYW1lID0gJ2Zha2VUZXN0Q29pbic7XG4gICAgICBjb25zdCBtb2NrQ29pbiA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gICAgICBzaW5vblxuICAgICAgICAuc3R1Yihjb2lucywgJ2dldCcpXG4gICAgICAgIC53aXRoQXJncyhjb2luTmFtZSlcbiAgICAgICAgLnJldHVybnMobW9ja0NvaW4gYXMgdW5rbm93biBhcyBCYXNlQ29pbik7XG5cbiAgICAgIGNvbnN0IGZhY3RvcnkgPSByZWdpc3Rlck1lc3NhZ2VCdWlsZGVyRmFjdG9yeShjb2luTmFtZSwgTW9ja01lc3NhZ2VCdWlsZGVyRmFjdG9yeSk7XG4gICAgICBzaG91bGQuZXhpc3QoZmFjdG9yeSk7XG4gICAgICBmYWN0b3J5LnNob3VsZC5iZS5pbnN0YW5jZW9mKE1vY2tNZXNzYWdlQnVpbGRlckZhY3RvcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgd2UgY2FuIGdldCBpdCBiYWNrXG4gICAgICBjb25zdCByZXRyaWV2ZWRGYWN0b3J5ID0gZ2V0TWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGNvaW5OYW1lKTtcbiAgICAgIHNob3VsZC5leGlzdChyZXRyaWV2ZWRGYWN0b3J5KTtcbiAgICAgIHJldHJpZXZlZEZhY3Rvcnkuc2hvdWxkLmJlLmluc3RhbmNlb2YoTW9ja01lc3NhZ2VCdWlsZGVyRmFjdG9yeSk7XG5cbiAgICAgIC8vIFJlc3RvcmUgdGhlIHN0dWJcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/mpc/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":""}
|