mars-v2-frontend/src/utils/getCurrentChainId.ts
Linkie Link 7707586c57
Cleanup env variables (#713)
* fix: cleaned up env variables and disabled chain selector if there is only one chain

* env: update .env.example
2024-01-04 17:02:59 +01:00

53 lines
1.6 KiB
TypeScript

import chains from 'configs/chains'
import { LocalStorageKeys } from 'constants/localStorageKeys'
import { NETWORK } from 'types/enums/network'
import { ChainInfoID } from 'types/enums/wallet'
export const getCurrentChainId = () => {
const currentNetwork = process.env.NEXT_PUBLIC_NETWORK ?? NETWORK.TESTNET
const defaultChainId =
currentNetwork === NETWORK.MAINNET
? chains[ChainInfoID.Osmosis1].id
: chains[ChainInfoID.OsmosisDevnet].id
let chainId = defaultChainId
if (window) {
const subdomain = window.location.hostname.split('.')[0]
switch (subdomain) {
case 'osmosis':
if (currentNetwork === NETWORK.MAINNET) chainId = ChainInfoID.Osmosis1
break
case 'testnet-osmosis':
if (currentNetwork === NETWORK.TESTNET) chainId = ChainInfoID.OsmosisDevnet
break
case 'testnet-neutron':
if (currentNetwork === NETWORK.TESTNET) chainId = ChainInfoID.Pion1
break
}
if (chainId !== defaultChainId) return chainId
}
const localStorageChainId = localStorage.getItem(LocalStorageKeys.CURRENT_CHAIN_ID) as ChainInfoID
if (localStorageChainId !== null) {
switch (localStorageChainId) {
case ChainInfoID.Osmosis1:
if (currentNetwork === NETWORK.MAINNET) chainId = ChainInfoID.Osmosis1
break
case ChainInfoID.OsmosisDevnet:
if (currentNetwork === NETWORK.TESTNET) chainId = ChainInfoID.OsmosisDevnet
break
case ChainInfoID.Pion1:
if (currentNetwork === NETWORK.TESTNET) chainId = ChainInfoID.Pion1
break
}
}
return chainId
}