namillum
Version:
Bubble Protocol SDK
62 lines (51 loc) • 1.52 kB
text/typescript
/**
* helper file to extract info from public/config.js
*/
import { Environment, Network } from "./enum";
const {
api_max_retry_attempt,
blockchain_explorer_config,
environment_config,
networks_config,
refresh_rate_config
} = (window as { [key: string]: any })['config'];
export interface NetworkConfig {
proxy: string
impl: string
blockchain: string
node_status: string
api_list: []
}
export interface Networks {
[Network.TESTNET]: NetworkConfig
[Network.MAINNET]: NetworkConfig
[Network.ISOLATED_SERVER]: NetworkConfig
[Network.PRIVATE]: NetworkConfig // not in used in config.json
}
export const getEnvironment = () => {
return environment_config;
}
export const getBlockchainExplorer = () => {
return blockchain_explorer_config;
}
export const getRefreshRate = (): number => {
return refresh_rate_config;
}
export const getApiMaxRetry = () => {
return api_max_retry_attempt || 10;
}
// returns entire networks_config json
// e.g. networks_config : { testnet: { ... } , mainnet: { ... } }
export const getNetworks = (): Networks => {
return networks_config;
}
// return only specfic networks_config section
// according to environment_config
// e.g. mainnet : { proxy: "", impl: "" }
export const getNetworkConfigByEnv = (): NetworkConfig => {
if (environment_config === Environment.PROD) {
return networks_config[Network.MAINNET]
}
// defaults to testnet
return networks_config[Network.TESTNET]
}