UNPKG

@toruslabs/fnd-base

Version:
81 lines (77 loc) 3.38 kB
'use strict'; var constants = require('@toruslabs/constants'); const SAPPHIRE_NETWORK_URLS = { [constants.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"], [constants.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 = constants.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 = constants.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 = constants.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 === constants.SIG_TYPE.ECDSA_SECP256K1) { if (keyType !== constants.KEY_TYPE.SECP256K1) { throw new Error("Invalid key type for ecdsa-secp256k1"); } return dklsPath; } else if (sigType === constants.SIG_TYPE.ED25519) { if (keyType !== constants.KEY_TYPE.ED25519) { throw new Error("Invalid key type for ed25519"); } return frostPath; } else if (sigType === constants.SIG_TYPE.BIP340) { if (keyType !== constants.KEY_TYPE.SECP256K1) { throw new Error("Invalid key type for bip340"); } return frostPath; } throw new Error("Invalid sig type"); } else if (keyType === constants.KEY_TYPE.SECP256K1) { return dklsPath; } else if (keyType === constants.KEY_TYPE.ED25519) { return frostPath; } throw new Error("Invalid key type"); })(); const routeIdentifier = constants.LEGACY_NETWORKS_ROUTE_MAP[legacyNetwork]; return endpoints.map(e => { if (routeIdentifier && routeIdentifier.networkIdentifier) { return `${e}/${tssPath}/${routeIdentifier.networkIdentifier}`; } return `${e}/${tssPath}`; }); }; exports.SAPPHIRE_NETWORK_URLS = SAPPHIRE_NETWORK_URLS; exports.getRSSEndpoints = getRSSEndpoints; exports.getSSSEndpoints = getSSSEndpoints; exports.getTSSEndpoints = getTSSEndpoints;