@renegade-fi/core
Version:
VanillaJS library for Renegade
108 lines • 4.95 kB
JavaScript
import { AUTH_SERVER_URL_ARBITRUM_ONE, AUTH_SERVER_URL_ARBITRUM_SEPOLIA, AUTH_SERVER_URL_BASE_MAINNET, AUTH_SERVER_URL_BASE_SEPOLIA, CHAIN_IDS, CHAIN_ID_TO_ENVIRONMENT, CHAIN_SPECIFIERS, DARKPOOL_ADDRESS_ARBITRUM_ONE, DARKPOOL_ADDRESS_ARBITRUM_SEPOLIA, DARKPOOL_ADDRESS_BASE_MAINNET, DARKPOOL_ADDRESS_BASE_SEPOLIA, ENVIRONMENT, ENV_AGNOSTIC_CHAINS, HSE_URL_MAINNET, HSE_URL_TESTNET, PERMIT2_ADDRESS_ARBITRUM_ONE, PERMIT2_ADDRESS_ARBITRUM_SEPOLIA, PERMIT2_ADDRESS_BASE_MAINNET, PERMIT2_ADDRESS_BASE_SEPOLIA, PRICE_REPORTER_URL_MAINNET, PRICE_REPORTER_URL_TESTNET, RELAYER_URL_ARBITRUM_ONE, RELAYER_URL_ARBITRUM_SEPOLIA, RELAYER_URL_BASE_MAINNET, RELAYER_URL_BASE_SEPOLIA, } from "../constants.js";
export const CONFIGS = {
[CHAIN_IDS.ArbitrumOne]: {
id: CHAIN_IDS.ArbitrumOne,
chainSpecifier: CHAIN_SPECIFIERS[CHAIN_IDS.ArbitrumOne],
hseBaseUrl: HSE_URL_MAINNET,
darkpoolAddress: DARKPOOL_ADDRESS_ARBITRUM_ONE,
relayerUrl: RELAYER_URL_ARBITRUM_ONE,
websocketUrl: `wss://${RELAYER_URL_ARBITRUM_ONE}:4000`,
priceReporterUrl: PRICE_REPORTER_URL_MAINNET,
permit2Address: PERMIT2_ADDRESS_ARBITRUM_ONE,
authServerUrl: AUTH_SERVER_URL_ARBITRUM_ONE,
},
[CHAIN_IDS.ArbitrumSepolia]: {
id: CHAIN_IDS.ArbitrumSepolia,
chainSpecifier: CHAIN_SPECIFIERS[CHAIN_IDS.ArbitrumSepolia],
hseBaseUrl: HSE_URL_TESTNET,
darkpoolAddress: DARKPOOL_ADDRESS_ARBITRUM_SEPOLIA,
relayerUrl: RELAYER_URL_ARBITRUM_SEPOLIA,
websocketUrl: `wss://${RELAYER_URL_ARBITRUM_SEPOLIA}:4000`,
priceReporterUrl: PRICE_REPORTER_URL_TESTNET,
permit2Address: PERMIT2_ADDRESS_ARBITRUM_SEPOLIA,
authServerUrl: AUTH_SERVER_URL_ARBITRUM_SEPOLIA,
},
[CHAIN_IDS.BaseMainnet]: {
id: CHAIN_IDS.BaseMainnet,
chainSpecifier: CHAIN_SPECIFIERS[CHAIN_IDS.BaseMainnet],
hseBaseUrl: HSE_URL_MAINNET,
darkpoolAddress: DARKPOOL_ADDRESS_BASE_MAINNET,
relayerUrl: RELAYER_URL_BASE_MAINNET,
websocketUrl: `wss://${RELAYER_URL_BASE_MAINNET}:4000`,
priceReporterUrl: PRICE_REPORTER_URL_MAINNET,
permit2Address: PERMIT2_ADDRESS_BASE_MAINNET,
authServerUrl: AUTH_SERVER_URL_BASE_MAINNET,
},
[CHAIN_IDS.BaseSepolia]: {
id: CHAIN_IDS.BaseSepolia,
chainSpecifier: CHAIN_SPECIFIERS[CHAIN_IDS.BaseSepolia],
hseBaseUrl: HSE_URL_TESTNET,
darkpoolAddress: DARKPOOL_ADDRESS_BASE_SEPOLIA,
relayerUrl: RELAYER_URL_BASE_SEPOLIA,
websocketUrl: `wss://${RELAYER_URL_BASE_SEPOLIA}:4000`,
priceReporterUrl: PRICE_REPORTER_URL_TESTNET,
permit2Address: PERMIT2_ADDRESS_BASE_SEPOLIA,
authServerUrl: AUTH_SERVER_URL_BASE_SEPOLIA,
},
};
/** Returns true if the chain ID is supported */
export function isSupportedChainId(chainId) {
return chainId in CONFIGS;
}
/** Returns true if the environment is supported */
export function isSupportedEnvironment(env) {
return Object.values(ENVIRONMENT).includes(env);
}
/** Get full config or throw if unsupported */
export function getSDKConfig(chainId) {
if (!isSupportedChainId(chainId)) {
throw new Error(`Unsupported chain ID: ${chainId}`);
}
return CONFIGS[chainId];
}
/** Get the environment for a given chain ID */
export function chainIdToEnv(chainId) {
if (!isSupportedChainId(chainId)) {
throw new Error(`Unsupported chain ID: ${chainId}`);
}
return CHAIN_ID_TO_ENVIRONMENT[chainId];
}
/** Get the chain ID for a given environment and chain name */
export function chainIdFromEnvAndName(env, name) {
switch (env) {
case ENVIRONMENT.Mainnet:
switch (name) {
case ENV_AGNOSTIC_CHAINS.Arbitrum:
return CHAIN_IDS.ArbitrumOne;
case ENV_AGNOSTIC_CHAINS.Base:
return CHAIN_IDS.BaseMainnet;
default:
throw new Error(`Unsupported env / chain: ${env} / ${name}`);
}
case ENVIRONMENT.Testnet:
switch (name) {
case ENV_AGNOSTIC_CHAINS.Arbitrum:
return CHAIN_IDS.ArbitrumSepolia;
case ENV_AGNOSTIC_CHAINS.Base:
return CHAIN_IDS.BaseSepolia;
default:
throw new Error(`Unsupported env / chain: ${env} / ${name}`);
}
}
}
/** Get the env agnostic chain for a given chain ID */
export function getEnvAgnosticChain(chainId) {
switch (chainId) {
case CHAIN_IDS.ArbitrumOne:
case CHAIN_IDS.ArbitrumSepolia:
return ENV_AGNOSTIC_CHAINS.Arbitrum;
case CHAIN_IDS.BaseSepolia:
case CHAIN_IDS.BaseMainnet:
return ENV_AGNOSTIC_CHAINS.Base;
}
}
/** Quick HSE URL lookup */
export function getHseBaseUrl(chainId) {
return getSDKConfig(chainId).hseBaseUrl;
}
//# sourceMappingURL=defaults.js.map