@dfns/sdk-keyimport-utils-nodejs 0.6.2 → 0.6.3-rc.1

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 (3) hide show
  1. package/index.d.ts +4 -1
  2. package/index.js +8 -4
  3. package/package.json +3 -3
package/index.d.ts CHANGED
@@ -2,9 +2,12 @@ import { ImportWalletBody, GetWalletResponse } from '@dfns/sdk/types/wallets';
2
2
  import { ListSignersResponse } from '@dfns/sdk/types/signers';
3
3
  type Signer = ListSignersResponse['clusters'][number]['signers'][number];
4
4
  type KeyCurve = GetWalletResponse['signingKey']['curve'];
5
- export declare const splitPrivateKeyForSigners: ({ signers, privateKey, keyCurve, }: {
5
+ declare const secp256k1KeySchemes: string[];
6
+ type KeyScheme = typeof secp256k1KeySchemes[number];
7
+ export declare const splitPrivateKeyForSigners: ({ signers, privateKey, keyCurve, keyScheme }: {
6
8
  signers: Signer[];
7
9
  privateKey: Uint8Array | Buffer;
8
10
  keyCurve: KeyCurve;
11
+ keyScheme?: string | undefined;
9
12
  }) => Pick<ImportWalletBody, 'protocol' | 'curve' | 'minSigners' | 'encryptedKeyShares'>;
10
13
  export {};
package/index.js CHANGED
@@ -2,10 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.splitPrivateKeyForSigners = void 0;
4
4
  const dfns_key_import_nodejs_1 = require("@dfns/dfns-key-import-nodejs");
5
- const getCurveAndProtocol = (keyCurve) => {
5
+ const secp256k1KeySchemes = ['Schnorr', 'ECDSA'];
6
+ const getCurveAndProtocol = (keyCurve, keyScheme) => {
7
+ if (keyScheme && (keyCurve !== 'secp256k1' || !secp256k1KeySchemes.includes(keyScheme))) {
8
+ Error(`Unsupported key scheme for import: "${keyCurve}, ${keyScheme}"`);
9
+ }
6
10
  switch (keyCurve) {
7
11
  case 'secp256k1':
8
- return { curve: dfns_key_import_nodejs_1.KeyCurve.Secp256k1, protocol: dfns_key_import_nodejs_1.KeyProtocol.Cggmp21 };
12
+ return { curve: dfns_key_import_nodejs_1.KeyCurve.Secp256k1, protocol: keyScheme === 'Schnorr' ? dfns_key_import_nodejs_1.KeyProtocol.FrostBitcoin : dfns_key_import_nodejs_1.KeyProtocol.Cggmp21 };
9
13
  case 'stark':
10
14
  return { curve: dfns_key_import_nodejs_1.KeyCurve.Stark, protocol: dfns_key_import_nodejs_1.KeyProtocol.Cggmp21 };
11
15
  case 'ed25519':
@@ -22,8 +26,8 @@ const getSecretScalar = (privateKey, keyCurve) => {
22
26
  return dfns_key_import_nodejs_1.SecretScalar.fromBytesBE(privateKey);
23
27
  }
24
28
  };
25
- const splitPrivateKeyForSigners = ({ signers, privateKey, keyCurve, }) => {
26
- const { curve, protocol } = getCurveAndProtocol(keyCurve);
29
+ const splitPrivateKeyForSigners = ({ signers, privateKey, keyCurve, keyScheme }) => {
30
+ const { curve, protocol } = getCurveAndProtocol(keyCurve, keyScheme);
27
31
  // We set this as constant do not expose it, because Dfns API will only accept minSigners = 3 for now.
28
32
  const minSigners = 3;
29
33
  const secretScalar = getSecretScalar(privateKey, keyCurve);
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dfns/sdk-keyimport-utils-nodejs",
3
- "version": "0.6.2",
3
+ "version": "0.6.3-rc.1",
4
4
  "dependencies": {
5
- "@dfns/dfns-key-import-nodejs": "0.2.1",
5
+ "@dfns/dfns-key-import-nodejs": "0.2.3",
6
6
  "buffer": "6.0.3",
7
7
  "cross-fetch": "3.1.6",
8
8
  "uuid": "9.0.0"
9
9
  },
10
10
  "peerDependencies": {
11
- "@dfns/sdk": "0.6.2"
11
+ "@dfns/sdk": "0.6.3-rc.1"
12
12
  },
13
13
  "main": "./index.js",
14
14
  "type": "commonjs"