UNPKG

@toruslabs/fnd-base

Version:
76 lines (73 loc) 3.18 kB
import { KEY_TYPE, TORUS_SAPPHIRE_NETWORK, LEGACY_NETWORKS_ROUTE_MAP, SIG_TYPE } from '@toruslabs/constants'; const SAPPHIRE_NETWORK_URLS = { [TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET]: ["https://node-1.dev-node.web3auth.io", "https://node-2.dev-node.web3auth.io", "https://node-3.dev-node.web3auth.io", "https://node-4.dev-node.web3auth.io", "https://node-5.dev-node.web3auth.io"], [TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET]: ["https://node-1.node.web3auth.io", "https://node-2.node.web3auth.io", "https://node-3.node.web3auth.io", "https://node-4.node.web3auth.io", "https://node-5.node.web3auth.io"] }; const getSSSEndpoints = (sapphireNetwork, legacyNetwork) => { const endpoints = SAPPHIRE_NETWORK_URLS[sapphireNetwork]; if (!endpoints || endpoints.length === 0) { throw new Error(`Unsupported network: ${sapphireNetwork}`); } const routeIdentifier = LEGACY_NETWORKS_ROUTE_MAP[legacyNetwork]; return endpoints.map(e => { if (routeIdentifier && routeIdentifier.networkIdentifier) { return `${e}/sss/${routeIdentifier.networkIdentifier}/jrpc`; } return `${e}/sss/jrpc`; }); }; const getRSSEndpoints = (sapphireNetwork, legacyNetwork) => { const endpoints = SAPPHIRE_NETWORK_URLS[sapphireNetwork]; if (!endpoints || endpoints.length === 0) { throw new Error(`Unsupported network: ${sapphireNetwork}`); } const routeIdentifier = LEGACY_NETWORKS_ROUTE_MAP[legacyNetwork]; return endpoints.map(e => { if (routeIdentifier && routeIdentifier.networkIdentifier) { return `${e}/rss/${routeIdentifier.networkIdentifier}`; } return `${e}/rss`; }); }; const getTSSEndpoints = (sapphireNetwork, legacyNetwork, keyType = KEY_TYPE.SECP256K1, sigType) => { const endpoints = SAPPHIRE_NETWORK_URLS[sapphireNetwork]; if (!endpoints || endpoints.length === 0) { throw new Error(`Unsupported network: ${sapphireNetwork}`); } const tssPath = (() => { const dklsPath = "tss"; const frostPath = "tss-frost"; if (sigType) { if (sigType === SIG_TYPE.ECDSA_SECP256K1) { if (keyType !== KEY_TYPE.SECP256K1) { throw new Error("Invalid key type for ecdsa-secp256k1"); } return dklsPath; } else if (sigType === SIG_TYPE.ED25519) { if (keyType !== KEY_TYPE.ED25519) { throw new Error("Invalid key type for ed25519"); } return frostPath; } else if (sigType === SIG_TYPE.BIP340) { if (keyType !== KEY_TYPE.SECP256K1) { throw new Error("Invalid key type for bip340"); } return frostPath; } throw new Error("Invalid sig type"); } else if (keyType === KEY_TYPE.SECP256K1) { return dklsPath; } else if (keyType === KEY_TYPE.ED25519) { return frostPath; } throw new Error("Invalid key type"); })(); const routeIdentifier = LEGACY_NETWORKS_ROUTE_MAP[legacyNetwork]; return endpoints.map(e => { if (routeIdentifier && routeIdentifier.networkIdentifier) { return `${e}/${tssPath}/${routeIdentifier.networkIdentifier}`; } return `${e}/${tssPath}`; }); }; export { SAPPHIRE_NETWORK_URLS, getRSSEndpoints, getSSSEndpoints, getTSSEndpoints };