import { Network, NetworkInfo } from '../types'

export const NetworkToChainId: Record<string, number> = {
  mainnet: 220,
  testnet: 221,
  local: 223,
  devnet: 11
};
export const NetworkToNetworkName: Record<string, Network> = {
  mainnet: Network.MAINNET,
  testnet: Network.TESTNET
};

export const NetworkToNodeAPI: Record<string, string> = {
  mainnet: "https://rpc.endless.link/v1",
  testnet: "https://rpc-test.endless.link/v1",
  devnet: "https://rpc-testnet.endless.link/v1",
  local: "http://127.0.0.1:8080/v1",
};

export const getNetworkInfo = (network: string): NetworkInfo => {
  return {
    name: NetworkToNetworkName[network] ?? network,
    chainId: NetworkToChainId[network],
    url: NetworkToNodeAPI[network],
  }
}

export const isLuffa = () => {
  return window && window?._endlessWallet !== undefined || window?.webkit?.messageHandlers?._endlessWallet !== undefined || false;
}


export const isLuffaMiniProgramWebview = () => {
  const userAgent = window && window?.navigator?.userAgent || '';
  return userAgent.includes('miniProgram');
}


export const isLuffaMiniProgram = () => {
  return window?.wx && window?.wx?.canIUse || false;
}

export const networkMap: Partial<Record<Network | string, string>> = {
  [Network.MAINNET]: 'endless',
  [Network.TESTNET]: 'eds',
}
