1
- import {
2
- INodeDetails ,
3
- KEY_TYPE ,
4
- LEGACY_NETWORKS_ROUTE_MAP ,
5
- SIG_TYPE ,
6
- TORUS_LEGACY_NETWORK ,
7
- TORUS_LEGACY_NETWORK_TYPE ,
8
- TORUS_NETWORK_TYPE ,
9
- TORUS_SAPPHIRE_NETWORK ,
10
- TORUS_SAPPHIRE_NETWORK_TYPE ,
11
- WEB3AUTH_KEY_TYPE ,
12
- WEB3AUTH_SIG_TYPE ,
13
- } from "@toruslabs/constants" ;
1
+ import { KEY_TYPE , SIG_TYPE , WEB3AUTH_KEY_TYPE , WEB3AUTH_SIG_TYPE } from "@toruslabs/constants" ;
14
2
15
- import { getSapphireNodeDetails } from "./sapphireNetworkConfig" ;
16
-
17
- export function validateKeyTypeAndSigTypeForTSS ( keyType : WEB3AUTH_KEY_TYPE , sigType : WEB3AUTH_SIG_TYPE ) {
3
+ export function validateKeyTypeAndSigTypeForTSS ( keyType : WEB3AUTH_KEY_TYPE , sigType ?: WEB3AUTH_SIG_TYPE ) {
18
4
if ( sigType === SIG_TYPE . ECDSA_SECP256K1 ) {
19
5
if ( keyType !== KEY_TYPE . SECP256K1 ) {
20
6
throw new Error ( "Invalid key type for ecdsa-secp256k1" ) ;
@@ -27,20 +13,28 @@ export function validateKeyTypeAndSigTypeForTSS(keyType: WEB3AUTH_KEY_TYPE, sigT
27
13
if ( keyType !== KEY_TYPE . ED25519 ) {
28
14
throw new Error ( "Invalid key type for ed25519" ) ;
29
15
}
30
- } else {
31
- throw new Error ( `Invalid signature type, ${ sigType } ` ) ;
32
16
}
33
17
}
34
18
35
- export function fetchLocalConfig ( network : TORUS_NETWORK_TYPE , keyType : WEB3AUTH_KEY_TYPE , sigType ?: WEB3AUTH_SIG_TYPE ) : INodeDetails | undefined {
36
- if ( Object . values ( TORUS_SAPPHIRE_NETWORK ) . includes ( network as TORUS_SAPPHIRE_NETWORK_TYPE ) ) {
37
- return getSapphireNodeDetails ( network as TORUS_SAPPHIRE_NETWORK_TYPE , undefined , keyType , sigType ) ;
38
- }
19
+ export function validateSigTypeAndGetTSSPath ( keyType : WEB3AUTH_KEY_TYPE , sigType ?: WEB3AUTH_SIG_TYPE ) : "tss" | "tss-frost" {
20
+ validateKeyTypeAndSigTypeForTSS ( keyType , sigType ) ;
39
21
40
- if ( Object . values ( TORUS_LEGACY_NETWORK ) . includes ( network as TORUS_LEGACY_NETWORK_TYPE ) ) {
41
- const legacyMap = LEGACY_NETWORKS_ROUTE_MAP [ network as TORUS_LEGACY_NETWORK_TYPE ] ;
42
- if ( legacyMap . migrationCompleted ) return getSapphireNodeDetails ( legacyMap . networkMigratedTo , network as TORUS_LEGACY_NETWORK_TYPE , keyType ) ;
22
+ let tssPath : "tss" | "tss-frost" ;
23
+ if ( ! sigType ) {
24
+ // if sigType is not provided, we will determine the tssPath based on the keyType
25
+ if ( keyType === KEY_TYPE . SECP256K1 ) {
26
+ tssPath = "tss" ;
27
+ } else if ( keyType === KEY_TYPE . ED25519 ) {
28
+ tssPath = "tss-frost" ;
29
+ }
30
+ } else if ( sigType === SIG_TYPE . ECDSA_SECP256K1 ) {
31
+ // we will use dkls for ECDSA Sigs
32
+ tssPath = "tss" ;
33
+ } else if ( sigType === SIG_TYPE . ED25519 || sigType === SIG_TYPE . BIP340 ) {
34
+ // we will use frost for Ed25519 and BIP340 Sigs
35
+ tssPath = "tss-frost" ;
36
+ } else {
37
+ throw new Error ( `Unsupported signature type: ${ sigType } for key: ${ keyType } ` ) ;
43
38
}
44
-
45
- return undefined ;
39
+ return tssPath ;
46
40
}
0 commit comments