@rango-dev/provider-walletconnect-2 0.26.3-next.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/constants.ts", "../src/helpers.ts", "../src/session.ts", "../src/signer.ts", "../src/signers/cosmos.ts", "../src/signers/helper.ts", "../src/signers/mock.ts", "../src/signers/evm.ts", "../src/signers/solana.ts"],
4
- "sourcesContent": ["import type { WCInstance } from './types';\nimport type {\n CanSwitchNetwork,\n Connect,\n Disconnect,\n GetInstance,\n Subscribe,\n SwitchNetwork,\n WalletConfig,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { ISignClient } from '@walletconnect/types';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport { debug, error as logError } from '@rango-dev/logging-core';\nimport { Networks, WalletTypes } from '@rango-dev/wallets-shared';\nimport Client from '@walletconnect/sign-client';\nimport { AccountId, ChainId } from 'caip';\nimport { evmBlockchains } from 'rango-types';\n\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_NETWORK,\n EthereumEvents,\n EthereumRPCMethods,\n NAMESPACES,\n RELAY_URL,\n} from './constants';\nimport {\n createModalInstance,\n filterEvmAccounts,\n simulateRequest,\n switchOrAddEvmChain,\n} from './helpers';\nimport {\n cleanupSingleSession,\n disconnectSessions,\n getAccountsFromEvent,\n getAccountsFromSession,\n getPersistedChainId,\n ignoreNamespaceMethods,\n persistCurrentChainId,\n tryConnect,\n updateSessionAccounts,\n} from './session';\nimport signer from './signer';\n\nconst WALLET = WalletTypes.WALLET_CONNECT_2;\n\nexport interface Environments extends Record<string, string> {\n WC_PROJECT_ID: string;\n}\n\nlet envs: Environments = {\n WC_PROJECT_ID: '',\n};\nexport const init = (environments: Environments) => {\n envs = environments;\n\n createModalInstance(envs.WC_PROJECT_ID);\n};\n\nexport const config: WalletConfig = {\n type: WALLET,\n checkInstallation: false,\n isAsyncInstance: true,\n defaultNetwork: DEFAULT_NETWORK,\n isAsyncSwitchNetwork: true,\n};\n\nexport const getInstance: GetInstance = async (options) => {\n const { currentProvider, getState, meta } = options;\n\n /*\n * Create a new pair, if exists use the pair,\n * Or use the already created one.\n */\n let provider: ISignClient;\n if (!currentProvider) {\n if (!envs.WC_PROJECT_ID) {\n throw new Error(\n 'You need to set `WC_PROJECT_ID` in Wallet Connect provider.'\n );\n }\n provider = await Client.init({\n relayUrl: RELAY_URL,\n projectId: envs.WC_PROJECT_ID,\n metadata: DEFAULT_APP_METADATA,\n });\n } else {\n provider = currentProvider;\n }\n\n return {\n client: provider,\n session: null,\n request: async (params: any) =>\n simulateRequest(params, provider, meta, getState),\n };\n};\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const { client } = instance as WCInstance;\n // Try to restore the session first, if couldn't, create a new session by showing a modal.\n const session = await tryConnect(client, { meta });\n // Override the value (session).\n instance.session = session;\n const currentChainId = await getPersistedChainId(client);\n const accounts = getAccountsFromSession(session);\n return filterEvmAccounts(accounts, currentChainId);\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n updateChainId,\n updateAccounts,\n disconnect,\n}) => {\n const { client } = instance as WCInstance;\n\n /**\n * Session events refrence:\n * https://docs.walletconnect.com/2.0/specs/clients/sign/session-events\n */\n\n // Listen to updating the session by adding a new chain, method, or event\n client.on('session_update', (args) => {\n const allAccounts = getAccountsFromEvent(args);\n allAccounts.forEach((accountsWithChain) => {\n updateAccounts(accountsWithChain.accounts, accountsWithChain.chainId);\n });\n });\n\n // Listen to events triggred by wallet. (e.g. accountsChanged and chainChanged)\n client.on('session_event', (args) => {\n if (args.params.event.name === EthereumEvents.ACCOUNTS_CHANGED) {\n const accounts = args.params.event.data.map((account: string) => {\n return new AccountId(account).address;\n });\n const chainId = ChainId.parse(args.params.chainId).reference;\n updateAccounts(accounts);\n updateChainId(chainId);\n } else if (args.params.event.name === EthereumEvents.CHAIN_CHANGED) {\n const chainId = args.params.event.data;\n updateChainId(chainId);\n void persistCurrentChainId(instance.client, chainId);\n } else {\n console.log('[WC2] session_event not supported', args.params.event);\n }\n });\n\n client.on('session_delete', async (event) => {\n console.log('[WC2] your wallet has requested to delete session.', event);\n void cleanupSingleSession(client, event.topic);\n disconnect();\n });\n};\n\nexport const switchNetwork: SwitchNetwork = async ({\n network,\n instance,\n meta,\n getState,\n updateChainId,\n}) => {\n const evm = evmBlockchains(meta);\n const chainId = evm.find((chain) => chain.name === network)?.chainId;\n if (!chainId) {\n const error = new Error(`There is no match for ${chainId}`);\n logError(error);\n throw error;\n }\n const chaindIdStr = new ChainId({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(parseInt(chainId)),\n }).toString();\n\n const session = instance.session;\n const evmNamespace = session.namespaces[NAMESPACES.ETHEREUM];\n const authorizedChains = evmNamespace?.chains || [];\n const authorizedMethods = evmNamespace?.methods || [];\n\n if (\n authorizedMethods.includes(EthereumRPCMethods.SWITCH_CHAIN) &&\n !ignoreNamespaceMethods(instance)\n ) {\n const currentNetwork = getState?.().network || Networks.ETHEREUM;\n await updateSessionAccounts(instance, network, currentNetwork, meta);\n await switchOrAddEvmChain(meta, network, currentNetwork, instance);\n } else if (authorizedChains.includes(chaindIdStr)) {\n updateChainId(chainId);\n return;\n } else {\n const error = new Error(`Chain ${chainId} is not configured.`);\n logError(error);\n throw error;\n }\n};\n\n/**\n *\n * Note:\n * There is no straight-forward way to detect the wallet supports which blockchain,\n * So we send request to wallet and expect to be rejected on the wallet if it's not supported.\n *\n */\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => true;\n\nexport const disconnect: Disconnect = async ({ instance }) => {\n const { client } = instance as WCInstance;\n\n if (client) {\n void disconnectSessions(client).catch((error) => debug(error));\n }\n};\n\nexport const getSigners: (provider: WCInstance) => SignerFactory = signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n return {\n name: 'WalletConnect',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/walletconnect/icon.svg',\n installLink: '',\n color: '#b2dbff',\n supportedChains: evms,\n showOnMobile: true,\n mobileWallet: true,\n };\n};\n", "import { Networks } from '@rango-dev/wallets-shared';\n\nexport const DEFAULT_NETWORK = Networks.ETHEREUM;\nexport const PING_TIMEOUT = 10_000;\n\nexport enum NAMESPACES {\n ETHEREUM = 'eip155',\n SOLANA = 'solana',\n COSMOS = 'cosmos',\n POLKADOT = 'polkadot',\n CARDANO = 'cip34',\n ERLOND = 'elrond',\n MULTIVERSX = 'multiversx',\n}\n\nexport const CHAIN_ID_STORAGE = 'wc@2:client//namespaces';\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/solana-rpc\nexport enum SolanaRPCMethods {\n GET_ACCOUNTS = 'solana_getAccounts',\n REQUEST_ACCOUNTS = 'solana_requestAccounts',\n SIGN_TRANSACTION = 'solana_signTransaction',\n SIGN_MESSAGE = 'solana_signMessage',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/cosmos-rpc\nexport enum CosmosRPCMethods {\n GET_ACCOUNTS = 'cosmos_getAccounts',\n SIGN_DIRECT = 'cosmos_signDirect',\n SIGN_AMINO = 'cosmos_signAmino',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/ethereum-rpc\nexport enum EthereumRPCMethods {\n PERSONAL_SIGN = 'personal_sign',\n SIGN = 'eth_sign',\n SIGN_TYPED_DATA = 'eth_signTypedData',\n SIGN_TRANSACTION = 'eth_signTransaction',\n SEND_TRANSACTION = 'eth_sendTransaction',\n SEND_RAW_TRANSACTION = 'eth_sendRawTransaction',\n SWITCH_CHAIN = 'wallet_switchEthereumChain',\n ADD_CHAIN = 'wallet_addEthereumChain',\n GET_CHAIN = 'eth_chainId',\n}\n\nexport enum StarknetRPCMethods {\n REQUEST_ADD_INVOKE_TRANSACTION = 'starknet_requestAddInvokeTransaction',\n SIGN_TYPED_DATA = 'starknet_signTypedData',\n}\n\nexport enum EthereumEvents {\n CHAIN_CHANGED = 'chainChanged',\n ACCOUNTS_CHANGED = 'accountsChanged',\n}\n\nexport const DEFAULT_ETHEREUM_EVENTS: EthereumEvents[] = [\n EthereumEvents.CHAIN_CHANGED,\n EthereumEvents.ACCOUNTS_CHANGED,\n];\n\nexport const DEFAULT_ETHEREUM_METHODS = [\n EthereumRPCMethods.PERSONAL_SIGN,\n EthereumRPCMethods.SEND_TRANSACTION,\n EthereumRPCMethods.SIGN_TRANSACTION,\n EthereumRPCMethods.SWITCH_CHAIN,\n EthereumRPCMethods.ADD_CHAIN,\n EthereumRPCMethods.GET_CHAIN,\n];\n\nexport const DEFAULT_SOLANA_METHODS = [\n SolanaRPCMethods.SIGN_TRANSACTION,\n SolanaRPCMethods.SIGN_MESSAGE,\n];\n\nexport const DEFAULT_COSMOS_METHODS = [\n CosmosRPCMethods.GET_ACCOUNTS,\n CosmosRPCMethods.SIGN_AMINO,\n CosmosRPCMethods.SIGN_DIRECT,\n];\n\n// refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\nexport const DEFAULT_SOLANA_CHAIN_ID = '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ';\n\nexport const DEFAULT_APP_METADATA = {\n name: 'Rango Exchange',\n description: 'The Ultimate Cross-Chain Solution',\n url: 'https://app.rango.exchange/',\n icons: ['https://app.rango.exchange/logo-rounded.png'],\n};\n\nexport const RELAY_URL = 'wss://relay.walletconnect.com';\n", "import type { WalletState } from '@rango-dev/wallets-shared';\nimport type { ProposalTypes } from '@walletconnect/types';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport {\n convertEvmBlockchainMetaToEvmChainInfo,\n isEvmAddress,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport { AccountId, ChainId } from 'caip';\nimport { evmBlockchains, isEvmBlockchain } from 'rango-types';\n\nimport {\n DEFAULT_ETHEREUM_EVENTS,\n DEFAULT_ETHEREUM_METHODS,\n DEFAULT_SOLANA_CHAIN_ID,\n EthereumRPCMethods,\n NAMESPACES,\n} from './constants';\nimport { getLastSession } from './session';\n\nlet web3Modal: WalletConnectModal;\nexport function createModalInstance(projectId: string) {\n if (!web3Modal) {\n web3Modal = new WalletConnectModal({\n projectId,\n themeMode: 'light',\n themeVariables: {\n '--wcm-z-index': '999999999',\n },\n });\n }\n}\nexport function getModal(): WalletConnectModal {\n return web3Modal;\n}\n\ntype FinalNamespaces = {\n [key in NAMESPACES]?: ProposalTypes.BaseRequiredNamespace;\n};\n\n/*\n * Some wallets like 1inch (android) has problem when we pass cosmos chains in optional namespace\n * Also some wallets like keplr mobile doesn't work when we don't pass cosmos chains in required namespace\n * It seems to be a bug in their current implementation.\n */\nexport function generateOptionalNamespace(\n meta: BlockchainMeta[]\n): FinalNamespaces | undefined {\n const evm = evmBlockchains(meta);\n const evmChains = evm.map((chain) => {\n return new ChainId({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(parseInt(chain.chainId)),\n }).toString();\n });\n\n const namespaces: FinalNamespaces = {\n [NAMESPACES.ETHEREUM]: {\n methods: DEFAULT_ETHEREUM_METHODS,\n events: DEFAULT_ETHEREUM_EVENTS,\n chains: evmChains,\n },\n };\n return namespaces;\n}\n\nexport function solanaChainIdToNetworkName(chainId: string): string {\n return chainId === DEFAULT_SOLANA_CHAIN_ID ? Networks.SOLANA : chainId;\n}\n\n/**\n *\n * In `rango-preset` we are working with `window.ethereum.request()`,\n * this is an interceptor for some RPC methods (e.g. eth_chainId).\n *\n */\nexport async function simulateRequest(\n params: any,\n provider: any,\n meta: BlockchainMeta[],\n getState: () => WalletState\n) {\n if (params.method === 'eth_chainId') {\n const currentSession = getLastSession(provider);\n const standaloneChains = Object.values(currentSession.namespaces)\n .map((namespace) => namespace.chains)\n .flat() as string[];\n\n const network = getState().network;\n\n if (standaloneChains.length > 0) {\n const chainId = network\n ? getChainIdByNetworkName(network, meta)\n : undefined;\n\n if (chainId) {\n return chainId;\n }\n\n const firstIndex = 0;\n const firstChain = standaloneChains[firstIndex];\n const firstChainId = new ChainId(firstChain);\n return firstChainId.reference;\n }\n\n throw new Error(`Couldn't find any chain on namespace`);\n }\n throw new Error('Dissallowed method:', params);\n}\n\nexport function getChainIdByNetworkName(\n network: string,\n meta: BlockchainMeta[]\n): string | undefined {\n const targetBlockchain = meta.find(\n (blockchain) => blockchain.name === network\n );\n const chainIdInHex = targetBlockchain?.chainId;\n if (!chainIdInHex) {\n return undefined;\n }\n\n const chainId = String(parseInt(chainIdInHex));\n\n return chainId;\n}\n\nexport async function switchOrAddEvmChain(\n meta: BlockchainMeta[],\n requestedNetwork: string,\n currentNetwork: string,\n instance: any\n) {\n const evmBlockchains = meta.filter(isEvmBlockchain);\n const evmNetworksChainInfo =\n convertEvmBlockchainMetaToEvmChainInfo(evmBlockchains);\n const targetChain = evmNetworksChainInfo[requestedNetwork];\n const targetBlockchain = meta.find(\n (blockchain: BlockchainMeta) => blockchain.name === requestedNetwork\n );\n const chainIdInHex = targetBlockchain?.chainId;\n\n const currentChainId = getChainIdByNetworkName(currentNetwork, meta);\n const currentChainEip = ChainId.format({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(currentChainId),\n });\n\n const session = instance.session;\n\n try {\n await instance.client.request({\n topic: session.topic,\n request: {\n method: EthereumRPCMethods.SWITCH_CHAIN,\n params: [\n {\n chainId: chainIdInHex,\n },\n ],\n },\n // It's required to pass current chain, otherwise it won't work\n chainId: currentChainEip,\n });\n } catch (err: any) {\n const addChainError = 4902;\n if (\n err?.code === addChainError ||\n err?.message?.includes(String(addChainError))\n ) {\n await instance.client.request({\n topic: session.topic,\n request: {\n method: EthereumRPCMethods.ADD_CHAIN,\n params: [targetChain],\n },\n // It's required to pass current chain, otherwise it won't work\n chainId: currentChainEip,\n });\n } else {\n throw err;\n }\n }\n}\n\nexport function getCurrentEvmAccountAddress(instance: any) {\n return instance.session.namespaces.eip155.accounts\n ?.map((account: string) => {\n return new AccountId(account).address;\n })\n ?.filter((address: string) => isEvmAddress(address))?.[0];\n}\n\nexport function getEvmAccount(\n network: string,\n address: string,\n meta: BlockchainMeta[]\n) {\n const currentChainId = getChainIdByNetworkName(network, meta);\n return AccountId.format({\n chainId: {\n namespace: NAMESPACES.ETHEREUM,\n reference: String(currentChainId),\n },\n address,\n });\n}\n\n// It's enough to return only connected network for the EVM networks and ignore others\nexport function filterEvmAccounts(\n accounts: {\n address: string;\n chainId: string;\n }[],\n currentChainId?: string\n) {\n let firstEvmAddress = false;\n return accounts\n .filter(({ address, chainId }) => {\n const isEvm = isEvmAddress(address);\n if (isEvm) {\n if (currentChainId && chainId !== currentChainId) {\n return false;\n }\n if (!currentChainId) {\n if (firstEvmAddress) {\n return false;\n }\n firstEvmAddress = true;\n }\n }\n return true;\n })\n .map(({ address, chainId }) => ({\n accounts: [address],\n chainId: chainId,\n }));\n}\n", "import type { ConnectParams, CreateSessionParams } from './types';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type {\n PairingTypes,\n SessionTypes,\n SignClientTypes,\n} from '@walletconnect/types';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport { Networks, timeout } from '@rango-dev/wallets-shared';\nimport { getSdkError } from '@walletconnect/utils';\nimport { AccountId } from 'caip';\n\nimport { CHAIN_ID_STORAGE, PING_TIMEOUT } from './constants';\nimport {\n generateOptionalNamespace,\n getCurrentEvmAccountAddress,\n getEvmAccount,\n getModal,\n solanaChainIdToNetworkName,\n} from './helpers';\n\nexport function getLastSession(client: SignClient) {\n return client.session.values[client.session.values.length - 1];\n}\n\n/**\n *\n * Try to ping the wallet, if wallet responded with `pong`, session is a valid and we will use the session.\n * If the wallet didn't respond during 10 seconds (PING_TIME), we assume the wallet isn't available and we need to create a new session.\n *\n */\nexport async function restoreSession(\n client: SignClient,\n pairingTopic: PairingTypes.Struct['topic']\n): Promise<SessionTypes.Struct | undefined> {\n await timeout(\n client.ping({\n topic: pairingTopic,\n }),\n PING_TIMEOUT\n );\n\n // We assume last session is the correct session, beacuse we are doing clean up and keeps only one pairing/session.\n const session = getLastSession(client);\n return session;\n}\n\n/**\n *\n * Getting a pair of required and optional namespaces then tries to show a modal and connect (pair)\n * To the wallet.\n * @param client\n * @param options\n * @returns\n */\nexport async function createSession(\n client: SignClient,\n options: CreateSessionParams\n): Promise<SessionTypes.Struct> {\n const { requiredNamespaces, optionalNamespaces, pairingTopic } = options;\n\n try {\n const { uri, approval } = await client.connect({\n requiredNamespaces,\n optionalNamespaces,\n pairingTopic,\n });\n\n // Open QRCode modal if a URI was returned (i.e. we're not connecting an existing pairing).\n let onCloseModal;\n if (uri) {\n // Create a flat array of all requested chains across namespaces.\n const allNamespaces = {\n ...(requiredNamespaces || {}),\n ...(optionalNamespaces || {}),\n };\n\n const standaloneChains = Object.values(allNamespaces)\n .map((namespace) => namespace.chains)\n .flat() as string[];\n\n const modal = getModal();\n void modal.openModal({ uri, standaloneChains });\n\n onCloseModal = new Promise((_, reject) => {\n modal.subscribeModal((state) => {\n // the modal was closed so reject the promise\n if (!state.open) {\n reject(new Error('Modal has been closed.'));\n }\n });\n });\n }\n\n const session = approval();\n\n if (onCloseModal) {\n const result = await Promise.race([session, onCloseModal]);\n // We know onClose only reject a modal and never returns a value.\n return result as SessionTypes.Struct;\n }\n return await session;\n } finally {\n getModal().closeModal();\n }\n}\n\n/**\n *\n * A user (client) can have multiple pairings (to different wallets), we are assuming\n * the last pairing is the active pairing for now. A better UX can be showing a list of pairings\n * and let the user to choose the right pairing manually. Because we don't have that yet, we will pick up the last one.\n *\n */\nexport function tryGetPairing(\n client: SignClient\n): PairingTypes.Struct | undefined {\n const pairings = client.pairing.getAll({ active: true });\n const lastPairing =\n pairings.length > 0 ? pairings[pairings.length - 1] : undefined;\n\n return lastPairing;\n}\n\n/**\n *\n * Try to restore the session first, if couldn't, create a new session by showing a modal.\n *\n */\nexport async function tryConnect(\n client: SignClient,\n params: ConnectParams\n): Promise<SessionTypes.Struct> {\n const { meta } = params;\n\n // We try to get all of our supported chains as optional.\n const optionalNamespaces = generateOptionalNamespace(meta);\n\n // Check if the user has a session, if yes, restore the session and use it.\n let session: SessionTypes.Struct | undefined;\n const pairing = tryGetPairing(client);\n if (pairing) {\n try {\n session = await restoreSession(client, pairing.topic);\n } catch (e) {\n await disconnectSessions(client);\n }\n }\n\n // In case of connecting for the first time or session couldn't be restored, we will create a new session.\n if (!session) {\n session = await createSession(client, {\n requiredNamespaces: {},\n optionalNamespaces,\n });\n }\n\n return session;\n}\n\n/**\n *\n * Try to find sessions with a topic id and expire them.\n *\n */\nexport async function cleanupSingleSession(client: SignClient, topic: string) {\n const sessions = client.session.getAll();\n const pairings = client.pairing.getAll();\n\n sessions.forEach((session) => {\n if (session.topic === topic || session.pairingTopic === topic) {\n const requestForDeleteTopic =\n session.pairingTopic === topic ? session.pairingTopic : session.topic;\n client.core.expirer.set(requestForDeleteTopic, 0);\n }\n });\n\n pairings.forEach((pairing) => {\n if (pairing.topic === topic) {\n client.core.expirer.set(topic, 0);\n }\n });\n}\n\n/**\n *\n * Disconnect means to delete the session on both parties (dApp & wallet) at the same time.\n *\n */\nexport async function disconnectSessions(client: SignClient) {\n const allPromises = [];\n\n const sessions = client.session.getAll();\n for (const session of sessions) {\n allPromises.push(\n client.disconnect({\n topic: session.topic,\n reason: getSdkError('USER_DISCONNECTED'),\n })\n );\n }\n\n const pairings = client.pairing.getAll();\n for (const pairing of pairings) {\n allPromises.push(\n client.disconnect({\n topic: pairing.topic,\n reason: getSdkError('USER_DISCONNECTED'),\n })\n );\n }\n\n // reset the current chain id\n void persistCurrentChainId(client, undefined);\n\n return await Promise.all(allPromises);\n}\n\nexport function getAccountsFromSession(session: SessionTypes.Struct) {\n const accounts = Object.values(session.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n .map((account) => {\n const { address, chainId } = new AccountId(account);\n /*\n * Note: Solana has a specific ID, we need to convert it back to network name.\n * It will return the chain id itslef if it's not that specific ID.\n */\n const chain = solanaChainIdToNetworkName(chainId.reference);\n return {\n address,\n chainId: chain,\n };\n });\n return accounts;\n}\n\nexport function getAccountsFromEvent(\n event: SignClientTypes.BaseEventArgs<{\n namespaces: SessionTypes.Namespaces;\n }>\n) {\n const accounts = Object.values(event.params.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n .map((account) => {\n const { address, chainId } = new AccountId(account);\n return {\n accounts: [address],\n chainId:\n chainId.namespace === 'solana' ? Networks.SOLANA : chainId.reference,\n };\n });\n\n return accounts;\n}\n\n/*\n * Before switch network, we need to update session namespace accounts\n * to contain both current chain and target chain accoutns.\n */\nexport async function updateSessionAccounts(\n instance: any,\n requestedNetwork: string,\n currentNetwork: string,\n meta: BlockchainMeta[]\n) {\n const session = instance.session;\n\n const namespaces = session.namespaces;\n let needUpdateNamepspace = false;\n const accounts = namespaces.eip155.accounts;\n\n const currentAccountAddress = getCurrentEvmAccountAddress(instance);\n const requestedAccount = getEvmAccount(\n requestedNetwork,\n currentAccountAddress,\n meta\n );\n if (!accounts.includes(requestedAccount)) {\n accounts.push(requestedAccount);\n needUpdateNamepspace = true;\n }\n\n const currentAccount = getEvmAccount(\n currentNetwork,\n currentAccountAddress,\n meta\n );\n if (!accounts.includes(currentAccount)) {\n accounts.push(currentAccount);\n needUpdateNamepspace = true;\n }\n\n if (needUpdateNamepspace) {\n const updatedNamespaces = {\n ...namespaces,\n eip155: {\n ...namespaces.eip155,\n accounts,\n },\n };\n await instance.client.session\n .update({\n topic: session.topic,\n namespaces: updatedNamespaces,\n })\n .catch((err: unknown) => {\n console.log(err);\n });\n }\n}\n\n/*\n * Certain wallets, such as Trust Wallet and 1inch, are providing incorrect methods in\n * response to session proposal requests. These wallets do not support certain optional\n * RPC methods like \"wallet_xyz,\" but they include them in the response under the session namespace.\n * For the time being, we should avoid their session namespace response.\n * see also: https://github.com/trustwallet/wallet-core/issues/3588\n */\nexport function ignoreNamespaceMethods(instance: any): boolean {\n const WALLETS_WITH_WRONG_NAMESPACE_METHODS = ['trust', '1inch'];\n const peerName = instance?.session?.peer?.metadata?.name;\n return WALLETS_WITH_WRONG_NAMESPACE_METHODS.some((name) =>\n peerName?.toLowerCase()?.includes(name)\n );\n}\n\nexport async function persistCurrentChainId(\n client: SignClient,\n chainId?: string\n) {\n return client.core.storage.setItem(CHAIN_ID_STORAGE, {\n defaultChainId: chainId ? parseInt(chainId) : '',\n });\n}\n\n/*\n * get the latest chain id from the storage,\n * used for setting current chain id in session reconnect.\n */\nexport async function getPersistedChainId(client: SignClient) {\n try {\n const chainId = (await client.core.storage.getItem(CHAIN_ID_STORAGE))\n ?.defaultChainId;\n return !!chainId ? String(chainId) : undefined;\n } catch {\n return undefined;\n }\n}\n", "import type { WCInstance } from './types';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport COSMOSSigner from './signers/cosmos';\nimport EVMSigner from './signers/evm';\nimport SOLANASigner from './signers/solana';\n\nexport default function getSigners(instance: WCInstance): SignerFactory {\n if (!instance.session) {\n throw new Error('Session is required for wallet connect signers.');\n }\n\n const signers = new DefaultSignerFactory();\n signers.registerSigner(\n TxType.EVM,\n new EVMSigner(instance.client, instance.session)\n );\n signers.registerSigner(\n TxType.COSMOS,\n new COSMOSSigner(instance.client, instance.session)\n );\n signers.registerSigner(\n TxType.SOLANA,\n new SOLANASigner(instance.client, instance.session)\n );\n\n return signers;\n}\n", "import type { AminoSignResponse } from '@cosmjs/launchpad';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { CosmosTransaction, GenericSigner } from 'rango-types';\n\nimport { BroadcastMode, makeSignDoc } from '@cosmjs/launchpad';\nimport { cosmos } from '@keplr-wallet/cosmos';\nimport { getsignedTx } from '@rango-dev/signer-cosmos';\nimport { uint8ArrayToHex } from '@rango-dev/wallets-shared';\nimport { AccountId, ChainId } from 'caip';\nimport { formatDirectSignDoc, stringifySignDocValues } from 'cosmos-wallet';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { CosmosRPCMethods, NAMESPACES } from '../constants';\n\nimport { sendTx } from './helper';\nimport { supportedChains } from './mock';\n\nconst NAMESPACE_NAME = NAMESPACES.COSMOS;\ntype DirectSignResponse = {\n signature: {\n pub_key: {\n type: string;\n value: string;\n };\n signature: string;\n };\n signed: {\n chainId: string;\n accountNumber: string;\n authInfoBytes: string;\n bodyBytes: string;\n };\n};\nclass COSMOSSigner implements GenericSigner<CosmosTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n public async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(\n tx: CosmosTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n console.log({ tx, address, chainId });\n\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n try {\n const { memo, sequence, account_number, chainId, msgs, fee, signType } =\n tx.data;\n const msgsWithoutType = msgs.map((m) => ({\n ...m,\n __type: undefined,\n '@type': undefined,\n }));\n if (!chainId) {\n throw SignerError.AssertionFailed('chainId is undefined from server');\n }\n if (!account_number) {\n throw SignerError.AssertionFailed(\n 'account_number is undefined from server'\n );\n }\n if (!sequence) {\n throw SignerError.AssertionFailed('sequence is undefined from server');\n }\n\n if (signType === 'AMINO') {\n const signDoc = makeSignDoc(\n msgsWithoutType,\n fee as any,\n chainId,\n memo || undefined,\n account_number,\n sequence\n );\n let signResponse;\n try {\n signResponse = await this.client.request<AminoSignResponse>({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.SIGN_AMINO,\n params: {\n signDoc,\n signerAddress: tx.fromWalletAddress,\n },\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n\n const signedTx = getsignedTx(tx, signResponse);\n const result = await sendTx(\n chainId,\n signedTx,\n BroadcastMode.Async,\n supportedChains\n );\n return { hash: uint8ArrayToHex(result) };\n } else if (signType === 'DIRECT') {\n let getAccounts;\n try {\n getAccounts = await this.client.request<\n Array<{\n address: string;\n algo: string;\n pubkey: string;\n }>\n >({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.GET_ACCOUNTS,\n params: {},\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n const pubkey =\n getAccounts?.find(\n (account) => account.address === tx.fromWalletAddress\n )?.pubkey || '';\n\n const bodyBytes = cosmos.tx.v1beta1.TxBody.encode({\n messages: tx.data.protoMsgs.map((m) => ({\n type_url: m.type_url,\n value: new Uint8Array(m.value),\n })),\n memo,\n }).finish();\n console.log({ tx, bodyBytes });\n\n const signDoc = formatDirectSignDoc(\n fee?.amount || [],\n pubkey,\n parseInt(fee?.gas as string),\n account_number,\n parseInt(sequence),\n uint8ArrayToHex(bodyBytes),\n chainId\n );\n let signResponse;\n try {\n signResponse = await this.client.request<DirectSignResponse>({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.SIGN_DIRECT,\n params: {\n signDoc: stringifySignDocValues(signDoc),\n signerAddress: tx.fromWalletAddress,\n },\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n console.log({ signResponse });\n const signedTx = cosmos.tx.v1beta1.TxRaw.encode({\n bodyBytes: new TextEncoder().encode(signResponse.signed.bodyBytes),\n authInfoBytes: new TextEncoder().encode(\n signResponse.signed.authInfoBytes\n ),\n signatures: [Buffer.from(signResponse.signature.signature, 'base64')],\n }).finish();\n console.log({ signedTx });\n const result = await sendTx(\n chainId,\n signedTx,\n BroadcastMode.Async,\n supportedChains\n );\n\n console.log({ result });\n\n return { hash: uint8ArrayToHex(result) };\n }\n throw new SignerError(\n SignerErrorCode.OPERATION_UNSUPPORTED,\n `Sign type for cosmos not supported, type: ${signType}`\n );\n } catch (err) {\n if (SignerError.isSignerError(err)) {\n throw err;\n } else {\n throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, err);\n }\n }\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n if (!chainId) {\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: chainId,\n },\n address,\n });\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address.toLowerCase()\n );\n\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString()\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: chainId,\n });\n\n return { chainId, address, caipChainId: caipChainId.toString() };\n }\n}\n\nexport default COSMOSSigner;\n", "import type { BlockchainMeta } from 'rango-types';\n\nimport { TendermintTxTracer } from '@keplr-wallet/cosmos';\nimport { simpleFetch } from '@keplr-wallet/simple-fetch';\nimport { cosmosBlockchains } from 'rango-types';\n\nexport async function sendTx(\n chainId: string,\n tx: unknown,\n mode: 'async' | 'sync' | 'block',\n supportedChains: BlockchainMeta[]\n): Promise<Uint8Array> {\n console.log({ chainId, tx, mode });\n\n const cosmos = cosmosBlockchains(supportedChains);\n const chainInfo = cosmos.find((item) => item.chainId === chainId)?.info;\n const isProtoTx = Buffer.isBuffer(tx) || tx instanceof Uint8Array;\n\n console.log({ chainInfo, isProtoTx });\n\n if (!chainInfo) {\n throw new Error('Chain info is undefined from server');\n }\n const params = isProtoTx\n ? {\n tx_bytes: Buffer.from(tx as any).toString('base64'),\n mode: (() => {\n switch (mode) {\n case 'async':\n return 'BROADCAST_MODE_ASYNC';\n case 'block':\n return 'BROADCAST_MODE_BLOCK';\n case 'sync':\n return 'BROADCAST_MODE_SYNC';\n default:\n return 'BROADCAST_MODE_UNSPECIFIED';\n }\n })(),\n }\n : {\n tx,\n mode: mode,\n };\n\n try {\n const result = await simpleFetch<any>(\n chainInfo.rest,\n isProtoTx ? '/cosmos/tx/v1beta1/txs' : '/txs',\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(params),\n }\n );\n\n const txResponse = isProtoTx ? result.data['tx_response'] : result.data;\n\n if (txResponse.code != null && txResponse.code !== 0) {\n throw new Error(txResponse['raw_log']);\n }\n\n const txHash = Buffer.from(txResponse.txhash, 'hex');\n\n const txTracer = new TendermintTxTracer(chainInfo.rpc, '/websocket');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n txTracer.traceTx(txHash).then(() => {\n txTracer.close();\n });\n\n return txHash;\n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n", "import type { BlockchainMeta } from 'rango-types';\n\nexport const supportedChains: BlockchainMeta[] = [\n {\n name: 'BSC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BSC',\n symbol: 'BNB',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/binance.svg',\n displayName: 'BSC',\n shortName: 'BSC',\n sort: 1,\n color: '#F3BA2F',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x38',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Binance Smart Chain Mainnet',\n nativeCurrency: {\n name: 'BNB',\n symbol: 'BNB',\n decimals: 18,\n },\n rpcUrls: ['https://bsc-dataseed1.ninicoin.io'],\n blockExplorerUrls: ['https://bscscan.com'],\n addressUrl: 'https://bscscan.com/address/{wallet}',\n transactionUrl: 'https://bscscan.com/tx/{txHash}',\n },\n },\n {\n name: 'POLYGON',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/polygon.svg',\n displayName: 'Polygon',\n shortName: 'Polygon',\n sort: 2,\n color: '#8247E5',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x89',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Polygon Mainnet',\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n rpcUrls: ['https://polygon-rpc.com'],\n blockExplorerUrls: ['https://polygonscan.com'],\n addressUrl: 'https://polygonscan.com/address/{wallet}',\n transactionUrl: 'https://polygonscan.com/tx/{txHash}',\n },\n },\n {\n name: 'ETH',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ETH',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ethereum.svg',\n displayName: 'Ethereum',\n shortName: 'ETH',\n sort: 3,\n color: '#ecf0f1',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x1',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Ethereum Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ankr.com/eth'],\n blockExplorerUrls: ['https://etherscan.io'],\n addressUrl: 'https://etherscan.io/address/{wallet}',\n transactionUrl: 'https://etherscan.io/tx/{txHash}',\n },\n },\n {\n name: 'OSMOSIS',\n defaultDecimals: 6,\n addressPatterns: ['^(osmo1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/osmosis.svg',\n displayName: 'Osmosis',\n shortName: 'Osmosis',\n sort: 4,\n color: '#7901B4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'osmosis-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-osmosis.keplr.app',\n rest: 'https://lcd-osmosis.keplr.app',\n cosmostationLcdUrl: 'https://lcd-osmosis.cosmostation.io',\n cosmostationApiUrl: 'https://api-osmosis.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'osmosis',\n chainName: 'Osmosis',\n stakeCurrency: {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'osmo',\n bech32PrefixAccPub: 'osmopub',\n bech32PrefixValAddr: 'osmovaloper',\n bech32PrefixValPub: 'osmovaloperpub',\n bech32PrefixConsAddr: 'osmovalcons',\n bech32PrefixConsPub: 'osmovalconspub',\n },\n currencies: [\n {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n {\n coinDenom: 'ION',\n coinMinimalDenom: 'uion',\n coinDecimals: 6,\n coinGeckoId: 'pool:uion',\n coinImageUrl: '/tokens/blockchain/ion.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/osmosis/txs/{txHash}',\n gasPriceStep: {\n low: 0,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'JUNO',\n defaultDecimals: 6,\n addressPatterns: ['^(juno1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'JUNO',\n symbol: 'JUNO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/juno.svg',\n displayName: 'Juno',\n shortName: 'Juno',\n sort: 5,\n color: '#f0827d',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'juno-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-juno.itastakers.com:443/',\n rest: 'https://lcd-juno.keplr.app',\n cosmostationLcdUrl: 'https://lcd-juno.cosmostation.io',\n cosmostationApiUrl: 'https://api-juno.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'juno',\n chainName: 'Juno',\n stakeCurrency: {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'juno',\n bech32PrefixAccPub: 'junopub',\n bech32PrefixValAddr: 'junovaloper',\n bech32PrefixValPub: 'junovaloperpub',\n bech32PrefixConsAddr: 'junovalcons',\n bech32PrefixConsPub: 'junovalconspub',\n },\n currencies: [\n {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/juno/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.004,\n },\n },\n },\n {\n name: 'AVAX_CCHAIN',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'AVAX_CCHAIN',\n symbol: 'AVAX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/avax_cchain.svg',\n displayName: 'Avalanche',\n shortName: 'Avax',\n sort: 6,\n color: '#e84142',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa86a',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Avalanche C-Chain',\n nativeCurrency: {\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n rpcUrls: ['https://api.avax.network/ext/bc/C/rpc'],\n blockExplorerUrls: ['https://snowtrace.io'],\n addressUrl: 'https://snowtrace.io/address/{wallet}',\n transactionUrl: 'https://snowtrace.io/tx/{txHash}',\n },\n },\n {\n name: 'ARBITRUM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ARBITRUM',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/arbitrum.svg',\n displayName: 'Arbitrum',\n shortName: 'Arbitrum',\n sort: 7,\n color: '#28a0f0',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa4b1',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Arbitrum One',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://arb1.arbitrum.io/rpc'],\n blockExplorerUrls: ['https://arbiscan.io'],\n addressUrl: 'https://arbiscan.io/address/{wallet}',\n transactionUrl: 'https://arbiscan.io/tx/{txHash}',\n },\n },\n {\n name: 'COSMOS',\n defaultDecimals: 6,\n addressPatterns: ['^(cosmos1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'COSMOS',\n symbol: 'ATOM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/cosmos.svg',\n displayName: 'Cosmos',\n shortName: 'Cosmos',\n sort: 8,\n color: '#2E3148',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'cosmoshub-4',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://cosmos-rpc.polkachu.com',\n rest: 'https://lcd-cosmoshub.keplr.app',\n cosmostationLcdUrl: 'https://lcd-cosmos.cosmostation.io',\n cosmostationApiUrl: 'https://api-cosmos.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'cosmos',\n chainName: 'Cosmos',\n stakeCurrency: {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'cosmos',\n bech32PrefixAccPub: 'cosmospub',\n bech32PrefixValAddr: 'cosmosvaloper',\n bech32PrefixValPub: 'cosmosvaloperpub',\n bech32PrefixConsAddr: 'cosmosvalcons',\n bech32PrefixConsPub: 'cosmosvalconspub',\n },\n currencies: [\n {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/cosmos/txs/{txHash}',\n gasPriceStep: {\n low: 0.01,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'TERRA_CLASSIC',\n defaultDecimals: 6,\n addressPatterns: ['^(terra1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'LUNC',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'UST',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'EUT',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'KRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/terraclassic.svg',\n displayName: 'Terra',\n shortName: 'Terra',\n sort: 8,\n color: '#5493F7',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'columbus-5',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-columbus.keplr.app',\n rest: 'https://lcd-columbus.keplr.app',\n cosmostationLcdUrl: null,\n cosmostationApiUrl: 'https://terra-classic-lcd.publicnode.com',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: null,\n chainName: 'Terra',\n stakeCurrency: {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n bip44: {\n coinType: 330,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'terra',\n bech32PrefixAccPub: 'terrapub',\n bech32PrefixValAddr: 'terravaloper',\n bech32PrefixValPub: 'terravaloperpub',\n bech32PrefixConsAddr: 'terravalcons',\n bech32PrefixConsPub: 'terravalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n {\n coinDenom: 'UST',\n coinMinimalDenom: 'uusd',\n coinDecimals: 6,\n coinGeckoId: 'terrausd',\n coinImageUrl: '/tokens/blockchain/UST.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n {\n coinDenom: 'UST',\n coinMinimalDenom: 'uusd',\n coinDecimals: 6,\n coinGeckoId: 'terrausd',\n coinImageUrl: '/tokens/blockchain/UST.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://finder.terra.money/columbus-5/tx/{txHash}',\n gasPriceStep: {\n low: 0.0075,\n average: 0.0075,\n high: 0.0075,\n },\n },\n },\n {\n name: 'FANTOM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'FANTOM',\n symbol: 'FTM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/fantom.png',\n displayName: 'Fantom',\n shortName: 'Fantom',\n sort: 9,\n color: '#337afe',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xfa',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Fantom Opera',\n nativeCurrency: {\n name: 'FTM',\n symbol: 'FTM',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ftm.tools'],\n blockExplorerUrls: ['https://ftmscan.com'],\n addressUrl: 'https://ftmscan.com/address/{wallet}',\n transactionUrl: 'https://ftmscan.com/tx/{txHash}',\n },\n },\n {\n name: 'OPTIMISM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'OPTIMISM',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/optimism.svg',\n displayName: 'Optimism',\n shortName: 'Optimism',\n sort: 10,\n color: '#FF0420',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Optimism',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.optimism.io'],\n blockExplorerUrls: ['https://optimistic.etherscan.io'],\n addressUrl: 'https://optimistic.etherscan.io/address/{wallet}',\n transactionUrl: 'https://optimistic.etherscan.io/tx/{txHash}',\n },\n },\n {\n name: 'OKC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'OKC',\n symbol: 'OKT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/okx.png',\n displayName: 'OKX Chain (OKC)',\n shortName: 'Okx',\n sort: 11,\n color: '#29a0f0',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x42',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'OKX Chain',\n nativeCurrency: {\n name: 'OKT',\n symbol: 'OKT',\n decimals: 18,\n },\n rpcUrls: ['https://exchainrpc.okex.org'],\n blockExplorerUrls: ['https://www.oklink.com/en/okc'],\n addressUrl: 'https://www.oklink.com/en/okc/address/{wallet}',\n transactionUrl: 'https://www.oklink.com/en/okc/tx/{txHash}',\n },\n },\n {\n name: 'STARKNET',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{32,64}$'],\n feeAssets: [\n {\n blockchain: 'STARKNET',\n symbol: 'ETH',\n address:\n '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7',\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/starknet.svg',\n displayName: 'StarkNet',\n shortName: 'StarkNet',\n sort: 11,\n color: '#708DD2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'STARKNET',\n chainId: '0x534e5f4d41494e',\n info: {\n infoType: 'StarkNetMetaInfo',\n chainName: 'StarkNet Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n blockExplorerUrls: ['https://starkscan.co'],\n addressUrl: 'https://starkscan.co/contract/{wallet}',\n transactionUrl: 'https://starkscan.co/tx/{txHash}',\n },\n },\n {\n name: 'SOLANA',\n defaultDecimals: 9,\n addressPatterns: ['^[1-9A-HJ-NP-Za-km-z]{32,44}$'],\n feeAssets: [\n {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/solana.svg',\n displayName: 'Solana',\n shortName: 'Solana',\n sort: 11,\n color: '#708DD2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'SOLANA',\n chainId: 'mainnet-beta',\n info: null,\n },\n {\n name: 'CRONOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'CRONOS',\n symbol: 'CRO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/cronos.svg',\n displayName: 'Cronos',\n shortName: 'Cronos',\n sort: 12,\n color: '#1a90ff',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x19',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Cronos Mainnet Beta',\n nativeCurrency: {\n name: 'CRO',\n symbol: 'CRO',\n decimals: 18,\n },\n rpcUrls: ['https://evm.cronos.org'],\n blockExplorerUrls: ['https://cronoscan.com'],\n addressUrl: 'https://cronoscan.com/address/{wallet}',\n transactionUrl: 'https://cronoscan.com/tx/{txHash}',\n },\n },\n {\n name: 'MOONRIVER',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'MOONRIVER',\n symbol: 'MOVR',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/moonriver.svg',\n displayName: 'MoonRiver',\n shortName: 'MoonRiver',\n sort: 13,\n color: '#F3B404',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x505',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'MoonRiver',\n nativeCurrency: {\n name: 'MOVR',\n symbol: 'MOVR',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.moonriver.moonbeam.network'],\n blockExplorerUrls: ['https://moonriver.moonscan.io'],\n addressUrl: 'https://moonriver.moonscan.io/address/{wallet}',\n transactionUrl: 'https://moonriver.moonscan.io/tx/{txHash}',\n },\n },\n {\n name: 'ZKSYNC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ZKSYNC',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/zksync.png',\n displayName: 'zkSync era',\n shortName: 'zkSync',\n sort: 13,\n color: '#2D2925',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x144',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'zkSync',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.era.zksync.io'],\n blockExplorerUrls: ['https://explorer.zksync.io'],\n addressUrl: 'https://explorer.zksync.io/address/{wallet}',\n transactionUrl: 'https://explorer.zksync.io/tx/{txHash}',\n },\n },\n {\n name: 'MOONBEAM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'MOONBEAM',\n symbol: 'GLMR',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/moonbeam.png',\n displayName: 'MoonBeam',\n shortName: 'MoonBeam',\n sort: 14,\n color: '#B3206B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x504',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'MoonBeam',\n nativeCurrency: {\n name: 'GLMR',\n symbol: 'GLMR',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.api.moonbeam.network'],\n blockExplorerUrls: ['https://moonbeam.moonscan.io'],\n addressUrl: 'https://moonbeam.moonscan.io/address/{wallet}',\n transactionUrl: 'https://moonbeam.moonscan.io/tx/{txHash}',\n },\n },\n {\n name: 'POLKADOT',\n defaultDecimals: 10,\n addressPatterns: ['^(1)[0-9a-z-A-Z]{44,50}$'],\n feeAssets: [],\n logo: 'https://api.rango.exchange/blockchains/polkadot.svg',\n displayName: 'Polkadot',\n shortName: 'Polkadot',\n sort: 14,\n color: '#E6007A',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'AURORA',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'AURORA',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/aurora.svg',\n displayName: 'Aurora',\n shortName: 'Aurora',\n sort: 15,\n color: '#78d64b',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x4e454152',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Aurora Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.aurora.dev'],\n blockExplorerUrls: ['https://explorer.mainnet.aurora.dev'],\n addressUrl: 'https://explorer.mainnet.aurora.dev/address/{wallet}',\n transactionUrl: 'https://explorer.mainnet.aurora.dev/tx/{txHash}',\n },\n },\n {\n name: 'DOGE',\n defaultDecimals: 8,\n addressPatterns: ['^(D|A|9)[a-km-zA-HJ-NP-Z1-9]{33,34}$'],\n feeAssets: [\n {\n blockchain: 'DOGE',\n symbol: 'DOGE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/doge.svg',\n displayName: 'Doge',\n shortName: 'Doge',\n sort: 15,\n color: '#BA9F33',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'HARMONY',\n defaultDecimals: 18,\n addressPatterns: ['^(one1)[0-9a-z]{38}$', '^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'HARMONY',\n symbol: 'ONE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/harmony.svg',\n displayName: 'Harmony',\n shortName: 'Harmony',\n sort: 15,\n color: '#50AEE9',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x63564c40',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Harmony Mainnet',\n nativeCurrency: {\n name: 'ONE',\n symbol: 'ONE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ankr.com/harmony'],\n blockExplorerUrls: ['https://explorer.harmony.one'],\n addressUrl: 'https://explorer.harmony.one/address/{wallet}',\n transactionUrl: 'https://explorer.harmony.one/tx/{txHash}',\n },\n },\n {\n name: 'EVMOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'EVMOS',\n symbol: 'EVMOS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/evmos.png',\n displayName: 'Evmos',\n shortName: 'Evmos',\n sort: 15,\n color: '#2D2925',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x2329',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Evmos',\n nativeCurrency: {\n name: 'EVMOS',\n symbol: 'EVMOS',\n decimals: 18,\n },\n rpcUrls: ['https://eth.bd.evmos.org:8545'],\n blockExplorerUrls: ['https://evm.evmos.org'],\n addressUrl: 'https://evm.evmos.org/address/{wallet}',\n transactionUrl: 'https://evm.evmos.org/tx/{txHash}',\n },\n },\n {\n name: 'POLYGONZK',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'POLYGONZK',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/zkevmpolygon.png',\n displayName: 'polygon zkEVM',\n shortName: 'polygon zkEVM',\n sort: 15,\n color: '#8247e5',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x44d',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Polygon zkEVM Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://zkevm-rpc.com'],\n blockExplorerUrls: ['https://zkevm.polygonscan.com'],\n addressUrl: 'https://zkevm.polygonscan.com/address/{wallet}',\n transactionUrl: 'https://zkevm.polygonscan.com/tx/{txHash}',\n },\n },\n {\n name: 'HECO',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'HECO',\n symbol: 'HT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/heco.png',\n displayName: 'Heco',\n shortName: 'Heco',\n sort: 15,\n color: '#4CA852',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x80',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Huobi ECO Chain Mainnet',\n nativeCurrency: {\n name: 'HT',\n symbol: 'HT',\n decimals: 18,\n },\n rpcUrls: ['https://http-mainnet.hecochain.com'],\n blockExplorerUrls: ['https://hecoinfo.com'],\n addressUrl: 'https://hecoinfo.com/address/{wallet}',\n transactionUrl: 'https://hecoinfo.com/tx/{txHash}',\n },\n },\n {\n name: 'TRON',\n defaultDecimals: 18,\n addressPatterns: ['^T[1-9A-HJ-NP-Za-km-z]{33}$'],\n feeAssets: [\n {\n blockchain: 'TRON',\n symbol: 'TRX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/tron.svg',\n displayName: 'Tron',\n shortName: 'Tron',\n sort: 16,\n color: '#FF060A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRON',\n chainId: '0x2b6653dc',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'TRON Mainnet',\n nativeCurrency: {\n name: 'TRX',\n symbol: 'TRX',\n decimals: 6,\n },\n rpcUrls: ['https://api.trongrid.io/jsonrpc'],\n blockExplorerUrls: ['https://tronscan.org/#'],\n addressUrl: 'https://tronscan.org/#/address/{wallet}',\n transactionUrl: 'https://tronscan.org/#/tx/{txHash}',\n },\n },\n {\n name: 'SIF',\n defaultDecimals: 18,\n addressPatterns: ['^(sif1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SIF',\n symbol: 'ROWAN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/sif.png',\n displayName: 'Sifchain',\n shortName: 'Sifchain',\n sort: 16,\n color: '#CAAA3A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'sifchain-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc.sifchain.finance',\n rest: 'https://api-sifchain-ia.cosmosia.notional.ventures/',\n cosmostationLcdUrl: 'https://lcd-sifchain.cosmostation.io',\n cosmostationApiUrl: 'https://api.mintscan.io/v1/sifchain',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'sifchain',\n chainName: 'Sifchain',\n stakeCurrency: {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'sif',\n bech32PrefixAccPub: 'sifpub',\n bech32PrefixValAddr: 'sifvaloper',\n bech32PrefixValPub: 'sifvaloperpub',\n bech32PrefixConsAddr: 'sifvalcons',\n bech32PrefixConsPub: 'sifvalconspub',\n },\n currencies: [\n {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/sifchain/txs/{txHash}',\n gasPriceStep: {\n low: 1000000000000,\n average: 1500000000000,\n high: 2000000000000,\n },\n },\n },\n {\n name: 'MAYA',\n defaultDecimals: 8,\n addressPatterns: ['^(maya1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MAYA',\n symbol: 'CACAO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/maya.jpg',\n displayName: 'MayaChain',\n shortName: 'MayaChain',\n sort: 17,\n color: '#1ae6e6',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'THOR',\n defaultDecimals: 8,\n addressPatterns: ['^(thor1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'THOR',\n symbol: 'RUNE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/thorchain.svg',\n displayName: 'Thorchain',\n shortName: 'Thorchain',\n sort: 17,\n color: '#1AE6CB',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'BRISE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BRISE',\n symbol: 'BRISE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitgert.png',\n displayName: 'Brise',\n shortName: 'Brise',\n sort: 18,\n color: '#0693E3',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x7f08',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Brise',\n nativeCurrency: {\n name: 'BRISE',\n symbol: 'BRISE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.icecreamswap.com'],\n blockExplorerUrls: ['https://brisescan.com/'],\n addressUrl: 'https://brisescan.com//address/{wallet}',\n transactionUrl: 'https://brisescan.com//tx/{txHash}',\n },\n },\n {\n name: 'BNB',\n defaultDecimals: 8,\n addressPatterns: ['^(bnb1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BNB',\n symbol: 'BNB',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bnb.svg',\n displayName: 'Binance Chain',\n shortName: 'BNB',\n sort: 18,\n color: '#F3BA2F',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: null,\n info: null,\n },\n {\n name: 'STARGAZE',\n defaultDecimals: 6,\n addressPatterns: ['^(stars1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STARGAZE',\n symbol: 'STARS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/stargaze.png',\n displayName: 'Stargaze',\n shortName: 'Stargaze',\n sort: 19,\n color: '#231B60',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'stargaze-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc.stargaze-apis.com',\n rest: 'https://rest.stargaze-apis.com',\n cosmostationLcdUrl: 'https://lcd-stargaze.cosmostation.io',\n cosmostationApiUrl: 'https://api-stargaze.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'stargaze',\n chainName: 'Stargaze',\n stakeCurrency: {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'stars',\n bech32PrefixAccPub: 'starspub',\n bech32PrefixValAddr: 'starsvaloper',\n bech32PrefixValPub: 'starsvaloperpub',\n bech32PrefixConsAddr: 'starsvalcons',\n bech32PrefixConsPub: 'starsvalconspub',\n },\n currencies: [\n {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/stargaze/txs/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 1,\n high: 1,\n },\n },\n },\n {\n name: 'BTC',\n defaultDecimals: 8,\n addressPatterns: [\n '^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$',\n ],\n feeAssets: [\n {\n blockchain: 'BTC',\n symbol: 'BTC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/btc.svg',\n displayName: 'Bitcoin',\n shortName: 'BTC',\n sort: 20,\n color: '#F7931A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'CRYPTO_ORG',\n defaultDecimals: 8,\n addressPatterns: ['^(cro1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'CRYPTO_ORG',\n symbol: 'CRO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/crypto_org.png',\n displayName: 'Crypto.org',\n shortName: 'Crypto.org',\n sort: 21,\n color: '#103F68',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'crypto-org-chain-mainnet-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-crypto-org.keplr.app',\n rest: 'https://lcd-crypto-org.keplr.app',\n cosmostationLcdUrl: 'https://lcd-cryptocom.cosmostation.io',\n cosmostationApiUrl: 'https://api-cryptocom.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'crypto-org',\n chainName: 'Crypto.org',\n stakeCurrency: {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n bip44: {\n coinType: 394,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'cro',\n bech32PrefixAccPub: 'cropub',\n bech32PrefixValAddr: 'crovaloper',\n bech32PrefixValPub: 'crovaloperpub',\n bech32PrefixConsAddr: 'crovalcons',\n bech32PrefixConsPub: 'crovalconspub',\n },\n currencies: [\n {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/crypto-org/txs/{txHash}',\n gasPriceStep: {\n low: 0.025,\n average: 0.03,\n high: 0.04,\n },\n },\n },\n {\n name: 'CHIHUAHUA',\n defaultDecimals: 6,\n addressPatterns: ['^(chihuahua1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'CHIHUAHUA',\n symbol: 'HUAHUA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/chihuahua.png',\n displayName: 'Chihuahua',\n shortName: 'Chihuahua',\n sort: 22,\n color: '#EFC92B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'chihuahua-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.chihuahua.wtf/',\n rest: 'https://api.chihuahua.wtf/',\n cosmostationLcdUrl: 'https://lcd-chihuahua.cosmostation.io',\n cosmostationApiUrl: 'https://api-chihuahua.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'chihuahua',\n chainName: 'Chihuahua',\n stakeCurrency: {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'chihuahua',\n bech32PrefixAccPub: 'chihuahuapub',\n bech32PrefixValAddr: 'chihuahuavaloper',\n bech32PrefixValPub: 'chihuahuavaloperpub',\n bech32PrefixConsAddr: 'chihuahuavalcons',\n bech32PrefixConsPub: 'chihuahuavalconspub',\n },\n currencies: [\n {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://ping.pub/chihuahua/tx/{txHash}',\n gasPriceStep: {\n low: 0.025,\n average: 0.03,\n high: 0.035,\n },\n },\n },\n {\n name: 'BANDCHAIN',\n defaultDecimals: 6,\n addressPatterns: ['^(band1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BANDCHAIN',\n symbol: 'BAND',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bandchain.svg',\n displayName: 'BandChain',\n shortName: 'BandChain',\n sort: 23,\n color: '#4520E6',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'laozi-mainnet',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.laozi3.bandchain.org/',\n rest: 'https://lcd-band.cosmostation.io',\n cosmostationLcdUrl: 'https://lcd-band.cosmostation.io',\n cosmostationApiUrl: 'https://api-band.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'band',\n chainName: 'BandChain',\n stakeCurrency: {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n bip44: {\n coinType: 494,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'band',\n bech32PrefixAccPub: 'bandpub',\n bech32PrefixValAddr: 'bandvaloper',\n bech32PrefixValPub: 'bandvaloperpub',\n bech32PrefixConsAddr: 'bandvalcons',\n bech32PrefixConsPub: 'bandvalconspub',\n },\n currencies: [\n {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://cosmoscan.io/tx/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'COMDEX',\n defaultDecimals: 6,\n addressPatterns: ['^(comdex1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'COMDEX',\n symbol: 'CMDX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/comdex.svg',\n displayName: 'Comdex',\n shortName: 'Comdex',\n sort: 23,\n color: '#FE4350',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'comdex-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.comdex.one',\n rest: 'https://rest.comdex.one',\n cosmostationLcdUrl: 'https://lcd-comdex.cosmostation.io',\n cosmostationApiUrl: 'https://api-comdex.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'comdex',\n chainName: 'Comdex',\n stakeCurrency: {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'comdex',\n bech32PrefixAccPub: 'comdexpub',\n bech32PrefixValAddr: 'comdexvaloper',\n bech32PrefixValPub: 'comdexvaloperpub',\n bech32PrefixConsAddr: 'comdexvalcons',\n bech32PrefixConsPub: 'comdexvalconspub',\n },\n currencies: [\n {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/comdex/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'REGEN',\n defaultDecimals: 6,\n addressPatterns: ['^(regen1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'REGEN',\n symbol: 'REGEN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/regen.png',\n displayName: 'Regen Network',\n shortName: 'Regen Network',\n sort: 24,\n color: '#4FB573',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'regen-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-regen.keplr.app',\n rest: 'https://lcd-regen.keplr.app',\n cosmostationLcdUrl: 'https://lcd-regen.keplr.app',\n cosmostationApiUrl: 'https://api-regen.cosmostation.io/',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'regen',\n chainName: 'Regen Network',\n stakeCurrency: {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'regen',\n bech32PrefixAccPub: 'regenpub',\n bech32PrefixValAddr: 'regenvaloper',\n bech32PrefixValPub: 'regenvaloperpub',\n bech32PrefixConsAddr: 'regenvalcons',\n bech32PrefixConsPub: 'regenvalconspub',\n },\n currencies: [\n {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://regen.aneka.io/txs/{txHash}',\n gasPriceStep: {\n low: 0.015,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'IRIS',\n defaultDecimals: 6,\n addressPatterns: ['^(iaa1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'IRIS',\n symbol: 'IRIS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/iris.png',\n displayName: 'IRISnet',\n shortName: 'IRISnet',\n sort: 25,\n color: '#8A4A8E',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'irishub-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-iris.keplr.app',\n rest: 'https://lcd-iris.keplr.app',\n cosmostationLcdUrl: 'https://lcd-iris.cosmostation.io',\n cosmostationApiUrl: 'https://api-iris.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'iris',\n chainName: 'IRISnet',\n stakeCurrency: {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'iaa',\n bech32PrefixAccPub: 'iaapub',\n bech32PrefixValAddr: 'iaavaloper',\n bech32PrefixValPub: 'iaavaloperpub',\n bech32PrefixConsAddr: 'iaavalcons',\n bech32PrefixConsPub: 'iaavalconspub',\n },\n currencies: [\n {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/iris/txs/{txHash}',\n gasPriceStep: {\n low: 0.2,\n average: 0.3,\n high: 0.4,\n },\n },\n },\n {\n name: 'EMONEY',\n defaultDecimals: 6,\n addressPatterns: ['^(emoney1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'EMONEY',\n symbol: 'NGM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/emoney.svg',\n displayName: 'e-Money',\n shortName: 'e-Money',\n sort: 25,\n color: '#DFF5EF',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'emoney-3',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-emoney.keplr.app',\n rest: 'https://lcd-emoney.keplr.app',\n cosmostationLcdUrl: 'https://lcd-emoney.cosmostation.io',\n cosmostationApiUrl: 'https://api-emoney.cosmostation.io',\n cosmostationDenomTracePath:\n '/ibc/applications/transfer/v1beta1/denom_traces/',\n mintScanName: 'emoney',\n chainName: 'e-Money',\n stakeCurrency: {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'emoney',\n bech32PrefixAccPub: 'emoneypub',\n bech32PrefixValAddr: 'emoneyvaloper',\n bech32PrefixValPub: 'emoneyvaloperpub',\n bech32PrefixConsAddr: 'emoneyvalcons',\n bech32PrefixConsPub: 'emoneyvalconspub',\n },\n currencies: [\n {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n {\n coinDenom: 'EEUR',\n coinMinimalDenom: 'eeur',\n coinDecimals: 6,\n coinGeckoId: 'e-money-eur',\n coinImageUrl: '/tokens/blockchain/EEUR.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://emoney.bigdipper.live/transactions/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 1,\n high: 1,\n },\n },\n },\n {\n name: 'GNOSIS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'GNOSIS',\n symbol: 'XDAI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/gnosis.svg',\n displayName: 'Gnosis',\n shortName: 'Gnosis',\n sort: 26,\n color: '#3E6957',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x64',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Gnosis Chain',\n nativeCurrency: {\n name: 'XDAI',\n symbol: 'XDAI',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.gnosischain.com'],\n blockExplorerUrls: ['https://blockscout.com/xdai/mainnet'],\n addressUrl: 'https://blockscout.com/xdai/mainnet/address/{wallet}',\n transactionUrl: 'https://blockscout.com/xdai/mainnet/tx/{txHash}',\n },\n },\n {\n name: 'LTC',\n defaultDecimals: 8,\n addressPatterns: ['^(L|M|3)[A-Za-z0-9]{33}$|^(ltc1)[0-9A-Za-z]{39}$'],\n feeAssets: [\n {\n blockchain: 'LTC',\n symbol: 'LTC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ltc.svg',\n displayName: 'LiteCoin',\n shortName: 'LTC',\n sort: 27,\n color: '#345D9D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'BCH',\n defaultDecimals: 8,\n addressPatterns: ['^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^[0-9A-Za-z]{42,42}$'],\n feeAssets: [\n {\n blockchain: 'BCH',\n symbol: 'BCH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bch.svg',\n displayName: 'Bitcoin Cash',\n shortName: 'BCH',\n sort: 28,\n color: '#0AC18E',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'FUSE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'FUSE',\n symbol: 'FUSE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/fuse.png',\n displayName: 'Fuse',\n shortName: 'Fuse',\n sort: 29,\n color: '#C5F9AD',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x7a',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Fuse Mainnet',\n nativeCurrency: {\n name: 'FUSE',\n symbol: 'FUSE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.fuse.io'],\n blockExplorerUrls: ['https://explorer.fuse.io'],\n addressUrl: 'https://explorer.fuse.io/address/{wallet}',\n transactionUrl: 'https://explorer.fuse.io/tx/{txHash}',\n },\n },\n {\n name: 'BITSONG',\n defaultDecimals: 6,\n addressPatterns: ['^(bitsong1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BITSONG',\n symbol: 'BTSG',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitsong.svg',\n displayName: 'BitSong',\n shortName: 'BitSong',\n sort: 29,\n color: '#FF005C',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'bitsong-2b',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.explorebitsong.com',\n rest: 'https://lcd.explorebitsong.com',\n cosmostationLcdUrl: 'https://lcd-bitsong.cosmostation.io',\n cosmostationApiUrl: 'https://api-bitsong.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'bitsong',\n chainName: 'BitSong',\n stakeCurrency: {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n bip44: {\n coinType: 639,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'bitsong',\n bech32PrefixAccPub: 'bitsongpub',\n bech32PrefixValAddr: 'bitsongvaloper',\n bech32PrefixValPub: 'bitsongvaloperpub',\n bech32PrefixConsAddr: 'bitsongvalcons',\n bech32PrefixConsPub: 'bitsongvalconspub',\n },\n currencies: [\n {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://explorebitsong.com/transactions/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'AKASH',\n defaultDecimals: 6,\n addressPatterns: ['^(akash1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'AKASH',\n symbol: 'AKT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/akash.svg',\n displayName: 'Akash',\n shortName: 'Akash',\n sort: 30,\n color: '#ED3524',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'akashnet-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-akash.keplr.app',\n rest: 'https://lcd-akash.keplr.app',\n cosmostationLcdUrl: 'https://lcd-akash.cosmostation.io',\n cosmostationApiUrl: 'https://api-akash.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'akash',\n chainName: 'Akash',\n stakeCurrency: {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'akash',\n bech32PrefixAccPub: 'akashpub',\n bech32PrefixValAddr: 'akashvaloper',\n bech32PrefixValPub: 'akashvaloperpub',\n bech32PrefixConsAddr: 'akashvalcons',\n bech32PrefixConsPub: 'akashvalconspub',\n },\n currencies: [\n {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/akash/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.004,\n },\n },\n },\n {\n name: 'KI',\n defaultDecimals: 6,\n addressPatterns: ['^(ki1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KI',\n symbol: 'XKI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ki.png',\n displayName: 'Ki',\n shortName: 'Ki',\n sort: 30,\n color: '#0F2B3D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'kichain-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-mainnet.blockchain.ki',\n rest: 'https://api-mainnet.blockchain.ki',\n cosmostationLcdUrl: 'https://lcd-kichain.cosmostation.io',\n cosmostationApiUrl: 'https://api-kichain.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'ki-chain',\n chainName: 'Ki',\n stakeCurrency: {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'ki',\n bech32PrefixAccPub: 'kipub',\n bech32PrefixValAddr: 'kivaloper',\n bech32PrefixValPub: 'kivaloperpub',\n bech32PrefixConsAddr: 'kivalcons',\n bech32PrefixConsPub: 'kivalconspub',\n },\n currencies: [\n {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/ki-chain/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'PERSISTENCE',\n defaultDecimals: 6,\n addressPatterns: ['^(persistence1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'PERSISTENCE',\n symbol: 'XPRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/persistence.png',\n displayName: 'Persistence',\n shortName: 'Persistence',\n sort: 31,\n color: '#383838',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'core-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-persistence.keplr.app',\n rest: 'https://lcd-persistence.keplr.app',\n cosmostationLcdUrl: 'https://lcd-persistence.cosmostation.io',\n cosmostationApiUrl: 'https://api-persistence.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'persistence',\n chainName: 'Persistence',\n stakeCurrency: {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n bip44: {\n coinType: 750,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'persistence',\n bech32PrefixAccPub: 'persistencepub',\n bech32PrefixValAddr: 'persistencevaloper',\n bech32PrefixValPub: 'persistencevaloperpub',\n bech32PrefixConsAddr: 'persistencevalcons',\n bech32PrefixConsPub: 'persistencevalconspub',\n },\n currencies: [\n {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/persistence/txs/{txHash}',\n gasPriceStep: {\n low: 0,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'MEDIBLOC',\n defaultDecimals: 6,\n addressPatterns: ['^(panacea1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MEDIBLOC',\n symbol: 'MED',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/medibloc.png',\n displayName: 'MediBloc',\n shortName: 'MediBloc',\n sort: 31,\n color: '#4B66DC',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'panacea-3',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.gopanacea.org',\n rest: 'https://api.gopanacea.org',\n cosmostationLcdUrl: 'https://lcd-medibloc.cosmostation.io',\n cosmostationApiUrl: 'https://api-medibloc.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'medibloc',\n chainName: 'MediBloc',\n stakeCurrency: {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'panacea',\n bech32PrefixAccPub: 'panaceapub',\n bech32PrefixValAddr: 'panaceavaloper',\n bech32PrefixValPub: 'panaceavaloperpub',\n bech32PrefixConsAddr: 'panaceavalcons',\n bech32PrefixConsPub: 'panaceavalconspub',\n },\n currencies: [\n {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/medibloc/txs/{txHash}',\n gasPriceStep: {\n low: 5,\n average: 7,\n high: 9,\n },\n },\n },\n {\n name: 'KUJIRA',\n defaultDecimals: 6,\n addressPatterns: ['^(kujira1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KUJIRA',\n symbol: 'KUJI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/kuji.svg',\n displayName: 'Kujira',\n shortName: 'Kujira',\n sort: 31,\n color: '#DF3935',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'kaiyo-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://kujira-rpc.lavenderfive.com',\n rest: 'https://kujira-api.lavenderfive.com',\n cosmostationLcdUrl: 'https://lcd-kujira.cosmostation.io',\n cosmostationApiUrl: 'https://api-kujira.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'kujira',\n chainName: 'Kujira',\n stakeCurrency: {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'kujira',\n bech32PrefixAccPub: 'kujirapub',\n bech32PrefixValAddr: 'kujiravaloper',\n bech32PrefixValPub: 'kujiravaloperpub',\n bech32PrefixConsAddr: 'kujiravalcons',\n bech32PrefixConsPub: 'kujiravalconspub',\n },\n currencies: [\n {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://finder.kujira.app/kaiyo-1/tx/{txHash}',\n gasPriceStep: {\n low: 0.01,\n average: 0.025,\n high: 0.03,\n },\n },\n },\n {\n name: 'SENTINEL',\n defaultDecimals: 6,\n addressPatterns: ['^(sent1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SENTINEL',\n symbol: 'DVPN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/sentinel.png',\n displayName: 'Sentinel',\n shortName: 'Sentinel',\n sort: 32,\n color: '#142E51',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'sentinelhub-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-sentinel.keplr.app',\n rest: 'https://lcd-sentinel.keplr.app',\n cosmostationLcdUrl: 'https://lcd-sentinel.cosmostation.io',\n cosmostationApiUrl: 'https://api-sentinel.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'sentinel',\n chainName: 'Sentinel',\n stakeCurrency: {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'sent',\n bech32PrefixAccPub: 'sentpub',\n bech32PrefixValAddr: 'sentvaloper',\n bech32PrefixValPub: 'sentvaloperpub',\n bech32PrefixConsAddr: 'sentvalcons',\n bech32PrefixConsPub: 'sentvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/sentinel/txs/{txHash}',\n gasPriceStep: {\n low: 0.1,\n average: 0.25,\n high: 0.4,\n },\n },\n },\n {\n name: 'INJECTIVE',\n defaultDecimals: 6,\n addressPatterns: ['^(inj1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'INJECTIVE',\n symbol: 'INJ',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/injective.svg',\n displayName: 'Injective',\n shortName: 'Injective',\n sort: 33,\n color: '#29B2F4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'injective-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://tm.injective.network',\n rest: 'https://lcd.injective.network',\n cosmostationLcdUrl: 'https://lcd-inj.cosmostation.io',\n cosmostationApiUrl: 'https://api-inj.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'injective',\n chainName: 'Injective',\n stakeCurrency: {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n bip44: {\n coinType: 529,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'inj',\n bech32PrefixAccPub: 'injpub',\n bech32PrefixValAddr: 'injvaloper',\n bech32PrefixValPub: 'injvaloperpub',\n bech32PrefixConsAddr: 'injvalcons',\n bech32PrefixConsPub: 'injvalconspub',\n },\n currencies: [\n {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/injective/txs/{txHash}',\n gasPriceStep: {\n low: 500000000,\n average: 500000000,\n high: 500000000,\n },\n },\n },\n {\n name: 'SECRET',\n defaultDecimals: 6,\n addressPatterns: ['^(secret1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SECRET',\n symbol: 'SCRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/secret.svg',\n displayName: 'Secret',\n shortName: 'Secret',\n sort: 34,\n color: '#1B1B1B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'secret-4',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-secret.keplr.app',\n rest: 'https://lcd-secret.keplr.app',\n cosmostationLcdUrl: 'https://lcd-secret.cosmostation.io',\n cosmostationApiUrl: 'https://api-secret.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'secret',\n chainName: 'Secret',\n stakeCurrency: {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n bip44: {\n coinType: 529,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'secret',\n bech32PrefixAccPub: 'secretpub',\n bech32PrefixValAddr: 'secretvaloper',\n bech32PrefixValPub: 'secretvaloperpub',\n bech32PrefixConsAddr: 'secretvalcons',\n bech32PrefixConsPub: 'secretvalconspub',\n },\n currencies: [\n {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n ],\n features: ['secretwasm'],\n explorerUrlToTx: 'https://www.mintscan.io/injective/txs/{txHash}',\n gasPriceStep: {\n low: 0.1,\n average: 0.25,\n high: 0.3,\n },\n },\n },\n {\n name: 'KONSTELLATION',\n defaultDecimals: 6,\n addressPatterns: ['^(darc1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KONSTELLATION',\n symbol: 'DARC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/konstellation.svg',\n displayName: 'Konstellation',\n shortName: 'Konstellation',\n sort: 35,\n color: '#3D7BC2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'darchub',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://node1.konstellation.tech:26657',\n rest: 'https://node1.konstellation.tech:1318',\n cosmostationLcdUrl: 'https://api-konstellation.cosmostation.io',\n cosmostationApiUrl: 'https://api-konstellation.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'konstellation',\n chainName: 'Konstellation',\n stakeCurrency: {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'darc',\n bech32PrefixAccPub: 'darcpub',\n bech32PrefixValAddr: 'darcvaloper',\n bech32PrefixValPub: 'darcvaloperpub',\n bech32PrefixConsAddr: 'darcvalcons',\n bech32PrefixConsPub: 'darcvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/konstellation/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'STARNAME',\n defaultDecimals: 6,\n addressPatterns: ['^(star1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STARNAME',\n symbol: 'IOV',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/starname.png',\n displayName: 'Starname',\n shortName: 'Starname',\n sort: 35,\n color: '#BC64BB',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'iov-mainnet-ibc',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-iov.keplr.app',\n rest: 'https://lcd-iov.keplr.app',\n cosmostationLcdUrl: 'https://lcd-iov.cosmostation.io',\n cosmostationApiUrl: 'https://api-iov.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'starname',\n chainName: 'Starname',\n stakeCurrency: {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n bip44: {\n coinType: 494,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'star',\n bech32PrefixAccPub: 'starpub',\n bech32PrefixValAddr: 'starvaloper',\n bech32PrefixValPub: 'starvaloperpub',\n bech32PrefixConsAddr: 'starvalcons',\n bech32PrefixConsPub: 'starvalconspub',\n },\n currencies: [\n {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/starname/txs/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 2,\n high: 3,\n },\n },\n },\n {\n name: 'BITCANNA',\n defaultDecimals: 6,\n addressPatterns: ['^(bcna1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BITCANNA',\n symbol: 'BCNA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitcanna.svg',\n displayName: 'BitCanna',\n shortName: 'BitCanna',\n sort: 36,\n color: '#3CC194',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'bitcanna-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.bitcanna.io',\n rest: 'https://lcd.bitcanna.io',\n cosmostationLcdUrl: 'https://lcd-bitcanna.cosmostation.io',\n cosmostationApiUrl: 'https://api-bitcanna.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'bitcanna',\n chainName: 'BitCanna',\n stakeCurrency: {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'bcna',\n bech32PrefixAccPub: 'bcnapub',\n bech32PrefixValAddr: 'bcnavaloper',\n bech32PrefixValPub: 'bcnavaloperpub',\n bech32PrefixConsAddr: 'bcnavalcons',\n bech32PrefixConsPub: 'bcnavalconspub',\n },\n currencies: [\n {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/bitcanna/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'UMEE',\n defaultDecimals: 6,\n addressPatterns: ['^(umee1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'UMEE',\n symbol: 'UMEE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/umee.svg',\n displayName: 'Umee',\n shortName: 'Umee',\n sort: 36,\n color: '#D2B6FF',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'umee-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://api.barnacle.mainnet.network.umee.cc',\n rest: 'https://lcd-umee.cosmostation.io',\n cosmostationLcdUrl: 'https://lcd-umee.cosmostation.io',\n cosmostationApiUrl: 'https://api-umee.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'umee',\n chainName: 'Umee',\n stakeCurrency: {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'umee',\n bech32PrefixAccPub: 'umeepub',\n bech32PrefixValAddr: 'umeevaloper',\n bech32PrefixValPub: 'umeevaloperpub',\n bech32PrefixConsAddr: 'umeevalcons',\n bech32PrefixConsPub: 'umeevalconspub',\n },\n currencies: [\n {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/umee/txs/{txHash}',\n gasPriceStep: {\n low: 0.05,\n average: 0.06,\n high: 0.1,\n },\n },\n },\n {\n name: 'DESMOS',\n defaultDecimals: 6,\n addressPatterns: ['^(desmos1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'DESMOS',\n symbol: 'DSM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/desmos.svg',\n displayName: 'Desmos',\n shortName: 'Desmos',\n sort: 37,\n color: '#DF6952',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'desmos-mainnet',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.mainnet.desmos.network',\n rest: 'https://api.mainnet.desmos.network',\n cosmostationLcdUrl: 'https://lcd-desmos.cosmostation.io',\n cosmostationApiUrl: 'https://api-desmos.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'desmos',\n chainName: 'Desmos',\n stakeCurrency: {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n bip44: {\n coinType: 852,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'desmos',\n bech32PrefixAccPub: 'desmospub',\n bech32PrefixValAddr: 'desmosvaloper',\n bech32PrefixValPub: 'desmosvaloperpub',\n bech32PrefixConsAddr: 'desmosvalcons',\n bech32PrefixConsPub: 'desmosvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://explorer.desmos.network/transactions/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'LUMNETWORK',\n defaultDecimals: 6,\n addressPatterns: ['^(lum1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'LUMNETWORK',\n symbol: 'LUM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/lumnetwork.png',\n displayName: 'Lum Network',\n shortName: 'Lum Network',\n sort: 38,\n color: '#1B42B4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'lum-network-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://node0.mainnet.lum.network/rpc',\n rest: 'https://node0.mainnet.lum.network/rest',\n cosmostationLcdUrl: 'https://lcd-lum.cosmostation.io',\n cosmostationApiUrl: 'https://api-lum.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'lum',\n chainName: 'Lum Network',\n stakeCurrency: {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'lum',\n bech32PrefixAccPub: 'lumpub',\n bech32PrefixValAddr: 'lumvaloper',\n bech32PrefixValPub: 'lumvaloperpub',\n bech32PrefixConsAddr: 'lumvalcons',\n bech32PrefixConsPub: 'lumvalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://www.mintscan.io/lum/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'BOBA',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba',\n shortName: 'Boba',\n sort: 39,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x120',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Network',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.boba.network'],\n blockExplorerUrls: ['https://bobascan.com/'],\n addressUrl: 'https://bobascan.com//address/{wallet}',\n transactionUrl: 'https://bobascan.com//tx/{txHash}',\n },\n },\n {\n name: 'AXELAR',\n defaultDecimals: 6,\n addressPatterns: ['^(axelar1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'AXELAR',\n symbol: 'AXL',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/axelar.png',\n displayName: 'Axelar',\n shortName: 'Axelar',\n sort: 40,\n color: '#15181C',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'axelar-dojo-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar',\n rest: 'https://axelar-lcd.quickapi.com',\n cosmostationLcdUrl: 'https://axelar-lcd.quickapi.com',\n cosmostationApiUrl:\n 'https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'axelar',\n chainName: 'Axelar',\n stakeCurrency: {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'axl',\n bech32PrefixAccPub: 'axlpub',\n bech32PrefixValAddr: 'axlvaloper',\n bech32PrefixValPub: 'axlvaloperpub',\n bech32PrefixConsAddr: 'axlvalcons',\n bech32PrefixConsPub: 'axlvalconspub',\n },\n currencies: [\n {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/axelar/txs/{txHash}',\n gasPriceStep: {\n low: 0.007,\n average: 0.007,\n high: 0.01,\n },\n },\n },\n {\n name: 'STRIDE',\n defaultDecimals: 6,\n addressPatterns: ['^(stride1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STRIDE',\n symbol: 'STRD',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/stride.svg',\n displayName: 'Stride',\n shortName: 'Stride',\n sort: 41,\n color: '#D63178',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'stride-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-stride.keplr.app',\n rest: 'https://lcd-stride.keplr.app',\n cosmostationLcdUrl: 'https://lcd-stride.cosmostation.io',\n cosmostationApiUrl: 'https://api-stride.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'stride',\n chainName: 'Stride',\n stakeCurrency: {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'stride',\n bech32PrefixAccPub: 'stridepub',\n bech32PrefixValAddr: 'stridevaloper',\n bech32PrefixValPub: 'stridevaloperpub',\n bech32PrefixConsAddr: 'stridevalcons',\n bech32PrefixConsPub: 'stridevalconspub',\n },\n currencies: [\n {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stATOM',\n coinMinimalDenom: 'stuatom',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-atom',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stOSMO',\n coinMinimalDenom: 'stuosmo',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-osmo',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stJUNO',\n coinMinimalDenom: 'stujuno',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-juno',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stSTARS',\n coinMinimalDenom: 'stustars',\n coinDecimals: 6,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stEVMOS',\n coinMinimalDenom: 'staevmos',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stLUNA',\n coinMinimalDenom: 'stuluna',\n coinDecimals: 6,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n ],\n features: ['ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/stride/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.04,\n },\n },\n },\n {\n name: 'KCC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'KCC',\n symbol: 'KCS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/kcc.png',\n displayName: 'Kcc',\n shortName: 'Kcc',\n sort: 41,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x141',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Kcc Network',\n nativeCurrency: {\n name: 'KCS',\n symbol: 'KCS',\n decimals: 18,\n },\n rpcUrls: ['https://rpc-mainnet.kcc.network/'],\n blockExplorerUrls: ['https://explorer.kcc.io/en'],\n addressUrl: 'https://explorer.kcc.io/en/address/{wallet}',\n transactionUrl: 'https://explorer.kcc.io/en/tx/{txHash}',\n },\n },\n {\n name: 'MARS',\n defaultDecimals: 6,\n addressPatterns: ['^(mars1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MARS',\n symbol: 'MARS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/mars.svg',\n displayName: 'Mars',\n shortName: 'Mars',\n sort: 42,\n color: '#CB4B3D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'mars-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-mars.keplr.app',\n rest: 'https://lcd-mars.keplr.app',\n cosmostationLcdUrl: 'https://lcd-mars-protocol.cosmostation.io',\n cosmostationApiUrl: 'https://api-mars-protocol.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'mars-protocol',\n chainName: 'Mars',\n stakeCurrency: {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'mars',\n bech32PrefixAccPub: 'marspub',\n bech32PrefixValAddr: 'marsvaloper',\n bech32PrefixValPub: 'marsvaloperpub',\n bech32PrefixConsAddr: 'marsvalcons',\n bech32PrefixConsPub: 'marsvalconspub',\n },\n currencies: [\n {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n ],\n features: ['ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/mars-protocol/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.01,\n },\n },\n },\n {\n name: 'TERRA',\n defaultDecimals: 6,\n addressPatterns: ['^(terra1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'TERRA',\n symbol: 'LUNA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/terra.png',\n displayName: 'Terra 2.0',\n shortName: 'Terra 2.0',\n sort: 43,\n color: '#5493F7',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'phoenix-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-phoenix.keplr.app',\n rest: 'https://lcd-phoenix.keplr.app',\n cosmostationLcdUrl: 'https://phoenix-lcd.terra.dev',\n cosmostationApiUrl: null,\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: null,\n chainName: 'Terra 2.0',\n stakeCurrency: {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 330,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'terra',\n bech32PrefixAccPub: 'terrapub',\n bech32PrefixValAddr: 'terravaloper',\n bech32PrefixValPub: 'terravaloperpub',\n bech32PrefixConsAddr: 'terravalcons',\n bech32PrefixConsPub: 'terravalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n ],\n features: ['cosmwasm', 'ibc-transfer'],\n explorerUrlToTx: 'https://finder.terra.money/mainnet/txs/{txHash}',\n gasPriceStep: {\n low: 0.0125,\n average: 0.015,\n high: 0.15,\n },\n },\n },\n {\n name: 'TELOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'TELOS',\n symbol: 'TLOS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/telos.png',\n displayName: 'Telos',\n shortName: 'Telos',\n sort: 49,\n color: '#6144ae',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x28',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Telos Mainnet',\n nativeCurrency: {\n name: 'TLOS',\n symbol: 'TLOS',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.telos.net/evm'],\n blockExplorerUrls: ['https://www.teloscan.io'],\n addressUrl: 'https://www.teloscan.io/address/{wallet}',\n transactionUrl: 'https://www.teloscan.io/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_BNB',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_BNB',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Bnb',\n shortName: 'Boba Bnb',\n sort: 63,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xdbe0',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Bnb Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://bnb.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.bnb.boba.network'],\n addressUrl: 'https://blockexplorer.bnb.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.bnb.boba.network/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_BEAM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_BEAM',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Beam',\n shortName: 'Boba Beam',\n sort: 64,\n color: '#ccff00',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x50e',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Beam Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://bobabeam.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.bobabeam.boba.network'],\n addressUrl:\n 'https://blockexplorer.bobabeam.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.bobabeam.boba.network/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_AVALANCHE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_AVALANCHE',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Avalanche',\n shortName: 'Boba Avalanche',\n sort: 65,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa918',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Avalanche Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://avax.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.avax.boba.network'],\n addressUrl: 'https://blockexplorer.avax.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.avax.boba.network/tx/{txHash}',\n },\n },\n];\n", "import type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { EvmTransaction } from 'rango-types/lib/api/main';\n\nimport { cleanEvmError } from '@rango-dev/signer-evm';\nimport * as encoding from '@walletconnect/encoding';\nimport { AccountId, ChainId } from 'caip';\nimport { type GenericSigner } from 'rango-types';\n\nimport { EthereumRPCMethods, NAMESPACES } from '../constants';\n\nconst NAMESPACE_NAME = NAMESPACES.ETHEREUM;\n\nclass EVMSigner implements GenericSigner<EvmTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n static buildTx(evmTx: EvmTransaction, disableV2 = false) {\n let tx = {};\n if (evmTx.from) {\n tx = { ...tx, from: evmTx.from };\n }\n if (evmTx.to) {\n tx = { ...tx, to: evmTx.to };\n }\n if (evmTx.data) {\n tx = { ...tx, data: evmTx.data };\n }\n if (evmTx.value) {\n tx = { ...tx, value: evmTx.value };\n }\n if (evmTx.nonce) {\n tx = { ...tx, nonce: evmTx.nonce };\n }\n if (evmTx.gasLimit) {\n tx = { ...tx, gasLimit: evmTx.gasLimit };\n }\n if (evmTx.gasPrice) {\n const shift = 16;\n tx = {\n ...tx,\n gasPrice: '0x' + parseInt(evmTx.gasPrice).toString(shift),\n };\n }\n if (evmTx.maxFeePerGas && !disableV2) {\n tx = { ...tx, maxFeePerGas: evmTx.maxFeePerGas };\n }\n if (evmTx.maxPriorityFeePerGas && !disableV2) {\n tx = { ...tx, maxPriorityFeePerGas: evmTx.maxPriorityFeePerGas };\n }\n return tx;\n }\n\n public async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: requestedFor.chainId,\n });\n const hexMsg = encoding.utf8ToHex(msg, true);\n\n const params = [hexMsg, address];\n\n let signature: string;\n try {\n // Send message to wallet (using relayer)\n signature = await this.client.request({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: EthereumRPCMethods.PERSONAL_SIGN,\n params,\n },\n });\n } catch (error) {\n throw cleanEvmError(error);\n }\n\n /*\n * TODO: We can also verify the signature here\n * Check web-examples: dapps/react-dapp-v2/src/contexts/JsonRpcContext.tsx\n */\n\n return signature;\n }\n\n async signAndSendTx(\n tx: EvmTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n try {\n const transaction = EVMSigner.buildTx(tx);\n const hash: string = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: EthereumRPCMethods.SEND_TRANSACTION,\n params: [transaction],\n },\n });\n // Some wallets e.g. Rainbow wallet are returning invalid hash (e.g. 'null') in case of the rejection\n if (!hash?.startsWith('0x')) {\n throw new Error(\n `Received an invalid hash on signing the transaction. (hash=${hash})`\n );\n }\n return {\n hash,\n };\n } catch (error) {\n throw cleanEvmError(error);\n }\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n if (!chainId) {\n console.log('isNetworkAndAccountExistInSession', requestedFor);\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n\n /*\n * TODO: We need to make sure we are using a single format for chain ids, it should be hex or number.\n * This is a quick fix for evm.\n */\n const chainIdNumber = chainId.startsWith('0x')\n ? String(parseInt(chainId))\n : chainId;\n\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n },\n address,\n });\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address.toLowerCase()\n );\n\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString(),\n chainId,\n address\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n });\n\n return {\n chainId: chainIdNumber,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default EVMSigner;\n", "import type { SolanaWeb3Signer } from '@rango-dev/signer-solana';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { GenericSigner, SolanaTransaction } from 'rango-types';\n\nimport { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana';\nimport { PublicKey } from '@solana/web3.js';\nimport base58 from 'bs58';\nimport { AccountId, ChainId } from 'caip';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { NAMESPACES, SolanaRPCMethods } from '../constants';\n\nconst NAMESPACE_NAME = NAMESPACES.SOLANA;\nclass SOLANASigner implements GenericSigner<SolanaTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n public async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: requestedFor.chainId,\n });\n\n try {\n const message = base58.encode(new TextEncoder().encode(msg));\n const pubkey = new PublicKey(address);\n const { signature } = await this.client.request<{\n signature: string;\n }>({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: SolanaRPCMethods.SIGN_MESSAGE,\n params: {\n message,\n pubkey,\n },\n },\n });\n\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(\n tx: SolanaTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction: Transaction | VersionedTransaction\n ) => {\n const response: { signature: string } = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: SolanaRPCMethods.SIGN_TRANSACTION,\n params: solanaWeb3Transaction,\n },\n });\n\n const publicKey = new PublicKey(tx.from);\n const sign = base58.decode(response.signature);\n\n solanaWeb3Transaction.addSignature(publicKey, Buffer.from(sign));\n const raw = solanaWeb3Transaction.serialize();\n return raw;\n };\n\n const hash = await generalSolanaTransactionExecutor(\n tx,\n DefaultSolanaSigner\n );\n return { hash };\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n /*\n * TODO: solana chain id in supported blockchains(\"mainnet-beta\") is different from solana chain id is here (\"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\")\n * # Solana Mainnet\n * solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvd\n * refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\n */\n\n let solana_chain_id = chainId;\n this.session.namespaces[NAMESPACE_NAME]?.accounts.map((account) => {\n const sol_account = account.split(':');\n if (sol_account[2] === address) {\n solana_chain_id = sol_account[1];\n }\n });\n\n if (!solana_chain_id) {\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: solana_chain_id,\n },\n address,\n });\n\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address\n );\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString()\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: solana_chain_id,\n });\n\n return {\n chainId: solana_chain_id,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default SOLANASigner;\n"],
5
- "mappings": "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",
6
- "names": ["debug", "logError", "Networks", "WalletTypes", "Client", "AccountId", "ChainId", "evmBlockchains", "Networks", "DEFAULT_NETWORK", "PING_TIMEOUT", "CHAIN_ID_STORAGE", "DEFAULT_ETHEREUM_EVENTS", "DEFAULT_ETHEREUM_METHODS", "DEFAULT_SOLANA_CHAIN_ID", "DEFAULT_APP_METADATA", "RELAY_URL", "convertEvmBlockchainMetaToEvmChainInfo", "isEvmAddress", "Networks", "WalletConnectModal", "AccountId", "ChainId", "evmBlockchains", "isEvmBlockchain", "Networks", "timeout", "getSdkError", "AccountId", "getLastSession", "client", "__name", "restoreSession", "pairingTopic", "timeout", "PING_TIMEOUT", "createSession", "options", "requiredNamespaces", "optionalNamespaces", "uri", "approval", "onCloseModal", "allNamespaces", "standaloneChains", "namespace", "modal", "getModal", "_", "reject", "state", "session", "tryGetPairing", "pairings", "tryConnect", "params", "meta", "generateOptionalNamespace", "pairing", "disconnectSessions", "cleanupSingleSession", "topic", "sessions", "requestForDeleteTopic", "allPromises", "getSdkError", "persistCurrentChainId", "getAccountsFromSession", "account", "address", "chainId", "AccountId", "chain", "solanaChainIdToNetworkName", "getAccountsFromEvent", "event", "Networks", "updateSessionAccounts", "instance", "requestedNetwork", "currentNetwork", "namespaces", "needUpdateNamepspace", "accounts", "currentAccountAddress", "getCurrentEvmAccountAddress", "requestedAccount", "getEvmAccount", "currentAccount", "updatedNamespaces", "err", "ignoreNamespaceMethods", "WALLETS_WITH_WRONG_NAMESPACE_METHODS", "peerName", "name", "CHAIN_ID_STORAGE", "getPersistedChainId", "web3Modal", "createModalInstance", "projectId", "WalletConnectModal", "__name", "getModal", "generateOptionalNamespace", "meta", "evmChains", "evmBlockchains", "chain", "ChainId", "DEFAULT_ETHEREUM_METHODS", "DEFAULT_ETHEREUM_EVENTS", "solanaChainIdToNetworkName", "chainId", "DEFAULT_SOLANA_CHAIN_ID", "Networks", "simulateRequest", "params", "provider", "getState", "currentSession", "getLastSession", "standaloneChains", "namespace", "network", "getChainIdByNetworkName", "firstChain", "chainIdInHex", "blockchain", "switchOrAddEvmChain", "requestedNetwork", "currentNetwork", "instance", "isEvmBlockchain", "targetChain", "convertEvmBlockchainMetaToEvmChainInfo", "currentChainId", "currentChainEip", "session", "err", "getCurrentEvmAccountAddress", "account", "AccountId", "address", "isEvmAddress", "getEvmAccount", "filterEvmAccounts", "accounts", "firstEvmAddress", "DefaultSignerFactory", "TxType", "BroadcastMode", "makeSignDoc", "cosmos", "getsignedTx", "uint8ArrayToHex", "AccountId", "ChainId", "formatDirectSignDoc", "stringifySignDocValues", "SignerError", "SignerErrorCode", "TendermintTxTracer", "simpleFetch", "cosmosBlockchains", "sendTx", "chainId", "tx", "mode", "supportedChains", "chainInfo", "cosmosBlockchains", "item", "isProtoTx", "params", "result", "simpleFetch", "txResponse", "txHash", "txTracer", "TendermintTxTracer", "e", "__name", "supportedChains", "NAMESPACE_NAME", "COSMOSSigner", "__name", "client", "session", "SignerError", "tx", "address", "chainId", "requestedFor", "memo", "sequence", "account_number", "msgs", "fee", "signType", "msgsWithoutType", "m", "signDoc", "makeSignDoc", "signResponse", "err", "SignerErrorCode", "signedTx", "getsignedTx", "result", "sendTx", "BroadcastMode", "supportedChains", "uint8ArrayToHex", "getAccounts", "pubkey", "account", "bodyBytes", "cosmos", "formatDirectSignDoc", "stringifySignDocValues", "caipAddress", "AccountId", "addresses", "caipChainId", "ChainId", "cosmos_default", "cleanEvmError", "encoding", "AccountId", "ChainId", "NAMESPACE_NAME", "EVMSigner", "_EVMSigner", "__name", "client", "session", "evmTx", "disableV2", "tx", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "params", "signature", "error", "cleanEvmError", "transaction", "hash", "chainIdNumber", "caipAddress", "AccountId", "addresses", "evm_default", "generalSolanaTransactionExecutor", "PublicKey", "base58", "AccountId", "ChainId", "SignerError", "SignerErrorCode", "NAMESPACE_NAME", "SOLANASigner", "__name", "client", "session", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "message", "base58", "pubkey", "PublicKey", "signature", "error", "SignerError", "SignerErrorCode", "tx", "generalSolanaTransactionExecutor", "solanaWeb3Transaction", "response", "publicKey", "sign", "solana_chain_id", "account", "sol_account", "caipAddress", "AccountId", "addresses", "solana_default", "getSigners", "instance", "signers", "DefaultSignerFactory", "TxType", "evm_default", "cosmos_default", "solana_default", "__name", "WALLET", "WalletTypes", "envs", "init", "__name", "environments", "createModalInstance", "config", "DEFAULT_NETWORK", "getInstance", "options", "currentProvider", "getState", "meta", "provider", "Client", "RELAY_URL", "DEFAULT_APP_METADATA", "params", "simulateRequest", "connect", "instance", "client", "session", "tryConnect", "currentChainId", "getPersistedChainId", "accounts", "getAccountsFromSession", "filterEvmAccounts", "subscribe", "updateChainId", "updateAccounts", "disconnect", "args", "getAccountsFromEvent", "accountsWithChain", "account", "AccountId", "chainId", "ChainId", "persistCurrentChainId", "event", "cleanupSingleSession", "switchNetwork", "network", "evmBlockchains", "chain", "error", "logError", "chaindIdStr", "evmNamespace", "authorizedChains", "ignoreNamespaceMethods", "currentNetwork", "Networks", "updateSessionAccounts", "switchOrAddEvmChain", "canSwitchNetworkTo", "disconnectSessions", "debug", "getSigners", "getWalletInfo", "allBlockChains"]
4
+ "sourcesContent": ["import type { Environments, WCInstance } from './types';\nimport type {\n CanSwitchNetwork,\n Connect,\n Disconnect,\n GetInstance,\n Subscribe,\n SwitchNetwork,\n WalletConfig,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { ISignClient } from '@walletconnect/types';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport { debug, error as logError } from '@rango-dev/logging-core';\nimport { Networks, WalletTypes } from '@rango-dev/wallets-shared';\nimport Client from '@walletconnect/sign-client';\nimport { AccountId, ChainId } from 'caip';\nimport { evmBlockchains } from 'rango-types';\n\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_NETWORK,\n EthereumEvents,\n EthereumRPCMethods,\n NAMESPACES,\n RELAY_URL,\n} from './constants';\nimport {\n createModalInstance,\n filterEvmAccounts,\n simulateRequest,\n switchOrAddEvmChain,\n} from './helpers';\nimport {\n cleanupSingleSession,\n disconnectSessions,\n getAccountsFromEvent,\n getAccountsFromSession,\n getPersistedChainId,\n ignoreNamespaceMethods,\n persistCurrentChainId,\n tryConnect,\n updateSessionAccounts,\n} from './session';\nimport signer from './signer';\n\nconst WALLET = WalletTypes.WALLET_CONNECT_2;\n\nlet envs: Environments = {\n WC_PROJECT_ID: '',\n DISABLE_MODAL_AND_OPEN_LINK: undefined,\n};\n\nexport type { Environments };\n\nexport const init = (environments: Environments) => {\n envs = environments;\n\n createModalInstance(envs.WC_PROJECT_ID);\n};\n\nexport const config: WalletConfig = {\n type: WALLET,\n checkInstallation: false,\n isAsyncInstance: true,\n defaultNetwork: DEFAULT_NETWORK,\n isAsyncSwitchNetwork: true,\n};\n\nexport const getInstance: GetInstance = async (options) => {\n const { currentProvider, getState, meta } = options;\n\n /*\n * Create a new pair, if exists use the pair,\n * Or use the already created one.\n */\n let provider: ISignClient;\n if (!currentProvider) {\n if (!envs.WC_PROJECT_ID) {\n throw new Error(\n 'You need to set `WC_PROJECT_ID` in Wallet Connect provider.'\n );\n }\n provider = await Client.init({\n relayUrl: RELAY_URL,\n projectId: envs.WC_PROJECT_ID,\n metadata: DEFAULT_APP_METADATA,\n });\n } else {\n provider = currentProvider;\n }\n\n return {\n client: provider,\n session: null,\n request: async (params: any) =>\n simulateRequest(params, provider, meta, getState),\n };\n};\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const { client } = instance as WCInstance;\n // Try to restore the session first, if couldn't, create a new session by showing a modal.\n const session = await tryConnect(client, { meta, envs });\n // Override the value (session).\n instance.session = session;\n const currentChainId = await getPersistedChainId(client);\n const accounts = getAccountsFromSession(session);\n return filterEvmAccounts(accounts, currentChainId);\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n updateChainId,\n updateAccounts,\n disconnect,\n}) => {\n const { client } = instance as WCInstance;\n\n /**\n * Session events refrence:\n * https://docs.walletconnect.com/2.0/specs/clients/sign/session-events\n */\n\n // Listen to updating the session by adding a new chain, method, or event\n client.on('session_update', (args) => {\n const allAccounts = getAccountsFromEvent(args);\n allAccounts.forEach((accountsWithChain) => {\n updateAccounts(accountsWithChain.accounts, accountsWithChain.chainId);\n });\n });\n\n // Listen to events triggred by wallet. (e.g. accountsChanged and chainChanged)\n client.on('session_event', (args) => {\n if (args.params.event.name === EthereumEvents.ACCOUNTS_CHANGED) {\n const accounts = args.params.event.data.map((account: string) => {\n return new AccountId(account).address;\n });\n const chainId = ChainId.parse(args.params.chainId).reference;\n updateAccounts(accounts);\n updateChainId(chainId);\n } else if (args.params.event.name === EthereumEvents.CHAIN_CHANGED) {\n const chainId = args.params.event.data;\n updateChainId(chainId);\n void persistCurrentChainId(instance.client, chainId);\n } else {\n console.log('[WC2] session_event not supported', args.params.event);\n }\n });\n\n client.on('session_delete', async (event) => {\n console.log('[WC2] your wallet has requested to delete session.', event);\n void cleanupSingleSession(client, event.topic);\n disconnect();\n });\n};\n\nexport const switchNetwork: SwitchNetwork = async ({\n network,\n instance,\n meta,\n getState,\n updateChainId,\n}) => {\n const evm = evmBlockchains(meta);\n const chainId = evm.find((chain) => chain.name === network)?.chainId;\n if (!chainId) {\n const error = new Error(`There is no match for ${chainId}`);\n logError(error);\n throw error;\n }\n const chaindIdStr = new ChainId({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(parseInt(chainId)),\n }).toString();\n\n const session = instance.session;\n const evmNamespace = session.namespaces[NAMESPACES.ETHEREUM];\n const authorizedChains = evmNamespace?.chains || [];\n const authorizedMethods = evmNamespace?.methods || [];\n\n if (\n authorizedMethods.includes(EthereumRPCMethods.SWITCH_CHAIN) &&\n !ignoreNamespaceMethods(instance)\n ) {\n const currentNetwork = getState?.().network || Networks.ETHEREUM;\n await updateSessionAccounts(instance, network, currentNetwork, meta);\n await switchOrAddEvmChain(meta, network, currentNetwork, instance);\n } else if (authorizedChains.includes(chaindIdStr)) {\n updateChainId(chainId);\n return;\n } else {\n const error = new Error(`Chain ${chainId} is not configured.`);\n logError(error);\n throw error;\n }\n};\n\n/**\n *\n * Note:\n * There is no straight-forward way to detect the wallet supports which blockchain,\n * So we send request to wallet and expect to be rejected on the wallet if it's not supported.\n *\n */\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => true;\n\nexport const disconnect: Disconnect = async ({ instance }) => {\n const { client } = instance as WCInstance;\n\n if (client) {\n void disconnectSessions(client).catch((error) => debug(error));\n }\n};\n\nexport const getSigners: (provider: WCInstance) => SignerFactory = signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n return {\n name: 'WalletConnect',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/walletconnect/icon.svg',\n installLink: '',\n color: '#b2dbff',\n supportedChains: evms,\n showOnMobile: true,\n mobileWallet: true,\n };\n};\n", "import { Networks } from '@rango-dev/wallets-shared';\n\nexport const DEFAULT_NETWORK = Networks.ETHEREUM;\nexport const PING_TIMEOUT = 10_000;\n\nexport enum NAMESPACES {\n ETHEREUM = 'eip155',\n SOLANA = 'solana',\n COSMOS = 'cosmos',\n POLKADOT = 'polkadot',\n CARDANO = 'cip34',\n ERLOND = 'elrond',\n MULTIVERSX = 'multiversx',\n}\n\nexport const CHAIN_ID_STORAGE = 'wc@2:client//namespaces';\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/solana-rpc\nexport enum SolanaRPCMethods {\n GET_ACCOUNTS = 'solana_getAccounts',\n REQUEST_ACCOUNTS = 'solana_requestAccounts',\n SIGN_TRANSACTION = 'solana_signTransaction',\n SIGN_MESSAGE = 'solana_signMessage',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/cosmos-rpc\nexport enum CosmosRPCMethods {\n GET_ACCOUNTS = 'cosmos_getAccounts',\n SIGN_DIRECT = 'cosmos_signDirect',\n SIGN_AMINO = 'cosmos_signAmino',\n}\n\n// Refrence: https://docs.walletconnect.com/2.0/advanced/rpc-reference/ethereum-rpc\nexport enum EthereumRPCMethods {\n PERSONAL_SIGN = 'personal_sign',\n SIGN = 'eth_sign',\n SIGN_TYPED_DATA = 'eth_signTypedData',\n SIGN_TRANSACTION = 'eth_signTransaction',\n SEND_TRANSACTION = 'eth_sendTransaction',\n SEND_RAW_TRANSACTION = 'eth_sendRawTransaction',\n SWITCH_CHAIN = 'wallet_switchEthereumChain',\n ADD_CHAIN = 'wallet_addEthereumChain',\n GET_CHAIN = 'eth_chainId',\n}\n\nexport enum StarknetRPCMethods {\n REQUEST_ADD_INVOKE_TRANSACTION = 'starknet_requestAddInvokeTransaction',\n SIGN_TYPED_DATA = 'starknet_signTypedData',\n}\n\nexport enum EthereumEvents {\n CHAIN_CHANGED = 'chainChanged',\n ACCOUNTS_CHANGED = 'accountsChanged',\n}\n\nexport const DEFAULT_ETHEREUM_EVENTS: EthereumEvents[] = [\n EthereumEvents.CHAIN_CHANGED,\n EthereumEvents.ACCOUNTS_CHANGED,\n];\n\nexport const DEFAULT_ETHEREUM_METHODS = [\n EthereumRPCMethods.PERSONAL_SIGN,\n EthereumRPCMethods.SEND_TRANSACTION,\n EthereumRPCMethods.SIGN_TRANSACTION,\n EthereumRPCMethods.SWITCH_CHAIN,\n EthereumRPCMethods.ADD_CHAIN,\n EthereumRPCMethods.GET_CHAIN,\n];\n\nexport const DEFAULT_SOLANA_METHODS = [\n SolanaRPCMethods.SIGN_TRANSACTION,\n SolanaRPCMethods.SIGN_MESSAGE,\n];\n\nexport const DEFAULT_COSMOS_METHODS = [\n CosmosRPCMethods.GET_ACCOUNTS,\n CosmosRPCMethods.SIGN_AMINO,\n CosmosRPCMethods.SIGN_DIRECT,\n];\n\n// refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\nexport const DEFAULT_SOLANA_CHAIN_ID = '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ';\n\nexport const DEFAULT_APP_METADATA = {\n name: 'Rango Exchange',\n description: 'The Ultimate Cross-Chain Solution',\n url: 'https://app.rango.exchange/',\n icons: ['https://app.rango.exchange/logo-rounded.png'],\n};\n\nexport const RELAY_URL = 'wss://relay.walletconnect.com';\n", "import type { WalletState } from '@rango-dev/wallets-shared';\nimport type { ProposalTypes } from '@walletconnect/types';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport {\n convertEvmBlockchainMetaToEvmChainInfo,\n isEvmAddress,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport { AccountId, ChainId } from 'caip';\nimport { evmBlockchains, isEvmBlockchain } from 'rango-types';\n\nimport {\n DEFAULT_ETHEREUM_EVENTS,\n DEFAULT_ETHEREUM_METHODS,\n DEFAULT_SOLANA_CHAIN_ID,\n EthereumRPCMethods,\n NAMESPACES,\n} from './constants';\nimport { getLastSession } from './session';\n\nlet web3Modal: WalletConnectModal;\nexport function createModalInstance(projectId: string) {\n if (!web3Modal) {\n web3Modal = new WalletConnectModal({\n projectId,\n themeMode: 'light',\n themeVariables: {\n '--wcm-z-index': '999999999',\n },\n });\n }\n}\nexport function getModal(): WalletConnectModal {\n return web3Modal;\n}\n\ntype FinalNamespaces = {\n [key in NAMESPACES]?: ProposalTypes.BaseRequiredNamespace;\n};\n\n/*\n * Some wallets like 1inch (android) has problem when we pass cosmos chains in optional namespace\n * Also some wallets like keplr mobile doesn't work when we don't pass cosmos chains in required namespace\n * It seems to be a bug in their current implementation.\n */\nexport function generateOptionalNamespace(\n meta: BlockchainMeta[]\n): FinalNamespaces | undefined {\n const evm = evmBlockchains(meta);\n const evmChains = evm.map((chain) => {\n return new ChainId({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(parseInt(chain.chainId)),\n }).toString();\n });\n\n const namespaces: FinalNamespaces = {\n [NAMESPACES.ETHEREUM]: {\n methods: DEFAULT_ETHEREUM_METHODS,\n events: DEFAULT_ETHEREUM_EVENTS,\n chains: evmChains,\n },\n };\n return namespaces;\n}\n\nexport function solanaChainIdToNetworkName(chainId: string): string {\n return chainId === DEFAULT_SOLANA_CHAIN_ID ? Networks.SOLANA : chainId;\n}\n\n/**\n *\n * In `rango-preset` we are working with `window.ethereum.request()`,\n * this is an interceptor for some RPC methods (e.g. eth_chainId).\n *\n */\nexport async function simulateRequest(\n params: any,\n provider: any,\n meta: BlockchainMeta[],\n getState: () => WalletState\n) {\n if (params.method === 'eth_chainId') {\n const currentSession = getLastSession(provider);\n const standaloneChains = Object.values(currentSession.namespaces)\n .map((namespace) => namespace.chains)\n .flat() as string[];\n\n const network = getState().network;\n\n if (standaloneChains.length > 0) {\n const chainId = network\n ? getChainIdByNetworkName(network, meta)\n : undefined;\n\n if (chainId) {\n return chainId;\n }\n\n const firstIndex = 0;\n const firstChain = standaloneChains[firstIndex];\n const firstChainId = new ChainId(firstChain);\n return firstChainId.reference;\n }\n\n throw new Error(`Couldn't find any chain on namespace`);\n }\n throw new Error('Dissallowed method:', params);\n}\n\nexport function getChainIdByNetworkName(\n network: string,\n meta: BlockchainMeta[]\n): string | undefined {\n const targetBlockchain = meta.find(\n (blockchain) => blockchain.name === network\n );\n const chainIdInHex = targetBlockchain?.chainId;\n if (!chainIdInHex) {\n return undefined;\n }\n\n const chainId = String(parseInt(chainIdInHex));\n\n return chainId;\n}\n\nexport async function switchOrAddEvmChain(\n meta: BlockchainMeta[],\n requestedNetwork: string,\n currentNetwork: string,\n instance: any\n) {\n const evmBlockchains = meta.filter(isEvmBlockchain);\n const evmNetworksChainInfo =\n convertEvmBlockchainMetaToEvmChainInfo(evmBlockchains);\n const targetChain = evmNetworksChainInfo[requestedNetwork];\n const targetBlockchain = meta.find(\n (blockchain: BlockchainMeta) => blockchain.name === requestedNetwork\n );\n const chainIdInHex = targetBlockchain?.chainId;\n\n const currentChainId = getChainIdByNetworkName(currentNetwork, meta);\n const currentChainEip = ChainId.format({\n namespace: NAMESPACES.ETHEREUM,\n reference: String(currentChainId),\n });\n\n const session = instance.session;\n\n try {\n await instance.client.request({\n topic: session.topic,\n request: {\n method: EthereumRPCMethods.SWITCH_CHAIN,\n params: [\n {\n chainId: chainIdInHex,\n },\n ],\n },\n // It's required to pass current chain, otherwise it won't work\n chainId: currentChainEip,\n });\n } catch (err: any) {\n const addChainError = 4902;\n if (\n err?.code === addChainError ||\n err?.message?.includes(String(addChainError))\n ) {\n await instance.client.request({\n topic: session.topic,\n request: {\n method: EthereumRPCMethods.ADD_CHAIN,\n params: [targetChain],\n },\n // It's required to pass current chain, otherwise it won't work\n chainId: currentChainEip,\n });\n } else {\n throw err;\n }\n }\n}\n\nexport function getCurrentEvmAccountAddress(instance: any) {\n return instance.session.namespaces.eip155.accounts\n ?.map((account: string) => {\n return new AccountId(account).address;\n })\n ?.filter((address: string) => isEvmAddress(address))?.[0];\n}\n\nexport function getEvmAccount(\n network: string,\n address: string,\n meta: BlockchainMeta[]\n) {\n const currentChainId = getChainIdByNetworkName(network, meta);\n return AccountId.format({\n chainId: {\n namespace: NAMESPACES.ETHEREUM,\n reference: String(currentChainId),\n },\n address,\n });\n}\n\n// It's enough to return only connected network for the EVM networks and ignore others\nexport function filterEvmAccounts(\n accounts: {\n address: string;\n chainId: string;\n }[],\n currentChainId?: string\n) {\n let firstEvmAddress = false;\n return accounts\n .filter(({ address, chainId }) => {\n const isEvm = isEvmAddress(address);\n if (isEvm) {\n if (currentChainId && chainId !== currentChainId) {\n return false;\n }\n if (!currentChainId) {\n if (firstEvmAddress) {\n return false;\n }\n firstEvmAddress = true;\n }\n }\n return true;\n })\n .map(({ address, chainId }) => ({\n accounts: [address],\n chainId: chainId,\n }));\n}\n", "import type { ConnectParams, CreateSessionParams, Environments } from './types';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type {\n PairingTypes,\n SessionTypes,\n SignClientTypes,\n} from '@walletconnect/types';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport { Networks, timeout } from '@rango-dev/wallets-shared';\nimport { getSdkError } from '@walletconnect/utils';\nimport { AccountId } from 'caip';\n\nimport { CHAIN_ID_STORAGE, PING_TIMEOUT } from './constants';\nimport {\n generateOptionalNamespace,\n getCurrentEvmAccountAddress,\n getEvmAccount,\n getModal,\n solanaChainIdToNetworkName,\n} from './helpers';\n\nexport function getLastSession(client: SignClient) {\n return client.session.values[client.session.values.length - 1];\n}\n\n/**\n *\n * Try to ping the wallet, if wallet responded with `pong`, session is a valid and we will use the session.\n * If the wallet didn't respond during 10 seconds (PING_TIME), we assume the wallet isn't available and we need to create a new session.\n *\n */\nexport async function restoreSession(\n client: SignClient,\n pairingTopic: PairingTypes.Struct['topic']\n): Promise<SessionTypes.Struct | undefined> {\n await timeout(\n client.ping({\n topic: pairingTopic,\n }),\n PING_TIMEOUT\n );\n\n // We assume last session is the correct session, beacuse we are doing clean up and keeps only one pairing/session.\n const session = getLastSession(client);\n return session;\n}\n\n/**\n *\n * Getting a pair of required and optional namespaces then tries to show a modal and connect (pair)\n * To the wallet.\n * @param client\n * @param options\n * @returns\n */\nexport async function createSession(\n client: SignClient,\n options: CreateSessionParams,\n configs: {\n envs: Environments;\n }\n): Promise<SessionTypes.Struct> {\n const { requiredNamespaces, optionalNamespaces, pairingTopic } = options;\n\n try {\n const { uri, approval } = await client.connect({\n requiredNamespaces,\n optionalNamespaces,\n pairingTopic,\n });\n\n // Open QRCode modal if a URI was returned (i.e. we're not connecting an existing pairing).\n let onCloseModal;\n if (uri) {\n /*\n * There are some wallets have been listed in WC itself (https://docs.walletconnect.com/cloud/explorer-submission),\n * Using `DISABLE_MODAL_AND_OPEN_LINK` option, we can directly open a specific desktop wallet.\n */\n const redirectLink = configs.envs.DISABLE_MODAL_AND_OPEN_LINK;\n if (redirectLink) {\n const url = `${redirectLink}/wc?uri=${encodeURIComponent(uri)}`;\n window.open(url, '_blank', 'noreferrer noopener');\n } else {\n // Create a flat array of all requested chains across namespaces.\n const allNamespaces = {\n ...(requiredNamespaces || {}),\n ...(optionalNamespaces || {}),\n };\n\n const standaloneChains = Object.values(allNamespaces)\n .map((namespace) => namespace.chains)\n .flat() as string[];\n\n const modal = getModal();\n void modal.openModal({ uri, standaloneChains });\n\n onCloseModal = new Promise((_, reject) => {\n modal.subscribeModal((state) => {\n // the modal was closed so reject the promise\n if (!state.open) {\n reject(new Error('Modal has been closed.'));\n }\n });\n });\n }\n }\n\n const session = approval();\n\n if (onCloseModal) {\n const result = await Promise.race([session, onCloseModal]);\n // We know onClose only reject a modal and never returns a value.\n return result as SessionTypes.Struct;\n }\n return await session;\n } finally {\n getModal().closeModal();\n }\n}\n\n/**\n *\n * A user (client) can have multiple pairings (to different wallets), we are assuming\n * the last pairing is the active pairing for now. A better UX can be showing a list of pairings\n * and let the user to choose the right pairing manually. Because we don't have that yet, we will pick up the last one.\n *\n */\nexport function tryGetPairing(\n client: SignClient\n): PairingTypes.Struct | undefined {\n const pairings = client.pairing.getAll({ active: true });\n const lastPairing =\n pairings.length > 0 ? pairings[pairings.length - 1] : undefined;\n\n return lastPairing;\n}\n\n/**\n *\n * Try to restore the session first, if couldn't, create a new session by showing a modal.\n *\n */\nexport async function tryConnect(\n client: SignClient,\n params: ConnectParams\n): Promise<SessionTypes.Struct> {\n const { meta } = params;\n\n // We try to get all of our supported chains as optional.\n const optionalNamespaces = generateOptionalNamespace(meta);\n\n // Check if the user has a session, if yes, restore the session and use it.\n let session: SessionTypes.Struct | undefined;\n const pairing = tryGetPairing(client);\n if (pairing) {\n try {\n session = await restoreSession(client, pairing.topic);\n } catch (e) {\n await disconnectSessions(client);\n }\n }\n\n // In case of connecting for the first time or session couldn't be restored, we will create a new session.\n if (!session) {\n session = await createSession(\n client,\n {\n requiredNamespaces: {},\n optionalNamespaces,\n },\n {\n envs: params.envs,\n }\n );\n }\n\n return session;\n}\n\n/**\n *\n * Try to find sessions with a topic id and expire them.\n *\n */\nexport async function cleanupSingleSession(client: SignClient, topic: string) {\n const sessions = client.session.getAll();\n const pairings = client.pairing.getAll();\n\n sessions.forEach((session) => {\n if (session.topic === topic || session.pairingTopic === topic) {\n const requestForDeleteTopic =\n session.pairingTopic === topic ? session.pairingTopic : session.topic;\n client.core.expirer.set(requestForDeleteTopic, 0);\n }\n });\n\n pairings.forEach((pairing) => {\n if (pairing.topic === topic) {\n client.core.expirer.set(topic, 0);\n }\n });\n}\n\n/**\n *\n * Disconnect means to delete the session on both parties (dApp & wallet) at the same time.\n *\n */\nexport async function disconnectSessions(client: SignClient) {\n const allPromises = [];\n\n const sessions = client.session.getAll();\n for (const session of sessions) {\n allPromises.push(\n client.disconnect({\n topic: session.topic,\n reason: getSdkError('USER_DISCONNECTED'),\n })\n );\n }\n\n const pairings = client.pairing.getAll();\n for (const pairing of pairings) {\n allPromises.push(\n client.disconnect({\n topic: pairing.topic,\n reason: getSdkError('USER_DISCONNECTED'),\n })\n );\n }\n\n // reset the current chain id\n void persistCurrentChainId(client, undefined);\n\n return await Promise.all(allPromises);\n}\n\nexport function getAccountsFromSession(session: SessionTypes.Struct) {\n const accounts = Object.values(session.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n .map((account) => {\n const { address, chainId } = new AccountId(account);\n /*\n * Note: Solana has a specific ID, we need to convert it back to network name.\n * It will return the chain id itslef if it's not that specific ID.\n */\n const chain = solanaChainIdToNetworkName(chainId.reference);\n return {\n address,\n chainId: chain,\n };\n });\n return accounts;\n}\n\nexport function getAccountsFromEvent(\n event: SignClientTypes.BaseEventArgs<{\n namespaces: SessionTypes.Namespaces;\n }>\n) {\n const accounts = Object.values(event.params.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n .map((account) => {\n const { address, chainId } = new AccountId(account);\n return {\n accounts: [address],\n chainId:\n chainId.namespace === 'solana' ? Networks.SOLANA : chainId.reference,\n };\n });\n\n return accounts;\n}\n\n/*\n * Before switch network, we need to update session namespace accounts\n * to contain both current chain and target chain accoutns.\n */\nexport async function updateSessionAccounts(\n instance: any,\n requestedNetwork: string,\n currentNetwork: string,\n meta: BlockchainMeta[]\n) {\n const session = instance.session;\n\n const namespaces = session.namespaces;\n let needUpdateNamepspace = false;\n const accounts = namespaces.eip155.accounts;\n\n const currentAccountAddress = getCurrentEvmAccountAddress(instance);\n const requestedAccount = getEvmAccount(\n requestedNetwork,\n currentAccountAddress,\n meta\n );\n if (!accounts.includes(requestedAccount)) {\n accounts.push(requestedAccount);\n needUpdateNamepspace = true;\n }\n\n const currentAccount = getEvmAccount(\n currentNetwork,\n currentAccountAddress,\n meta\n );\n if (!accounts.includes(currentAccount)) {\n accounts.push(currentAccount);\n needUpdateNamepspace = true;\n }\n\n if (needUpdateNamepspace) {\n const updatedNamespaces = {\n ...namespaces,\n eip155: {\n ...namespaces.eip155,\n accounts,\n },\n };\n await instance.client.session\n .update({\n topic: session.topic,\n namespaces: updatedNamespaces,\n })\n .catch((err: unknown) => {\n console.log(err);\n });\n }\n}\n\n/*\n * Certain wallets, such as Trust Wallet and 1inch, are providing incorrect methods in\n * response to session proposal requests. These wallets do not support certain optional\n * RPC methods like \"wallet_xyz,\" but they include them in the response under the session namespace.\n * For the time being, we should avoid their session namespace response.\n * see also: https://github.com/trustwallet/wallet-core/issues/3588\n */\nexport function ignoreNamespaceMethods(instance: any): boolean {\n const WALLETS_WITH_WRONG_NAMESPACE_METHODS = ['trust', '1inch'];\n const peerName = instance?.session?.peer?.metadata?.name;\n return WALLETS_WITH_WRONG_NAMESPACE_METHODS.some((name) =>\n peerName?.toLowerCase()?.includes(name)\n );\n}\n\nexport async function persistCurrentChainId(\n client: SignClient,\n chainId?: string\n) {\n return client.core.storage.setItem(CHAIN_ID_STORAGE, {\n defaultChainId: chainId ? parseInt(chainId) : '',\n });\n}\n\n/*\n * get the latest chain id from the storage,\n * used for setting current chain id in session reconnect.\n */\nexport async function getPersistedChainId(client: SignClient) {\n try {\n const chainId = (await client.core.storage.getItem(CHAIN_ID_STORAGE))\n ?.defaultChainId;\n return !!chainId ? String(chainId) : undefined;\n } catch {\n return undefined;\n }\n}\n", "import type { WCInstance } from './types';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport COSMOSSigner from './signers/cosmos';\nimport EVMSigner from './signers/evm';\nimport SOLANASigner from './signers/solana';\n\nexport default function getSigners(instance: WCInstance): SignerFactory {\n if (!instance.session) {\n throw new Error('Session is required for wallet connect signers.');\n }\n\n const signers = new DefaultSignerFactory();\n signers.registerSigner(\n TxType.EVM,\n new EVMSigner(instance.client, instance.session)\n );\n signers.registerSigner(\n TxType.COSMOS,\n new COSMOSSigner(instance.client, instance.session)\n );\n signers.registerSigner(\n TxType.SOLANA,\n new SOLANASigner(instance.client, instance.session)\n );\n\n return signers;\n}\n", "import type { AminoSignResponse } from '@cosmjs/launchpad';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { CosmosTransaction, GenericSigner } from 'rango-types';\n\nimport { BroadcastMode, makeSignDoc } from '@cosmjs/launchpad';\nimport { cosmos } from '@keplr-wallet/cosmos';\nimport { getsignedTx } from '@rango-dev/signer-cosmos';\nimport { uint8ArrayToHex } from '@rango-dev/wallets-shared';\nimport { AccountId, ChainId } from 'caip';\nimport { formatDirectSignDoc, stringifySignDocValues } from 'cosmos-wallet';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { CosmosRPCMethods, NAMESPACES } from '../constants';\n\nimport { sendTx } from './helper';\nimport { supportedChains } from './mock';\n\nconst NAMESPACE_NAME = NAMESPACES.COSMOS;\ntype DirectSignResponse = {\n signature: {\n pub_key: {\n type: string;\n value: string;\n };\n signature: string;\n };\n signed: {\n chainId: string;\n accountNumber: string;\n authInfoBytes: string;\n bodyBytes: string;\n };\n};\nclass COSMOSSigner implements GenericSigner<CosmosTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n public async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(\n tx: CosmosTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n console.log({ tx, address, chainId });\n\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n try {\n const { memo, sequence, account_number, chainId, msgs, fee, signType } =\n tx.data;\n const msgsWithoutType = msgs.map((m) => ({\n ...m,\n __type: undefined,\n '@type': undefined,\n }));\n if (!chainId) {\n throw SignerError.AssertionFailed('chainId is undefined from server');\n }\n if (!account_number) {\n throw SignerError.AssertionFailed(\n 'account_number is undefined from server'\n );\n }\n if (!sequence) {\n throw SignerError.AssertionFailed('sequence is undefined from server');\n }\n\n if (signType === 'AMINO') {\n const signDoc = makeSignDoc(\n msgsWithoutType,\n fee as any,\n chainId,\n memo || undefined,\n account_number,\n sequence\n );\n let signResponse;\n try {\n signResponse = await this.client.request<AminoSignResponse>({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.SIGN_AMINO,\n params: {\n signDoc,\n signerAddress: tx.fromWalletAddress,\n },\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n\n const signedTx = getsignedTx(tx, signResponse);\n const result = await sendTx(\n chainId,\n signedTx,\n BroadcastMode.Async,\n supportedChains\n );\n return { hash: uint8ArrayToHex(result) };\n } else if (signType === 'DIRECT') {\n let getAccounts;\n try {\n getAccounts = await this.client.request<\n Array<{\n address: string;\n algo: string;\n pubkey: string;\n }>\n >({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.GET_ACCOUNTS,\n params: {},\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n const pubkey =\n getAccounts?.find(\n (account) => account.address === tx.fromWalletAddress\n )?.pubkey || '';\n\n const bodyBytes = cosmos.tx.v1beta1.TxBody.encode({\n messages: tx.data.protoMsgs.map((m) => ({\n type_url: m.type_url,\n value: new Uint8Array(m.value),\n })),\n memo,\n }).finish();\n console.log({ tx, bodyBytes });\n\n const signDoc = formatDirectSignDoc(\n fee?.amount || [],\n pubkey,\n parseInt(fee?.gas as string),\n account_number,\n parseInt(sequence),\n uint8ArrayToHex(bodyBytes),\n chainId\n );\n let signResponse;\n try {\n signResponse = await this.client.request<DirectSignResponse>({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: CosmosRPCMethods.SIGN_DIRECT,\n params: {\n signDoc: stringifySignDocValues(signDoc),\n signerAddress: tx.fromWalletAddress,\n },\n },\n });\n } catch (err) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, err);\n }\n console.log({ signResponse });\n const signedTx = cosmos.tx.v1beta1.TxRaw.encode({\n bodyBytes: new TextEncoder().encode(signResponse.signed.bodyBytes),\n authInfoBytes: new TextEncoder().encode(\n signResponse.signed.authInfoBytes\n ),\n signatures: [Buffer.from(signResponse.signature.signature, 'base64')],\n }).finish();\n console.log({ signedTx });\n const result = await sendTx(\n chainId,\n signedTx,\n BroadcastMode.Async,\n supportedChains\n );\n\n console.log({ result });\n\n return { hash: uint8ArrayToHex(result) };\n }\n throw new SignerError(\n SignerErrorCode.OPERATION_UNSUPPORTED,\n `Sign type for cosmos not supported, type: ${signType}`\n );\n } catch (err) {\n if (SignerError.isSignerError(err)) {\n throw err;\n } else {\n throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, err);\n }\n }\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n if (!chainId) {\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: chainId,\n },\n address,\n });\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address.toLowerCase()\n );\n\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString()\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: chainId,\n });\n\n return { chainId, address, caipChainId: caipChainId.toString() };\n }\n}\n\nexport default COSMOSSigner;\n", "import type { BlockchainMeta } from 'rango-types';\n\nimport { TendermintTxTracer } from '@keplr-wallet/cosmos';\nimport { simpleFetch } from '@keplr-wallet/simple-fetch';\nimport { cosmosBlockchains } from 'rango-types';\n\nexport async function sendTx(\n chainId: string,\n tx: unknown,\n mode: 'async' | 'sync' | 'block',\n supportedChains: BlockchainMeta[]\n): Promise<Uint8Array> {\n console.log({ chainId, tx, mode });\n\n const cosmos = cosmosBlockchains(supportedChains);\n const chainInfo = cosmos.find((item) => item.chainId === chainId)?.info;\n const isProtoTx = Buffer.isBuffer(tx) || tx instanceof Uint8Array;\n\n console.log({ chainInfo, isProtoTx });\n\n if (!chainInfo) {\n throw new Error('Chain info is undefined from server');\n }\n const params = isProtoTx\n ? {\n tx_bytes: Buffer.from(tx as any).toString('base64'),\n mode: (() => {\n switch (mode) {\n case 'async':\n return 'BROADCAST_MODE_ASYNC';\n case 'block':\n return 'BROADCAST_MODE_BLOCK';\n case 'sync':\n return 'BROADCAST_MODE_SYNC';\n default:\n return 'BROADCAST_MODE_UNSPECIFIED';\n }\n })(),\n }\n : {\n tx,\n mode: mode,\n };\n\n try {\n const result = await simpleFetch<any>(\n chainInfo.rest,\n isProtoTx ? '/cosmos/tx/v1beta1/txs' : '/txs',\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(params),\n }\n );\n\n const txResponse = isProtoTx ? result.data['tx_response'] : result.data;\n\n if (txResponse.code != null && txResponse.code !== 0) {\n throw new Error(txResponse['raw_log']);\n }\n\n const txHash = Buffer.from(txResponse.txhash, 'hex');\n\n const txTracer = new TendermintTxTracer(chainInfo.rpc, '/websocket');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n txTracer.traceTx(txHash).then(() => {\n txTracer.close();\n });\n\n return txHash;\n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n", "import type { BlockchainMeta } from 'rango-types';\n\nexport const supportedChains: BlockchainMeta[] = [\n {\n name: 'BSC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BSC',\n symbol: 'BNB',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/binance.svg',\n displayName: 'BSC',\n shortName: 'BSC',\n sort: 1,\n color: '#F3BA2F',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x38',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Binance Smart Chain Mainnet',\n nativeCurrency: {\n name: 'BNB',\n symbol: 'BNB',\n decimals: 18,\n },\n rpcUrls: ['https://bsc-dataseed1.ninicoin.io'],\n blockExplorerUrls: ['https://bscscan.com'],\n addressUrl: 'https://bscscan.com/address/{wallet}',\n transactionUrl: 'https://bscscan.com/tx/{txHash}',\n },\n },\n {\n name: 'POLYGON',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/polygon.svg',\n displayName: 'Polygon',\n shortName: 'Polygon',\n sort: 2,\n color: '#8247E5',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x89',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Polygon Mainnet',\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n rpcUrls: ['https://polygon-rpc.com'],\n blockExplorerUrls: ['https://polygonscan.com'],\n addressUrl: 'https://polygonscan.com/address/{wallet}',\n transactionUrl: 'https://polygonscan.com/tx/{txHash}',\n },\n },\n {\n name: 'ETH',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ETH',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ethereum.svg',\n displayName: 'Ethereum',\n shortName: 'ETH',\n sort: 3,\n color: '#ecf0f1',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x1',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Ethereum Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ankr.com/eth'],\n blockExplorerUrls: ['https://etherscan.io'],\n addressUrl: 'https://etherscan.io/address/{wallet}',\n transactionUrl: 'https://etherscan.io/tx/{txHash}',\n },\n },\n {\n name: 'OSMOSIS',\n defaultDecimals: 6,\n addressPatterns: ['^(osmo1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/osmosis.svg',\n displayName: 'Osmosis',\n shortName: 'Osmosis',\n sort: 4,\n color: '#7901B4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'osmosis-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-osmosis.keplr.app',\n rest: 'https://lcd-osmosis.keplr.app',\n cosmostationLcdUrl: 'https://lcd-osmosis.cosmostation.io',\n cosmostationApiUrl: 'https://api-osmosis.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'osmosis',\n chainName: 'Osmosis',\n stakeCurrency: {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'osmo',\n bech32PrefixAccPub: 'osmopub',\n bech32PrefixValAddr: 'osmovaloper',\n bech32PrefixValPub: 'osmovaloperpub',\n bech32PrefixConsAddr: 'osmovalcons',\n bech32PrefixConsPub: 'osmovalconspub',\n },\n currencies: [\n {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n {\n coinDenom: 'ION',\n coinMinimalDenom: 'uion',\n coinDecimals: 6,\n coinGeckoId: 'pool:uion',\n coinImageUrl: '/tokens/blockchain/ion.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'OSMO',\n coinMinimalDenom: 'uosmo',\n coinDecimals: 6,\n coinGeckoId: 'pool:uosmo',\n coinImageUrl: '/tokens/blockchain/osmosis.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/osmosis/txs/{txHash}',\n gasPriceStep: {\n low: 0,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'JUNO',\n defaultDecimals: 6,\n addressPatterns: ['^(juno1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'JUNO',\n symbol: 'JUNO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/juno.svg',\n displayName: 'Juno',\n shortName: 'Juno',\n sort: 5,\n color: '#f0827d',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'juno-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-juno.itastakers.com:443/',\n rest: 'https://lcd-juno.keplr.app',\n cosmostationLcdUrl: 'https://lcd-juno.cosmostation.io',\n cosmostationApiUrl: 'https://api-juno.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'juno',\n chainName: 'Juno',\n stakeCurrency: {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'juno',\n bech32PrefixAccPub: 'junopub',\n bech32PrefixValAddr: 'junovaloper',\n bech32PrefixValPub: 'junovaloperpub',\n bech32PrefixConsAddr: 'junovalcons',\n bech32PrefixConsPub: 'junovalconspub',\n },\n currencies: [\n {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'JUNO',\n coinMinimalDenom: 'ujuno',\n coinDecimals: 6,\n coinGeckoId: 'juno-network',\n coinImageUrl: '/tokens/blockchain/JUNO.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/juno/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.004,\n },\n },\n },\n {\n name: 'AVAX_CCHAIN',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'AVAX_CCHAIN',\n symbol: 'AVAX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/avax_cchain.svg',\n displayName: 'Avalanche',\n shortName: 'Avax',\n sort: 6,\n color: '#e84142',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa86a',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Avalanche C-Chain',\n nativeCurrency: {\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n rpcUrls: ['https://api.avax.network/ext/bc/C/rpc'],\n blockExplorerUrls: ['https://snowtrace.io'],\n addressUrl: 'https://snowtrace.io/address/{wallet}',\n transactionUrl: 'https://snowtrace.io/tx/{txHash}',\n },\n },\n {\n name: 'ARBITRUM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ARBITRUM',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/arbitrum.svg',\n displayName: 'Arbitrum',\n shortName: 'Arbitrum',\n sort: 7,\n color: '#28a0f0',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa4b1',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Arbitrum One',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://arb1.arbitrum.io/rpc'],\n blockExplorerUrls: ['https://arbiscan.io'],\n addressUrl: 'https://arbiscan.io/address/{wallet}',\n transactionUrl: 'https://arbiscan.io/tx/{txHash}',\n },\n },\n {\n name: 'COSMOS',\n defaultDecimals: 6,\n addressPatterns: ['^(cosmos1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'COSMOS',\n symbol: 'ATOM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/cosmos.svg',\n displayName: 'Cosmos',\n shortName: 'Cosmos',\n sort: 8,\n color: '#2E3148',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'cosmoshub-4',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://cosmos-rpc.polkachu.com',\n rest: 'https://lcd-cosmoshub.keplr.app',\n cosmostationLcdUrl: 'https://lcd-cosmos.cosmostation.io',\n cosmostationApiUrl: 'https://api-cosmos.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'cosmos',\n chainName: 'Cosmos',\n stakeCurrency: {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'cosmos',\n bech32PrefixAccPub: 'cosmospub',\n bech32PrefixValAddr: 'cosmosvaloper',\n bech32PrefixValPub: 'cosmosvaloperpub',\n bech32PrefixConsAddr: 'cosmosvalcons',\n bech32PrefixConsPub: 'cosmosvalconspub',\n },\n currencies: [\n {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'ATOM',\n coinMinimalDenom: 'uatom',\n coinDecimals: 6,\n coinGeckoId: 'cosmos',\n coinImageUrl: '/tokens/blockchain/cosmos.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/cosmos/txs/{txHash}',\n gasPriceStep: {\n low: 0.01,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'TERRA_CLASSIC',\n defaultDecimals: 6,\n addressPatterns: ['^(terra1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'LUNC',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'UST',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'EUT',\n address: null,\n },\n {\n blockchain: 'TERRA_CLASSIC',\n symbol: 'KRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/terraclassic.svg',\n displayName: 'Terra',\n shortName: 'Terra',\n sort: 8,\n color: '#5493F7',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'columbus-5',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-columbus.keplr.app',\n rest: 'https://lcd-columbus.keplr.app',\n cosmostationLcdUrl: null,\n cosmostationApiUrl: 'https://terra-classic-lcd.publicnode.com',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: null,\n chainName: 'Terra',\n stakeCurrency: {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n bip44: {\n coinType: 330,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'terra',\n bech32PrefixAccPub: 'terrapub',\n bech32PrefixValAddr: 'terravaloper',\n bech32PrefixValPub: 'terravaloperpub',\n bech32PrefixConsAddr: 'terravalcons',\n bech32PrefixConsPub: 'terravalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n {\n coinDenom: 'UST',\n coinMinimalDenom: 'uusd',\n coinDecimals: 6,\n coinGeckoId: 'terrausd',\n coinImageUrl: '/tokens/blockchain/UST.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUNC',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna',\n coinImageUrl: '/tokens/blockchain/LUNA.png',\n },\n {\n coinDenom: 'UST',\n coinMinimalDenom: 'uusd',\n coinDecimals: 6,\n coinGeckoId: 'terrausd',\n coinImageUrl: '/tokens/blockchain/UST.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://finder.terra.money/columbus-5/tx/{txHash}',\n gasPriceStep: {\n low: 0.0075,\n average: 0.0075,\n high: 0.0075,\n },\n },\n },\n {\n name: 'FANTOM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'FANTOM',\n symbol: 'FTM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/fantom.png',\n displayName: 'Fantom',\n shortName: 'Fantom',\n sort: 9,\n color: '#337afe',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xfa',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Fantom Opera',\n nativeCurrency: {\n name: 'FTM',\n symbol: 'FTM',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ftm.tools'],\n blockExplorerUrls: ['https://ftmscan.com'],\n addressUrl: 'https://ftmscan.com/address/{wallet}',\n transactionUrl: 'https://ftmscan.com/tx/{txHash}',\n },\n },\n {\n name: 'OPTIMISM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'OPTIMISM',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/optimism.svg',\n displayName: 'Optimism',\n shortName: 'Optimism',\n sort: 10,\n color: '#FF0420',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Optimism',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.optimism.io'],\n blockExplorerUrls: ['https://optimistic.etherscan.io'],\n addressUrl: 'https://optimistic.etherscan.io/address/{wallet}',\n transactionUrl: 'https://optimistic.etherscan.io/tx/{txHash}',\n },\n },\n {\n name: 'OKC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'OKC',\n symbol: 'OKT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/okx.png',\n displayName: 'OKX Chain (OKC)',\n shortName: 'Okx',\n sort: 11,\n color: '#29a0f0',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x42',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'OKX Chain',\n nativeCurrency: {\n name: 'OKT',\n symbol: 'OKT',\n decimals: 18,\n },\n rpcUrls: ['https://exchainrpc.okex.org'],\n blockExplorerUrls: ['https://www.oklink.com/en/okc'],\n addressUrl: 'https://www.oklink.com/en/okc/address/{wallet}',\n transactionUrl: 'https://www.oklink.com/en/okc/tx/{txHash}',\n },\n },\n {\n name: 'STARKNET',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{32,64}$'],\n feeAssets: [\n {\n blockchain: 'STARKNET',\n symbol: 'ETH',\n address:\n '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7',\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/starknet.svg',\n displayName: 'StarkNet',\n shortName: 'StarkNet',\n sort: 11,\n color: '#708DD2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'STARKNET',\n chainId: '0x534e5f4d41494e',\n info: {\n infoType: 'StarkNetMetaInfo',\n chainName: 'StarkNet Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n blockExplorerUrls: ['https://starkscan.co'],\n addressUrl: 'https://starkscan.co/contract/{wallet}',\n transactionUrl: 'https://starkscan.co/tx/{txHash}',\n },\n },\n {\n name: 'SOLANA',\n defaultDecimals: 9,\n addressPatterns: ['^[1-9A-HJ-NP-Za-km-z]{32,44}$'],\n feeAssets: [\n {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/solana.svg',\n displayName: 'Solana',\n shortName: 'Solana',\n sort: 11,\n color: '#708DD2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'SOLANA',\n chainId: 'mainnet-beta',\n info: null,\n },\n {\n name: 'CRONOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'CRONOS',\n symbol: 'CRO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/cronos.svg',\n displayName: 'Cronos',\n shortName: 'Cronos',\n sort: 12,\n color: '#1a90ff',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x19',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Cronos Mainnet Beta',\n nativeCurrency: {\n name: 'CRO',\n symbol: 'CRO',\n decimals: 18,\n },\n rpcUrls: ['https://evm.cronos.org'],\n blockExplorerUrls: ['https://cronoscan.com'],\n addressUrl: 'https://cronoscan.com/address/{wallet}',\n transactionUrl: 'https://cronoscan.com/tx/{txHash}',\n },\n },\n {\n name: 'MOONRIVER',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'MOONRIVER',\n symbol: 'MOVR',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/moonriver.svg',\n displayName: 'MoonRiver',\n shortName: 'MoonRiver',\n sort: 13,\n color: '#F3B404',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x505',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'MoonRiver',\n nativeCurrency: {\n name: 'MOVR',\n symbol: 'MOVR',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.moonriver.moonbeam.network'],\n blockExplorerUrls: ['https://moonriver.moonscan.io'],\n addressUrl: 'https://moonriver.moonscan.io/address/{wallet}',\n transactionUrl: 'https://moonriver.moonscan.io/tx/{txHash}',\n },\n },\n {\n name: 'ZKSYNC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'ZKSYNC',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/zksync.png',\n displayName: 'zkSync era',\n shortName: 'zkSync',\n sort: 13,\n color: '#2D2925',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x144',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'zkSync',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.era.zksync.io'],\n blockExplorerUrls: ['https://explorer.zksync.io'],\n addressUrl: 'https://explorer.zksync.io/address/{wallet}',\n transactionUrl: 'https://explorer.zksync.io/tx/{txHash}',\n },\n },\n {\n name: 'MOONBEAM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'MOONBEAM',\n symbol: 'GLMR',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/moonbeam.png',\n displayName: 'MoonBeam',\n shortName: 'MoonBeam',\n sort: 14,\n color: '#B3206B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x504',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'MoonBeam',\n nativeCurrency: {\n name: 'GLMR',\n symbol: 'GLMR',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.api.moonbeam.network'],\n blockExplorerUrls: ['https://moonbeam.moonscan.io'],\n addressUrl: 'https://moonbeam.moonscan.io/address/{wallet}',\n transactionUrl: 'https://moonbeam.moonscan.io/tx/{txHash}',\n },\n },\n {\n name: 'POLKADOT',\n defaultDecimals: 10,\n addressPatterns: ['^(1)[0-9a-z-A-Z]{44,50}$'],\n feeAssets: [],\n logo: 'https://api.rango.exchange/blockchains/polkadot.svg',\n displayName: 'Polkadot',\n shortName: 'Polkadot',\n sort: 14,\n color: '#E6007A',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'AURORA',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'AURORA',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/aurora.svg',\n displayName: 'Aurora',\n shortName: 'Aurora',\n sort: 15,\n color: '#78d64b',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x4e454152',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Aurora Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.aurora.dev'],\n blockExplorerUrls: ['https://explorer.mainnet.aurora.dev'],\n addressUrl: 'https://explorer.mainnet.aurora.dev/address/{wallet}',\n transactionUrl: 'https://explorer.mainnet.aurora.dev/tx/{txHash}',\n },\n },\n {\n name: 'DOGE',\n defaultDecimals: 8,\n addressPatterns: ['^(D|A|9)[a-km-zA-HJ-NP-Z1-9]{33,34}$'],\n feeAssets: [\n {\n blockchain: 'DOGE',\n symbol: 'DOGE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/doge.svg',\n displayName: 'Doge',\n shortName: 'Doge',\n sort: 15,\n color: '#BA9F33',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'HARMONY',\n defaultDecimals: 18,\n addressPatterns: ['^(one1)[0-9a-z]{38}$', '^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'HARMONY',\n symbol: 'ONE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/harmony.svg',\n displayName: 'Harmony',\n shortName: 'Harmony',\n sort: 15,\n color: '#50AEE9',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x63564c40',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Harmony Mainnet',\n nativeCurrency: {\n name: 'ONE',\n symbol: 'ONE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.ankr.com/harmony'],\n blockExplorerUrls: ['https://explorer.harmony.one'],\n addressUrl: 'https://explorer.harmony.one/address/{wallet}',\n transactionUrl: 'https://explorer.harmony.one/tx/{txHash}',\n },\n },\n {\n name: 'EVMOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'EVMOS',\n symbol: 'EVMOS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/evmos.png',\n displayName: 'Evmos',\n shortName: 'Evmos',\n sort: 15,\n color: '#2D2925',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x2329',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Evmos',\n nativeCurrency: {\n name: 'EVMOS',\n symbol: 'EVMOS',\n decimals: 18,\n },\n rpcUrls: ['https://eth.bd.evmos.org:8545'],\n blockExplorerUrls: ['https://evm.evmos.org'],\n addressUrl: 'https://evm.evmos.org/address/{wallet}',\n transactionUrl: 'https://evm.evmos.org/tx/{txHash}',\n },\n },\n {\n name: 'POLYGONZK',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'POLYGONZK',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/zkevmpolygon.png',\n displayName: 'polygon zkEVM',\n shortName: 'polygon zkEVM',\n sort: 15,\n color: '#8247e5',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x44d',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Polygon zkEVM Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://zkevm-rpc.com'],\n blockExplorerUrls: ['https://zkevm.polygonscan.com'],\n addressUrl: 'https://zkevm.polygonscan.com/address/{wallet}',\n transactionUrl: 'https://zkevm.polygonscan.com/tx/{txHash}',\n },\n },\n {\n name: 'HECO',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'HECO',\n symbol: 'HT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/heco.png',\n displayName: 'Heco',\n shortName: 'Heco',\n sort: 15,\n color: '#4CA852',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x80',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Huobi ECO Chain Mainnet',\n nativeCurrency: {\n name: 'HT',\n symbol: 'HT',\n decimals: 18,\n },\n rpcUrls: ['https://http-mainnet.hecochain.com'],\n blockExplorerUrls: ['https://hecoinfo.com'],\n addressUrl: 'https://hecoinfo.com/address/{wallet}',\n transactionUrl: 'https://hecoinfo.com/tx/{txHash}',\n },\n },\n {\n name: 'TRON',\n defaultDecimals: 18,\n addressPatterns: ['^T[1-9A-HJ-NP-Za-km-z]{33}$'],\n feeAssets: [\n {\n blockchain: 'TRON',\n symbol: 'TRX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/tron.svg',\n displayName: 'Tron',\n shortName: 'Tron',\n sort: 16,\n color: '#FF060A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRON',\n chainId: '0x2b6653dc',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'TRON Mainnet',\n nativeCurrency: {\n name: 'TRX',\n symbol: 'TRX',\n decimals: 6,\n },\n rpcUrls: ['https://api.trongrid.io/jsonrpc'],\n blockExplorerUrls: ['https://tronscan.org/#'],\n addressUrl: 'https://tronscan.org/#/address/{wallet}',\n transactionUrl: 'https://tronscan.org/#/tx/{txHash}',\n },\n },\n {\n name: 'SIF',\n defaultDecimals: 18,\n addressPatterns: ['^(sif1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SIF',\n symbol: 'ROWAN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/sif.png',\n displayName: 'Sifchain',\n shortName: 'Sifchain',\n sort: 16,\n color: '#CAAA3A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'sifchain-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc.sifchain.finance',\n rest: 'https://api-sifchain-ia.cosmosia.notional.ventures/',\n cosmostationLcdUrl: 'https://lcd-sifchain.cosmostation.io',\n cosmostationApiUrl: 'https://api.mintscan.io/v1/sifchain',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'sifchain',\n chainName: 'Sifchain',\n stakeCurrency: {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'sif',\n bech32PrefixAccPub: 'sifpub',\n bech32PrefixValAddr: 'sifvaloper',\n bech32PrefixValPub: 'sifvaloperpub',\n bech32PrefixConsAddr: 'sifvalcons',\n bech32PrefixConsPub: 'sifvalconspub',\n },\n currencies: [\n {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'ROWAN',\n coinMinimalDenom: 'rowan',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/sifchain/txs/{txHash}',\n gasPriceStep: {\n low: 1000000000000,\n average: 1500000000000,\n high: 2000000000000,\n },\n },\n },\n {\n name: 'MAYA',\n defaultDecimals: 8,\n addressPatterns: ['^(maya1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MAYA',\n symbol: 'CACAO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/maya.jpg',\n displayName: 'MayaChain',\n shortName: 'MayaChain',\n sort: 17,\n color: '#1ae6e6',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'THOR',\n defaultDecimals: 8,\n addressPatterns: ['^(thor1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'THOR',\n symbol: 'RUNE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/thorchain.svg',\n displayName: 'Thorchain',\n shortName: 'Thorchain',\n sort: 17,\n color: '#1AE6CB',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'BRISE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BRISE',\n symbol: 'BRISE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitgert.png',\n displayName: 'Brise',\n shortName: 'Brise',\n sort: 18,\n color: '#0693E3',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x7f08',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Brise',\n nativeCurrency: {\n name: 'BRISE',\n symbol: 'BRISE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.icecreamswap.com'],\n blockExplorerUrls: ['https://brisescan.com/'],\n addressUrl: 'https://brisescan.com//address/{wallet}',\n transactionUrl: 'https://brisescan.com//tx/{txHash}',\n },\n },\n {\n name: 'BNB',\n defaultDecimals: 8,\n addressPatterns: ['^(bnb1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BNB',\n symbol: 'BNB',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bnb.svg',\n displayName: 'Binance Chain',\n shortName: 'BNB',\n sort: 18,\n color: '#F3BA2F',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: null,\n info: null,\n },\n {\n name: 'STARGAZE',\n defaultDecimals: 6,\n addressPatterns: ['^(stars1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STARGAZE',\n symbol: 'STARS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/stargaze.png',\n displayName: 'Stargaze',\n shortName: 'Stargaze',\n sort: 19,\n color: '#231B60',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'stargaze-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc.stargaze-apis.com',\n rest: 'https://rest.stargaze-apis.com',\n cosmostationLcdUrl: 'https://lcd-stargaze.cosmostation.io',\n cosmostationApiUrl: 'https://api-stargaze.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'stargaze',\n chainName: 'Stargaze',\n stakeCurrency: {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'stars',\n bech32PrefixAccPub: 'starspub',\n bech32PrefixValAddr: 'starsvaloper',\n bech32PrefixValPub: 'starsvaloperpub',\n bech32PrefixConsAddr: 'starsvalcons',\n bech32PrefixConsPub: 'starsvalconspub',\n },\n currencies: [\n {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'STARS',\n coinMinimalDenom: 'ustars',\n coinDecimals: 6,\n coinGeckoId: 'pool:ustars',\n coinImageUrl: '/tokens/blockchain/STARS.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/stargaze/txs/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 1,\n high: 1,\n },\n },\n },\n {\n name: 'BTC',\n defaultDecimals: 8,\n addressPatterns: [\n '^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bc1)[0-9A-Za-z]{39,59}$',\n ],\n feeAssets: [\n {\n blockchain: 'BTC',\n symbol: 'BTC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/btc.svg',\n displayName: 'Bitcoin',\n shortName: 'BTC',\n sort: 20,\n color: '#F7931A',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'CRYPTO_ORG',\n defaultDecimals: 8,\n addressPatterns: ['^(cro1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'CRYPTO_ORG',\n symbol: 'CRO',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/crypto_org.png',\n displayName: 'Crypto.org',\n shortName: 'Crypto.org',\n sort: 21,\n color: '#103F68',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'crypto-org-chain-mainnet-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-crypto-org.keplr.app',\n rest: 'https://lcd-crypto-org.keplr.app',\n cosmostationLcdUrl: 'https://lcd-cryptocom.cosmostation.io',\n cosmostationApiUrl: 'https://api-cryptocom.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'crypto-org',\n chainName: 'Crypto.org',\n stakeCurrency: {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n bip44: {\n coinType: 394,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'cro',\n bech32PrefixAccPub: 'cropub',\n bech32PrefixValAddr: 'crovaloper',\n bech32PrefixValPub: 'crovaloperpub',\n bech32PrefixConsAddr: 'crovalcons',\n bech32PrefixConsPub: 'crovalconspub',\n },\n currencies: [\n {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'CRO',\n coinMinimalDenom: 'basecro',\n coinDecimals: 8,\n coinGeckoId: 'crypto-com-chain',\n coinImageUrl: '/tokens/blockchain/cro.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/crypto-org/txs/{txHash}',\n gasPriceStep: {\n low: 0.025,\n average: 0.03,\n high: 0.04,\n },\n },\n },\n {\n name: 'CHIHUAHUA',\n defaultDecimals: 6,\n addressPatterns: ['^(chihuahua1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'CHIHUAHUA',\n symbol: 'HUAHUA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/chihuahua.png',\n displayName: 'Chihuahua',\n shortName: 'Chihuahua',\n sort: 22,\n color: '#EFC92B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'chihuahua-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.chihuahua.wtf/',\n rest: 'https://api.chihuahua.wtf/',\n cosmostationLcdUrl: 'https://lcd-chihuahua.cosmostation.io',\n cosmostationApiUrl: 'https://api-chihuahua.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'chihuahua',\n chainName: 'Chihuahua',\n stakeCurrency: {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'chihuahua',\n bech32PrefixAccPub: 'chihuahuapub',\n bech32PrefixValAddr: 'chihuahuavaloper',\n bech32PrefixValPub: 'chihuahuavaloperpub',\n bech32PrefixConsAddr: 'chihuahuavalcons',\n bech32PrefixConsPub: 'chihuahuavalconspub',\n },\n currencies: [\n {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'HUAHUA',\n coinMinimalDenom: 'uhuahua',\n coinDecimals: 6,\n coinGeckoId: 'pool:uhuahua',\n coinImageUrl: '/tokens/blockchain/HUAHUA.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://ping.pub/chihuahua/tx/{txHash}',\n gasPriceStep: {\n low: 0.025,\n average: 0.03,\n high: 0.035,\n },\n },\n },\n {\n name: 'BANDCHAIN',\n defaultDecimals: 6,\n addressPatterns: ['^(band1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BANDCHAIN',\n symbol: 'BAND',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bandchain.svg',\n displayName: 'BandChain',\n shortName: 'BandChain',\n sort: 23,\n color: '#4520E6',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'laozi-mainnet',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.laozi3.bandchain.org/',\n rest: 'https://lcd-band.cosmostation.io',\n cosmostationLcdUrl: 'https://lcd-band.cosmostation.io',\n cosmostationApiUrl: 'https://api-band.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'band',\n chainName: 'BandChain',\n stakeCurrency: {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n bip44: {\n coinType: 494,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'band',\n bech32PrefixAccPub: 'bandpub',\n bech32PrefixValAddr: 'bandvaloper',\n bech32PrefixValPub: 'bandvaloperpub',\n bech32PrefixConsAddr: 'bandvalcons',\n bech32PrefixConsPub: 'bandvalconspub',\n },\n currencies: [\n {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BAND',\n coinMinimalDenom: 'uband',\n coinDecimals: 6,\n coinGeckoId: 'band-protocol',\n coinImageUrl: '/tokens/blockchain/BAND.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://cosmoscan.io/tx/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'COMDEX',\n defaultDecimals: 6,\n addressPatterns: ['^(comdex1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'COMDEX',\n symbol: 'CMDX',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/comdex.svg',\n displayName: 'Comdex',\n shortName: 'Comdex',\n sort: 23,\n color: '#FE4350',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'comdex-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.comdex.one',\n rest: 'https://rest.comdex.one',\n cosmostationLcdUrl: 'https://lcd-comdex.cosmostation.io',\n cosmostationApiUrl: 'https://api-comdex.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'comdex',\n chainName: 'Comdex',\n stakeCurrency: {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'comdex',\n bech32PrefixAccPub: 'comdexpub',\n bech32PrefixValAddr: 'comdexvaloper',\n bech32PrefixValPub: 'comdexvaloperpub',\n bech32PrefixConsAddr: 'comdexvalcons',\n bech32PrefixConsPub: 'comdexvalconspub',\n },\n currencies: [\n {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'CMDX',\n coinMinimalDenom: 'ucmdx',\n coinDecimals: 6,\n coinGeckoId: 'comdex',\n coinImageUrl: '/tokens/blockchain/CMDX.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/comdex/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'REGEN',\n defaultDecimals: 6,\n addressPatterns: ['^(regen1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'REGEN',\n symbol: 'REGEN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/regen.png',\n displayName: 'Regen Network',\n shortName: 'Regen Network',\n sort: 24,\n color: '#4FB573',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'regen-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-regen.keplr.app',\n rest: 'https://lcd-regen.keplr.app',\n cosmostationLcdUrl: 'https://lcd-regen.keplr.app',\n cosmostationApiUrl: 'https://api-regen.cosmostation.io/',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'regen',\n chainName: 'Regen Network',\n stakeCurrency: {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'regen',\n bech32PrefixAccPub: 'regenpub',\n bech32PrefixValAddr: 'regenvaloper',\n bech32PrefixValPub: 'regenvaloperpub',\n bech32PrefixConsAddr: 'regenvalcons',\n bech32PrefixConsPub: 'regenvalconspub',\n },\n currencies: [\n {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'REGEN',\n coinMinimalDenom: 'uregen',\n coinDecimals: 6,\n coinGeckoId: 'pool:uregen',\n coinImageUrl: '/tokens/blockchain/regen.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://regen.aneka.io/txs/{txHash}',\n gasPriceStep: {\n low: 0.015,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'IRIS',\n defaultDecimals: 6,\n addressPatterns: ['^(iaa1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'IRIS',\n symbol: 'IRIS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/iris.png',\n displayName: 'IRISnet',\n shortName: 'IRISnet',\n sort: 25,\n color: '#8A4A8E',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'irishub-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-iris.keplr.app',\n rest: 'https://lcd-iris.keplr.app',\n cosmostationLcdUrl: 'https://lcd-iris.cosmostation.io',\n cosmostationApiUrl: 'https://api-iris.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'iris',\n chainName: 'IRISnet',\n stakeCurrency: {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'iaa',\n bech32PrefixAccPub: 'iaapub',\n bech32PrefixValAddr: 'iaavaloper',\n bech32PrefixValPub: 'iaavaloperpub',\n bech32PrefixConsAddr: 'iaavalcons',\n bech32PrefixConsPub: 'iaavalconspub',\n },\n currencies: [\n {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'IRIS',\n coinMinimalDenom: 'uiris',\n coinDecimals: 6,\n coinGeckoId: 'iris-network',\n coinImageUrl: '/tokens/blockchain/iris.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/iris/txs/{txHash}',\n gasPriceStep: {\n low: 0.2,\n average: 0.3,\n high: 0.4,\n },\n },\n },\n {\n name: 'EMONEY',\n defaultDecimals: 6,\n addressPatterns: ['^(emoney1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'EMONEY',\n symbol: 'NGM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/emoney.svg',\n displayName: 'e-Money',\n shortName: 'e-Money',\n sort: 25,\n color: '#DFF5EF',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'emoney-3',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-emoney.keplr.app',\n rest: 'https://lcd-emoney.keplr.app',\n cosmostationLcdUrl: 'https://lcd-emoney.cosmostation.io',\n cosmostationApiUrl: 'https://api-emoney.cosmostation.io',\n cosmostationDenomTracePath:\n '/ibc/applications/transfer/v1beta1/denom_traces/',\n mintScanName: 'emoney',\n chainName: 'e-Money',\n stakeCurrency: {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'emoney',\n bech32PrefixAccPub: 'emoneypub',\n bech32PrefixValAddr: 'emoneyvaloper',\n bech32PrefixValPub: 'emoneyvaloperpub',\n bech32PrefixConsAddr: 'emoneyvalcons',\n bech32PrefixConsPub: 'emoneyvalconspub',\n },\n currencies: [\n {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n {\n coinDenom: 'EEUR',\n coinMinimalDenom: 'eeur',\n coinDecimals: 6,\n coinGeckoId: 'e-money-eur',\n coinImageUrl: '/tokens/blockchain/EEUR.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'NGM',\n coinMinimalDenom: 'ungm',\n coinDecimals: 6,\n coinGeckoId: 'e-money',\n coinImageUrl: '/tokens/blockchain/NGM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://emoney.bigdipper.live/transactions/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 1,\n high: 1,\n },\n },\n },\n {\n name: 'GNOSIS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'GNOSIS',\n symbol: 'XDAI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/gnosis.svg',\n displayName: 'Gnosis',\n shortName: 'Gnosis',\n sort: 26,\n color: '#3E6957',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x64',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Gnosis Chain',\n nativeCurrency: {\n name: 'XDAI',\n symbol: 'XDAI',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.gnosischain.com'],\n blockExplorerUrls: ['https://blockscout.com/xdai/mainnet'],\n addressUrl: 'https://blockscout.com/xdai/mainnet/address/{wallet}',\n transactionUrl: 'https://blockscout.com/xdai/mainnet/tx/{txHash}',\n },\n },\n {\n name: 'LTC',\n defaultDecimals: 8,\n addressPatterns: ['^(L|M|3)[A-Za-z0-9]{33}$|^(ltc1)[0-9A-Za-z]{39}$'],\n feeAssets: [\n {\n blockchain: 'LTC',\n symbol: 'LTC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ltc.svg',\n displayName: 'LiteCoin',\n shortName: 'LTC',\n sort: 27,\n color: '#345D9D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'BCH',\n defaultDecimals: 8,\n addressPatterns: ['^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^[0-9A-Za-z]{42,42}$'],\n feeAssets: [\n {\n blockchain: 'BCH',\n symbol: 'BCH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bch.svg',\n displayName: 'Bitcoin Cash',\n shortName: 'BCH',\n sort: 28,\n color: '#0AC18E',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'TRANSFER',\n chainId: null,\n info: null,\n },\n {\n name: 'FUSE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'FUSE',\n symbol: 'FUSE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/fuse.png',\n displayName: 'Fuse',\n shortName: 'Fuse',\n sort: 29,\n color: '#C5F9AD',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x7a',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Fuse Mainnet',\n nativeCurrency: {\n name: 'FUSE',\n symbol: 'FUSE',\n decimals: 18,\n },\n rpcUrls: ['https://rpc.fuse.io'],\n blockExplorerUrls: ['https://explorer.fuse.io'],\n addressUrl: 'https://explorer.fuse.io/address/{wallet}',\n transactionUrl: 'https://explorer.fuse.io/tx/{txHash}',\n },\n },\n {\n name: 'BITSONG',\n defaultDecimals: 6,\n addressPatterns: ['^(bitsong1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BITSONG',\n symbol: 'BTSG',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitsong.svg',\n displayName: 'BitSong',\n shortName: 'BitSong',\n sort: 29,\n color: '#FF005C',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'bitsong-2b',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.explorebitsong.com',\n rest: 'https://lcd.explorebitsong.com',\n cosmostationLcdUrl: 'https://lcd-bitsong.cosmostation.io',\n cosmostationApiUrl: 'https://api-bitsong.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'bitsong',\n chainName: 'BitSong',\n stakeCurrency: {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n bip44: {\n coinType: 639,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'bitsong',\n bech32PrefixAccPub: 'bitsongpub',\n bech32PrefixValAddr: 'bitsongvaloper',\n bech32PrefixValPub: 'bitsongvaloperpub',\n bech32PrefixConsAddr: 'bitsongvalcons',\n bech32PrefixConsPub: 'bitsongvalconspub',\n },\n currencies: [\n {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BTSG',\n coinMinimalDenom: 'ubtsg',\n coinDecimals: 6,\n coinGeckoId: 'pool:ubtsg',\n coinImageUrl: '/tokens/blockchain/BTSG.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://explorebitsong.com/transactions/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'AKASH',\n defaultDecimals: 6,\n addressPatterns: ['^(akash1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'AKASH',\n symbol: 'AKT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/akash.svg',\n displayName: 'Akash',\n shortName: 'Akash',\n sort: 30,\n color: '#ED3524',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'akashnet-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-akash.keplr.app',\n rest: 'https://lcd-akash.keplr.app',\n cosmostationLcdUrl: 'https://lcd-akash.cosmostation.io',\n cosmostationApiUrl: 'https://api-akash.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'akash',\n chainName: 'Akash',\n stakeCurrency: {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'akash',\n bech32PrefixAccPub: 'akashpub',\n bech32PrefixValAddr: 'akashvaloper',\n bech32PrefixValPub: 'akashvaloperpub',\n bech32PrefixConsAddr: 'akashvalcons',\n bech32PrefixConsPub: 'akashvalconspub',\n },\n currencies: [\n {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'AKT',\n coinMinimalDenom: 'uakt',\n coinDecimals: 6,\n coinGeckoId: 'akash-network',\n coinImageUrl: '/tokens/blockchain/akt.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/akash/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.004,\n },\n },\n },\n {\n name: 'KI',\n defaultDecimals: 6,\n addressPatterns: ['^(ki1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KI',\n symbol: 'XKI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/ki.png',\n displayName: 'Ki',\n shortName: 'Ki',\n sort: 30,\n color: '#0F2B3D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'kichain-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc-mainnet.blockchain.ki',\n rest: 'https://api-mainnet.blockchain.ki',\n cosmostationLcdUrl: 'https://lcd-kichain.cosmostation.io',\n cosmostationApiUrl: 'https://api-kichain.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'ki-chain',\n chainName: 'Ki',\n stakeCurrency: {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'ki',\n bech32PrefixAccPub: 'kipub',\n bech32PrefixValAddr: 'kivaloper',\n bech32PrefixValPub: 'kivaloperpub',\n bech32PrefixConsAddr: 'kivalcons',\n bech32PrefixConsPub: 'kivalconspub',\n },\n currencies: [\n {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'XKI',\n coinMinimalDenom: 'uxki',\n coinDecimals: 6,\n coinGeckoId: 'pool:uxki',\n coinImageUrl: '/tokens/blockchain/XKI.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/ki-chain/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'PERSISTENCE',\n defaultDecimals: 6,\n addressPatterns: ['^(persistence1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'PERSISTENCE',\n symbol: 'XPRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/persistence.png',\n displayName: 'Persistence',\n shortName: 'Persistence',\n sort: 31,\n color: '#383838',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'core-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-persistence.keplr.app',\n rest: 'https://lcd-persistence.keplr.app',\n cosmostationLcdUrl: 'https://lcd-persistence.cosmostation.io',\n cosmostationApiUrl: 'https://api-persistence.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'persistence',\n chainName: 'Persistence',\n stakeCurrency: {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n bip44: {\n coinType: 750,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'persistence',\n bech32PrefixAccPub: 'persistencepub',\n bech32PrefixValAddr: 'persistencevaloper',\n bech32PrefixValPub: 'persistencevaloperpub',\n bech32PrefixConsAddr: 'persistencevalcons',\n bech32PrefixConsPub: 'persistencevalconspub',\n },\n currencies: [\n {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'XPRT',\n coinMinimalDenom: 'uxprt',\n coinDecimals: 6,\n coinGeckoId: 'persistence',\n coinImageUrl: '/tokens/blockchain/xprt.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/persistence/txs/{txHash}',\n gasPriceStep: {\n low: 0,\n average: 0.025,\n high: 0.04,\n },\n },\n },\n {\n name: 'MEDIBLOC',\n defaultDecimals: 6,\n addressPatterns: ['^(panacea1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MEDIBLOC',\n symbol: 'MED',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/medibloc.png',\n displayName: 'MediBloc',\n shortName: 'MediBloc',\n sort: 31,\n color: '#4B66DC',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'panacea-3',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.gopanacea.org',\n rest: 'https://api.gopanacea.org',\n cosmostationLcdUrl: 'https://lcd-medibloc.cosmostation.io',\n cosmostationApiUrl: 'https://api-medibloc.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'medibloc',\n chainName: 'MediBloc',\n stakeCurrency: {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'panacea',\n bech32PrefixAccPub: 'panaceapub',\n bech32PrefixValAddr: 'panaceavaloper',\n bech32PrefixValPub: 'panaceavaloperpub',\n bech32PrefixConsAddr: 'panaceavalcons',\n bech32PrefixConsPub: 'panaceavalconspub',\n },\n currencies: [\n {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'MED',\n coinMinimalDenom: 'umed',\n coinDecimals: 6,\n coinGeckoId: 'medibloc',\n coinImageUrl: '/tokens/blockchain/MED.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/medibloc/txs/{txHash}',\n gasPriceStep: {\n low: 5,\n average: 7,\n high: 9,\n },\n },\n },\n {\n name: 'KUJIRA',\n defaultDecimals: 6,\n addressPatterns: ['^(kujira1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KUJIRA',\n symbol: 'KUJI',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/kuji.svg',\n displayName: 'Kujira',\n shortName: 'Kujira',\n sort: 31,\n color: '#DF3935',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'kaiyo-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://kujira-rpc.lavenderfive.com',\n rest: 'https://kujira-api.lavenderfive.com',\n cosmostationLcdUrl: 'https://lcd-kujira.cosmostation.io',\n cosmostationApiUrl: 'https://api-kujira.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'kujira',\n chainName: 'Kujira',\n stakeCurrency: {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'kujira',\n bech32PrefixAccPub: 'kujirapub',\n bech32PrefixValAddr: 'kujiravaloper',\n bech32PrefixValPub: 'kujiravaloperpub',\n bech32PrefixConsAddr: 'kujiravalcons',\n bech32PrefixConsPub: 'kujiravalconspub',\n },\n currencies: [\n {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'KUJI',\n coinMinimalDenom: 'ukuji',\n coinDecimals: 6,\n coinGeckoId: 'kujira',\n coinImageUrl: '/tokens/blockchain/kuji.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://finder.kujira.app/kaiyo-1/tx/{txHash}',\n gasPriceStep: {\n low: 0.01,\n average: 0.025,\n high: 0.03,\n },\n },\n },\n {\n name: 'SENTINEL',\n defaultDecimals: 6,\n addressPatterns: ['^(sent1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SENTINEL',\n symbol: 'DVPN',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/sentinel.png',\n displayName: 'Sentinel',\n shortName: 'Sentinel',\n sort: 32,\n color: '#142E51',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'sentinelhub-2',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-sentinel.keplr.app',\n rest: 'https://lcd-sentinel.keplr.app',\n cosmostationLcdUrl: 'https://lcd-sentinel.cosmostation.io',\n cosmostationApiUrl: 'https://api-sentinel.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'sentinel',\n chainName: 'Sentinel',\n stakeCurrency: {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'sent',\n bech32PrefixAccPub: 'sentpub',\n bech32PrefixValAddr: 'sentvaloper',\n bech32PrefixValPub: 'sentvaloperpub',\n bech32PrefixConsAddr: 'sentvalcons',\n bech32PrefixConsPub: 'sentvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DVPN',\n coinMinimalDenom: 'udvpn',\n coinDecimals: 6,\n coinGeckoId: 'sentinel',\n coinImageUrl: '/tokens/blockchain/dvpn.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/sentinel/txs/{txHash}',\n gasPriceStep: {\n low: 0.1,\n average: 0.25,\n high: 0.4,\n },\n },\n },\n {\n name: 'INJECTIVE',\n defaultDecimals: 6,\n addressPatterns: ['^(inj1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'INJECTIVE',\n symbol: 'INJ',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/injective.svg',\n displayName: 'Injective',\n shortName: 'Injective',\n sort: 33,\n color: '#29B2F4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'injective-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://tm.injective.network',\n rest: 'https://lcd.injective.network',\n cosmostationLcdUrl: 'https://lcd-inj.cosmostation.io',\n cosmostationApiUrl: 'https://api-inj.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'injective',\n chainName: 'Injective',\n stakeCurrency: {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n bip44: {\n coinType: 529,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'inj',\n bech32PrefixAccPub: 'injpub',\n bech32PrefixValAddr: 'injvaloper',\n bech32PrefixValPub: 'injvaloperpub',\n bech32PrefixConsAddr: 'injvalcons',\n bech32PrefixConsPub: 'injvalconspub',\n },\n currencies: [\n {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'INJ',\n coinMinimalDenom: 'uinj',\n coinDecimals: 18,\n coinGeckoId: 'injective',\n coinImageUrl: '/tokens/INJECTIVE/inj.svg',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/injective/txs/{txHash}',\n gasPriceStep: {\n low: 500000000,\n average: 500000000,\n high: 500000000,\n },\n },\n },\n {\n name: 'SECRET',\n defaultDecimals: 6,\n addressPatterns: ['^(secret1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'SECRET',\n symbol: 'SCRT',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/secret.svg',\n displayName: 'Secret',\n shortName: 'Secret',\n sort: 34,\n color: '#1B1B1B',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'secret-4',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-secret.keplr.app',\n rest: 'https://lcd-secret.keplr.app',\n cosmostationLcdUrl: 'https://lcd-secret.cosmostation.io',\n cosmostationApiUrl: 'https://api-secret.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'secret',\n chainName: 'Secret',\n stakeCurrency: {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n bip44: {\n coinType: 529,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'secret',\n bech32PrefixAccPub: 'secretpub',\n bech32PrefixValAddr: 'secretvaloper',\n bech32PrefixValPub: 'secretvaloperpub',\n bech32PrefixConsAddr: 'secretvalcons',\n bech32PrefixConsPub: 'secretvalconspub',\n },\n currencies: [\n {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'SCRT',\n coinMinimalDenom: 'uscrt',\n coinDecimals: 6,\n coinGeckoId: 'secret',\n coinImageUrl: 'https://dhj8dql1kzq2v.cloudfront.net/white/secret.png',\n },\n ],\n features: ['secretwasm'],\n explorerUrlToTx: 'https://www.mintscan.io/injective/txs/{txHash}',\n gasPriceStep: {\n low: 0.1,\n average: 0.25,\n high: 0.3,\n },\n },\n },\n {\n name: 'KONSTELLATION',\n defaultDecimals: 6,\n addressPatterns: ['^(darc1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'KONSTELLATION',\n symbol: 'DARC',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/konstellation.svg',\n displayName: 'Konstellation',\n shortName: 'Konstellation',\n sort: 35,\n color: '#3D7BC2',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'darchub',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://node1.konstellation.tech:26657',\n rest: 'https://node1.konstellation.tech:1318',\n cosmostationLcdUrl: 'https://api-konstellation.cosmostation.io',\n cosmostationApiUrl: 'https://api-konstellation.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'konstellation',\n chainName: 'Konstellation',\n stakeCurrency: {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'darc',\n bech32PrefixAccPub: 'darcpub',\n bech32PrefixValAddr: 'darcvaloper',\n bech32PrefixValPub: 'darcvaloperpub',\n bech32PrefixConsAddr: 'darcvalcons',\n bech32PrefixConsPub: 'darcvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DARC',\n coinMinimalDenom: 'udarc',\n coinDecimals: 6,\n coinGeckoId: 'pool:udarc',\n coinImageUrl: '/tokens/blockchain/DARC.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/konstellation/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'STARNAME',\n defaultDecimals: 6,\n addressPatterns: ['^(star1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STARNAME',\n symbol: 'IOV',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/starname.png',\n displayName: 'Starname',\n shortName: 'Starname',\n sort: 35,\n color: '#BC64BB',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'iov-mainnet-ibc',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-iov.keplr.app',\n rest: 'https://lcd-iov.keplr.app',\n cosmostationLcdUrl: 'https://lcd-iov.cosmostation.io',\n cosmostationApiUrl: 'https://api-iov.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'starname',\n chainName: 'Starname',\n stakeCurrency: {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n bip44: {\n coinType: 494,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'star',\n bech32PrefixAccPub: 'starpub',\n bech32PrefixValAddr: 'starvaloper',\n bech32PrefixValPub: 'starvaloperpub',\n bech32PrefixConsAddr: 'starvalcons',\n bech32PrefixConsPub: 'starvalconspub',\n },\n currencies: [\n {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'IOV',\n coinMinimalDenom: 'uiov',\n coinDecimals: 6,\n coinGeckoId: 'starname',\n coinImageUrl: '/tokens/blockchain/IOV.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/starname/txs/{txHash}',\n gasPriceStep: {\n low: 1,\n average: 2,\n high: 3,\n },\n },\n },\n {\n name: 'BITCANNA',\n defaultDecimals: 6,\n addressPatterns: ['^(bcna1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'BITCANNA',\n symbol: 'BCNA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/bitcanna.svg',\n displayName: 'BitCanna',\n shortName: 'BitCanna',\n sort: 36,\n color: '#3CC194',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'bitcanna-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.bitcanna.io',\n rest: 'https://lcd.bitcanna.io',\n cosmostationLcdUrl: 'https://lcd-bitcanna.cosmostation.io',\n cosmostationApiUrl: 'https://api-bitcanna.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'bitcanna',\n chainName: 'BitCanna',\n stakeCurrency: {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'bcna',\n bech32PrefixAccPub: 'bcnapub',\n bech32PrefixValAddr: 'bcnavaloper',\n bech32PrefixValPub: 'bcnavaloperpub',\n bech32PrefixConsAddr: 'bcnavalcons',\n bech32PrefixConsPub: 'bcnavalconspub',\n },\n currencies: [\n {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'BCNA',\n coinMinimalDenom: 'ubcna',\n coinDecimals: 6,\n coinGeckoId: 'bitcanna',\n coinImageUrl: '/tokens/blockchain/BCNA.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/bitcanna/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'UMEE',\n defaultDecimals: 6,\n addressPatterns: ['^(umee1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'UMEE',\n symbol: 'UMEE',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/umee.svg',\n displayName: 'Umee',\n shortName: 'Umee',\n sort: 36,\n color: '#D2B6FF',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'umee-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://api.barnacle.mainnet.network.umee.cc',\n rest: 'https://lcd-umee.cosmostation.io',\n cosmostationLcdUrl: 'https://lcd-umee.cosmostation.io',\n cosmostationApiUrl: 'https://api-umee.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'umee',\n chainName: 'Umee',\n stakeCurrency: {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'umee',\n bech32PrefixAccPub: 'umeepub',\n bech32PrefixValAddr: 'umeevaloper',\n bech32PrefixValPub: 'umeevaloperpub',\n bech32PrefixConsAddr: 'umeevalcons',\n bech32PrefixConsPub: 'umeevalconspub',\n },\n currencies: [\n {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'UMEE',\n coinMinimalDenom: 'uumee',\n coinDecimals: 6,\n coinGeckoId: 'pool:uumee',\n coinImageUrl: '/tokens/blockchain/UMEE.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx'],\n explorerUrlToTx: 'https://www.mintscan.io/umee/txs/{txHash}',\n gasPriceStep: {\n low: 0.05,\n average: 0.06,\n high: 0.1,\n },\n },\n },\n {\n name: 'DESMOS',\n defaultDecimals: 6,\n addressPatterns: ['^(desmos1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'DESMOS',\n symbol: 'DSM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/desmos.svg',\n displayName: 'Desmos',\n shortName: 'Desmos',\n sort: 37,\n color: '#DF6952',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'desmos-mainnet',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://rpc.mainnet.desmos.network',\n rest: 'https://api.mainnet.desmos.network',\n cosmostationLcdUrl: 'https://lcd-desmos.cosmostation.io',\n cosmostationApiUrl: 'https://api-desmos.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'desmos',\n chainName: 'Desmos',\n stakeCurrency: {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n bip44: {\n coinType: 852,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'desmos',\n bech32PrefixAccPub: 'desmospub',\n bech32PrefixValAddr: 'desmosvaloper',\n bech32PrefixValPub: 'desmosvaloperpub',\n bech32PrefixConsAddr: 'desmosvalcons',\n bech32PrefixConsPub: 'desmosvalconspub',\n },\n currencies: [\n {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'DSM',\n coinMinimalDenom: 'udsm',\n coinDecimals: 6,\n coinGeckoId: 'pool:udsm',\n coinImageUrl: '/tokens/blockchain/DSM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://explorer.desmos.network/transactions/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'LUMNETWORK',\n defaultDecimals: 6,\n addressPatterns: ['^(lum1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'LUMNETWORK',\n symbol: 'LUM',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/lumnetwork.png',\n displayName: 'Lum Network',\n shortName: 'Lum Network',\n sort: 38,\n color: '#1B42B4',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'lum-network-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: true,\n rpc: 'https://node0.mainnet.lum.network/rpc',\n rest: 'https://node0.mainnet.lum.network/rest',\n cosmostationLcdUrl: 'https://lcd-lum.cosmostation.io',\n cosmostationApiUrl: 'https://api-lum.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'lum',\n chainName: 'Lum Network',\n stakeCurrency: {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'lum',\n bech32PrefixAccPub: 'lumpub',\n bech32PrefixValAddr: 'lumvaloper',\n bech32PrefixValPub: 'lumvaloperpub',\n bech32PrefixConsAddr: 'lumvalcons',\n bech32PrefixConsPub: 'lumvalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUM',\n coinMinimalDenom: 'ulum',\n coinDecimals: 6,\n coinGeckoId: 'pool:ulum',\n coinImageUrl: '/tokens/blockchain/LUM.png',\n },\n ],\n features: ['stargate', 'ibc-transfer', 'no-legacy-stdTx', 'ibc-go'],\n explorerUrlToTx: 'https://www.mintscan.io/lum/txs/{txHash}',\n gasPriceStep: null,\n },\n },\n {\n name: 'BOBA',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA',\n symbol: 'ETH',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba',\n shortName: 'Boba',\n sort: 39,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x120',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Network',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.boba.network'],\n blockExplorerUrls: ['https://bobascan.com/'],\n addressUrl: 'https://bobascan.com//address/{wallet}',\n transactionUrl: 'https://bobascan.com//tx/{txHash}',\n },\n },\n {\n name: 'AXELAR',\n defaultDecimals: 6,\n addressPatterns: ['^(axelar1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'AXELAR',\n symbol: 'AXL',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/axelar.png',\n displayName: 'Axelar',\n shortName: 'Axelar',\n sort: 40,\n color: '#15181C',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'axelar-dojo-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar',\n rest: 'https://axelar-lcd.quickapi.com',\n cosmostationLcdUrl: 'https://axelar-lcd.quickapi.com',\n cosmostationApiUrl:\n 'https://mainnet-rpc-router.axelar-dev.workers.dev/chain/axelar',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'axelar',\n chainName: 'Axelar',\n stakeCurrency: {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'axl',\n bech32PrefixAccPub: 'axlpub',\n bech32PrefixValAddr: 'axlvaloper',\n bech32PrefixValPub: 'axlvaloperpub',\n bech32PrefixConsAddr: 'axlvalcons',\n bech32PrefixConsPub: 'axlvalconspub',\n },\n currencies: [\n {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'AXL',\n coinMinimalDenom: 'uaxl',\n coinDecimals: 6,\n coinGeckoId: 'axelar',\n coinImageUrl: '/tokens/blockchain/axl.png',\n },\n ],\n features: ['stargate', 'ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/axelar/txs/{txHash}',\n gasPriceStep: {\n low: 0.007,\n average: 0.007,\n high: 0.01,\n },\n },\n },\n {\n name: 'STRIDE',\n defaultDecimals: 6,\n addressPatterns: ['^(stride1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'STRIDE',\n symbol: 'STRD',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/stride.svg',\n displayName: 'Stride',\n shortName: 'Stride',\n sort: 41,\n color: '#D63178',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'stride-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-stride.keplr.app',\n rest: 'https://lcd-stride.keplr.app',\n cosmostationLcdUrl: 'https://lcd-stride.cosmostation.io',\n cosmostationApiUrl: 'https://api-stride.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'stride',\n chainName: 'Stride',\n stakeCurrency: {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'stride',\n bech32PrefixAccPub: 'stridepub',\n bech32PrefixValAddr: 'stridevaloper',\n bech32PrefixValPub: 'stridevaloperpub',\n bech32PrefixConsAddr: 'stridevalcons',\n bech32PrefixConsPub: 'stridevalconspub',\n },\n currencies: [\n {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stATOM',\n coinMinimalDenom: 'stuatom',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-atom',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stOSMO',\n coinMinimalDenom: 'stuosmo',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-osmo',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stJUNO',\n coinMinimalDenom: 'stujuno',\n coinDecimals: 6,\n coinGeckoId: 'stride-staked-juno',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stSTARS',\n coinMinimalDenom: 'stustars',\n coinDecimals: 6,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stEVMOS',\n coinMinimalDenom: 'staevmos',\n coinDecimals: 18,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n {\n coinDenom: 'stLUNA',\n coinMinimalDenom: 'stuluna',\n coinDecimals: 6,\n coinGeckoId: '',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'STRD',\n coinMinimalDenom: 'ustrd',\n coinDecimals: 6,\n coinGeckoId: 'stride',\n coinImageUrl: '',\n },\n ],\n features: ['ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/stride/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.04,\n },\n },\n },\n {\n name: 'KCC',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'KCC',\n symbol: 'KCS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/kcc.png',\n displayName: 'Kcc',\n shortName: 'Kcc',\n sort: 41,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x141',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Kcc Network',\n nativeCurrency: {\n name: 'KCS',\n symbol: 'KCS',\n decimals: 18,\n },\n rpcUrls: ['https://rpc-mainnet.kcc.network/'],\n blockExplorerUrls: ['https://explorer.kcc.io/en'],\n addressUrl: 'https://explorer.kcc.io/en/address/{wallet}',\n transactionUrl: 'https://explorer.kcc.io/en/tx/{txHash}',\n },\n },\n {\n name: 'MARS',\n defaultDecimals: 6,\n addressPatterns: ['^(mars1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'MARS',\n symbol: 'MARS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/mars.svg',\n displayName: 'Mars',\n shortName: 'Mars',\n sort: 42,\n color: '#CB4B3D',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'mars-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-mars.keplr.app',\n rest: 'https://lcd-mars.keplr.app',\n cosmostationLcdUrl: 'https://lcd-mars-protocol.cosmostation.io',\n cosmostationApiUrl: 'https://api-mars-protocol.cosmostation.io',\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: 'mars-protocol',\n chainName: 'Mars',\n stakeCurrency: {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'mars',\n bech32PrefixAccPub: 'marspub',\n bech32PrefixValAddr: 'marsvaloper',\n bech32PrefixValPub: 'marsvaloperpub',\n bech32PrefixConsAddr: 'marsvalcons',\n bech32PrefixConsPub: 'marsvalconspub',\n },\n currencies: [\n {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'MARS',\n coinMinimalDenom: 'umars',\n coinDecimals: 6,\n coinGeckoId: 'mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3',\n coinImageUrl: '/tokens/blockchain/mars.svg',\n },\n ],\n features: ['ibc-transfer'],\n explorerUrlToTx: 'https://www.mintscan.io/mars-protocol/txs/{txHash}',\n gasPriceStep: {\n low: 0.001,\n average: 0.0025,\n high: 0.01,\n },\n },\n },\n {\n name: 'TERRA',\n defaultDecimals: 6,\n addressPatterns: ['^(terra1)[0-9a-z]{38}$'],\n feeAssets: [\n {\n blockchain: 'TERRA',\n symbol: 'LUNA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/terra.png',\n displayName: 'Terra 2.0',\n shortName: 'Terra 2.0',\n sort: 43,\n color: '#5493F7',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'COSMOS',\n chainId: 'phoenix-1',\n info: {\n infoType: 'CosmosMetaInfo',\n experimental: false,\n rpc: 'https://rpc-phoenix.keplr.app',\n rest: 'https://lcd-phoenix.keplr.app',\n cosmostationLcdUrl: 'https://phoenix-lcd.terra.dev',\n cosmostationApiUrl: null,\n cosmostationDenomTracePath: '/ibc/apps/transfer/v1/denom_traces/',\n mintScanName: null,\n chainName: 'Terra 2.0',\n stakeCurrency: {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n bip44: {\n coinType: 330,\n },\n bech32Config: {\n bech32PrefixAccAddr: 'terra',\n bech32PrefixAccPub: 'terrapub',\n bech32PrefixValAddr: 'terravaloper',\n bech32PrefixValPub: 'terravaloperpub',\n bech32PrefixConsAddr: 'terravalcons',\n bech32PrefixConsPub: 'terravalconspub',\n },\n currencies: [\n {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n ],\n feeCurrencies: [\n {\n coinDenom: 'LUNA',\n coinMinimalDenom: 'uluna',\n coinDecimals: 6,\n coinGeckoId: 'terra-luna-2',\n coinImageUrl: '',\n },\n ],\n features: ['cosmwasm', 'ibc-transfer'],\n explorerUrlToTx: 'https://finder.terra.money/mainnet/txs/{txHash}',\n gasPriceStep: {\n low: 0.0125,\n average: 0.015,\n high: 0.15,\n },\n },\n },\n {\n name: 'TELOS',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'TELOS',\n symbol: 'TLOS',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/telos.png',\n displayName: 'Telos',\n shortName: 'Telos',\n sort: 49,\n color: '#6144ae',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x28',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Telos Mainnet',\n nativeCurrency: {\n name: 'TLOS',\n symbol: 'TLOS',\n decimals: 18,\n },\n rpcUrls: ['https://mainnet.telos.net/evm'],\n blockExplorerUrls: ['https://www.teloscan.io'],\n addressUrl: 'https://www.teloscan.io/address/{wallet}',\n transactionUrl: 'https://www.teloscan.io/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_BNB',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_BNB',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Bnb',\n shortName: 'Boba Bnb',\n sort: 63,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xdbe0',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Bnb Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://bnb.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.bnb.boba.network'],\n addressUrl: 'https://blockexplorer.bnb.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.bnb.boba.network/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_BEAM',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_BEAM',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Beam',\n shortName: 'Boba Beam',\n sort: 64,\n color: '#ccff00',\n enabled: false,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0x50e',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Beam Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://bobabeam.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.bobabeam.boba.network'],\n addressUrl:\n 'https://blockexplorer.bobabeam.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.bobabeam.boba.network/tx/{txHash}',\n },\n },\n {\n name: 'BOBA_AVALANCHE',\n defaultDecimals: 18,\n addressPatterns: ['^(0x)[0-9A-Fa-f]{40}$'],\n feeAssets: [\n {\n blockchain: 'BOBA_AVALANCHE',\n symbol: 'BOBA',\n address: null,\n },\n ],\n logo: 'https://api.rango.exchange/blockchains/boba.png',\n displayName: 'Boba Avalanche',\n shortName: 'Boba Avalanche',\n sort: 65,\n color: '#ccff00',\n enabled: true,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n type: 'EVM',\n chainId: '0xa918',\n info: {\n infoType: 'EvmMetaInfo',\n chainName: 'Boba Avalanche Network',\n nativeCurrency: {\n name: 'BOBA',\n symbol: 'BOBA',\n decimals: 18,\n },\n rpcUrls: ['https://avax.boba.network'],\n blockExplorerUrls: ['https://blockexplorer.avax.boba.network'],\n addressUrl: 'https://blockexplorer.avax.boba.network/address/{wallet}',\n transactionUrl: 'https://blockexplorer.avax.boba.network/tx/{txHash}',\n },\n },\n];\n", "import type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { EvmTransaction } from 'rango-types/lib/api/main';\n\nimport { cleanEvmError } from '@rango-dev/signer-evm';\nimport * as encoding from '@walletconnect/encoding';\nimport { AccountId, ChainId } from 'caip';\nimport { type GenericSigner } from 'rango-types';\n\nimport { EthereumRPCMethods, NAMESPACES } from '../constants';\n\nconst NAMESPACE_NAME = NAMESPACES.ETHEREUM;\n\nclass EVMSigner implements GenericSigner<EvmTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n static buildTx(evmTx: EvmTransaction, disableV2 = false) {\n let tx = {};\n if (evmTx.from) {\n tx = { ...tx, from: evmTx.from };\n }\n if (evmTx.to) {\n tx = { ...tx, to: evmTx.to };\n }\n if (evmTx.data) {\n tx = { ...tx, data: evmTx.data };\n }\n if (evmTx.value) {\n tx = { ...tx, value: evmTx.value };\n }\n if (evmTx.nonce) {\n tx = { ...tx, nonce: evmTx.nonce };\n }\n if (evmTx.gasLimit) {\n tx = { ...tx, gasLimit: evmTx.gasLimit };\n }\n if (evmTx.gasPrice) {\n const shift = 16;\n tx = {\n ...tx,\n gasPrice: '0x' + parseInt(evmTx.gasPrice).toString(shift),\n };\n }\n if (evmTx.maxFeePerGas && !disableV2) {\n tx = { ...tx, maxFeePerGas: evmTx.maxFeePerGas };\n }\n if (evmTx.maxPriorityFeePerGas && !disableV2) {\n tx = { ...tx, maxPriorityFeePerGas: evmTx.maxPriorityFeePerGas };\n }\n return tx;\n }\n\n public async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: requestedFor.chainId,\n });\n const hexMsg = encoding.utf8ToHex(msg, true);\n\n const params = [hexMsg, address];\n\n let signature: string;\n try {\n // Send message to wallet (using relayer)\n signature = await this.client.request({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: EthereumRPCMethods.PERSONAL_SIGN,\n params,\n },\n });\n } catch (error) {\n throw cleanEvmError(error);\n }\n\n /*\n * TODO: We can also verify the signature here\n * Check web-examples: dapps/react-dapp-v2/src/contexts/JsonRpcContext.tsx\n */\n\n return signature;\n }\n\n async signAndSendTx(\n tx: EvmTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n try {\n const transaction = EVMSigner.buildTx(tx);\n const hash: string = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: EthereumRPCMethods.SEND_TRANSACTION,\n params: [transaction],\n },\n });\n // Some wallets e.g. Rainbow wallet are returning invalid hash (e.g. 'null') in case of the rejection\n if (!hash?.startsWith('0x')) {\n throw new Error(\n `Received an invalid hash on signing the transaction. (hash=${hash})`\n );\n }\n return {\n hash,\n };\n } catch (error) {\n throw cleanEvmError(error);\n }\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n if (!chainId) {\n console.log('isNetworkAndAccountExistInSession', requestedFor);\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n\n /*\n * TODO: We need to make sure we are using a single format for chain ids, it should be hex or number.\n * This is a quick fix for evm.\n */\n const chainIdNumber = chainId.startsWith('0x')\n ? String(parseInt(chainId))\n : chainId;\n\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n },\n address,\n });\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address.toLowerCase()\n );\n\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString(),\n chainId,\n address\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n });\n\n return {\n chainId: chainIdNumber,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default EVMSigner;\n", "import type { SolanaWeb3Signer } from '@rango-dev/signer-solana';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { GenericSigner, SolanaTransaction } from 'rango-types';\n\nimport { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana';\nimport { PublicKey } from '@solana/web3.js';\nimport base58 from 'bs58';\nimport { AccountId, ChainId } from 'caip';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { NAMESPACES, SolanaRPCMethods } from '../constants';\n\nconst NAMESPACE_NAME = NAMESPACES.SOLANA;\nclass SOLANASigner implements GenericSigner<SolanaTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n public async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: requestedFor.chainId,\n });\n\n try {\n const message = base58.encode(new TextEncoder().encode(msg));\n const pubkey = new PublicKey(address);\n const { signature } = await this.client.request<{\n signature: string;\n }>({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: SolanaRPCMethods.SIGN_MESSAGE,\n params: {\n message,\n pubkey,\n },\n },\n });\n\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(\n tx: SolanaTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction: Transaction | VersionedTransaction\n ) => {\n const response: { signature: string } = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: SolanaRPCMethods.SIGN_TRANSACTION,\n params: solanaWeb3Transaction,\n },\n });\n\n const publicKey = new PublicKey(tx.from);\n const sign = base58.decode(response.signature);\n\n solanaWeb3Transaction.addSignature(publicKey, Buffer.from(sign));\n const raw = solanaWeb3Transaction.serialize();\n return raw;\n };\n\n const hash = await generalSolanaTransactionExecutor(\n tx,\n DefaultSolanaSigner\n );\n return { hash };\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n /*\n * TODO: solana chain id in supported blockchains(\"mainnet-beta\") is different from solana chain id is here (\"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\")\n * # Solana Mainnet\n * solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvd\n * refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\n */\n\n let solana_chain_id = chainId;\n this.session.namespaces[NAMESPACE_NAME]?.accounts.map((account) => {\n const sol_account = account.split(':');\n if (sol_account[2] === address) {\n solana_chain_id = sol_account[1];\n }\n });\n\n if (!solana_chain_id) {\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: solana_chain_id,\n },\n address,\n });\n\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address\n );\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString()\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: solana_chain_id,\n });\n\n return {\n chainId: solana_chain_id,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default SOLANASigner;\n"],
5
+ "mappings": "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,GACZ,EACA,aAAc,CACZ,oBAAqB,SACrB,mBAAoB,YACpB,oBAAqB,gBACrB,mBAAoB,mBACpB,qBAAsB,gBACtB,oBAAqB,kBACvB,EACA,WAAY,CACV,CACE,UAAW,OACX,iBAAkB,QAClB,aAAc,EACd,YAAa,SACb,aAAc,EAChB,EACA,CACE,UAAW,SACX,iBAAkB,UAClB,aAAc,EACd,YAAa,qBACb,aAAc,EAChB,EACA,CACE,UAAW,SACX,iBAAkB,UAClB,aAAc,EACd,YAAa,qBACb,aAAc,EAChB,EACA,CACE,UAAW,SACX,iBAAkB,UAClB,aAAc,EACd,YAAa,qBACb,aAAc,EAChB,EACA,CACE,UAAW,UACX,iBAAkB,WAClB,aAAc,EACd,YAAa,GACb,aAAc,EAChB,EACA,CACE,UAAW,UACX,iBAAkB,WAClB,aAAc,GACd,YAAa,GACb,aAAc,EAChB,EACA,CACE,UAAW,SACX,iBAAkB,UAClB,aAAc,EACd,YAAa,GACb,aAAc,EAChB,CACF,EACA,cAAe,CACb,CACE,UAAW,OACX,iBAAkB,QAClB,aAAc,EACd,YAAa,SACb,aAAc,EAChB,CACF,EACA,SAAU,CAAC,cAAc,EACzB,gBAAiB,8CACjB,aAAc,CACZ,IAAK,KACL,QAAS,MACT,KAAM,GACR,CACF,CACF,EACA,CACE,KAAM,MACN,gBAAiB,GACjB,gBAAiB,CAAC,uBAAuB,EACzC,UAAW,CACT,CACE,WAAY,MACZ,OAAQ,MACR,QAAS,IACX,CACF,EACA,KAAM,iDACN,YAAa,MACb,UAAW,MACX,KAAM,GACN,MAAO,UACP,QAAS,GAGT,KAAM,MACN,QAAS,QACT,KAAM,CACJ,SAAU,cACV,UAAW,cACX,eAAgB,CACd,KAAM,MACN,OAAQ,MACR,SAAU,EACZ,EACA,QAAS,CAAC,kCAAkC,EAC5C,kBAAmB,CAAC,4BAA4B,EAChD,WAAY,8CACZ,eAAgB,wCAClB,CACF,EACA,CACE,KAAM,OACN,gBAAiB,EACjB,gBAAiB,CAAC,uBAAuB,EACzC,UAAW,CACT,CACE,WAAY,OACZ,OAAQ,OACR,QAAS,IACX,CACF,EACA,KA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",
6
+ "names": ["debug", "logError", "Networks", "WalletTypes", "Client", "AccountId", "ChainId", "evmBlockchains", "Networks", "DEFAULT_NETWORK", "PING_TIMEOUT", "CHAIN_ID_STORAGE", "DEFAULT_ETHEREUM_EVENTS", "DEFAULT_ETHEREUM_METHODS", "DEFAULT_SOLANA_CHAIN_ID", "DEFAULT_APP_METADATA", "RELAY_URL", "convertEvmBlockchainMetaToEvmChainInfo", "isEvmAddress", "Networks", "WalletConnectModal", "AccountId", "ChainId", "evmBlockchains", "isEvmBlockchain", "Networks", "timeout", "getSdkError", "AccountId", "getLastSession", "client", "__name", "restoreSession", "pairingTopic", "timeout", "PING_TIMEOUT", "createSession", "options", "configs", "requiredNamespaces", "optionalNamespaces", "uri", "approval", "onCloseModal", "redirectLink", "url", "allNamespaces", "standaloneChains", "namespace", "modal", "getModal", "_", "reject", "state", "session", "tryGetPairing", "pairings", "tryConnect", "params", "meta", "generateOptionalNamespace", "pairing", "disconnectSessions", "cleanupSingleSession", "topic", "sessions", "requestForDeleteTopic", "allPromises", "getSdkError", "persistCurrentChainId", "getAccountsFromSession", "account", "address", "chainId", "AccountId", "chain", "solanaChainIdToNetworkName", "getAccountsFromEvent", "event", "Networks", "updateSessionAccounts", "instance", "requestedNetwork", "currentNetwork", "namespaces", "needUpdateNamepspace", "accounts", "currentAccountAddress", "getCurrentEvmAccountAddress", "requestedAccount", "getEvmAccount", "currentAccount", "updatedNamespaces", "err", "ignoreNamespaceMethods", "WALLETS_WITH_WRONG_NAMESPACE_METHODS", "peerName", "name", "CHAIN_ID_STORAGE", "getPersistedChainId", "web3Modal", "createModalInstance", "projectId", "WalletConnectModal", "__name", "getModal", "generateOptionalNamespace", "meta", "evmChains", "evmBlockchains", "chain", "ChainId", "DEFAULT_ETHEREUM_METHODS", "DEFAULT_ETHEREUM_EVENTS", "solanaChainIdToNetworkName", "chainId", "DEFAULT_SOLANA_CHAIN_ID", "Networks", "simulateRequest", "params", "provider", "getState", "currentSession", "getLastSession", "standaloneChains", "namespace", "network", "getChainIdByNetworkName", "firstChain", "chainIdInHex", "blockchain", "switchOrAddEvmChain", "requestedNetwork", "currentNetwork", "instance", "isEvmBlockchain", "targetChain", "convertEvmBlockchainMetaToEvmChainInfo", "currentChainId", "currentChainEip", "session", "err", "getCurrentEvmAccountAddress", "account", "AccountId", "address", "isEvmAddress", "getEvmAccount", "filterEvmAccounts", "accounts", "firstEvmAddress", "DefaultSignerFactory", "TxType", "BroadcastMode", "makeSignDoc", "cosmos", "getsignedTx", "uint8ArrayToHex", "AccountId", "ChainId", "formatDirectSignDoc", "stringifySignDocValues", "SignerError", "SignerErrorCode", "TendermintTxTracer", "simpleFetch", "cosmosBlockchains", "sendTx", "chainId", "tx", "mode", "supportedChains", "chainInfo", "cosmosBlockchains", "item", "isProtoTx", "params", "result", "simpleFetch", "txResponse", "txHash", "txTracer", "TendermintTxTracer", "e", "__name", "supportedChains", "NAMESPACE_NAME", "COSMOSSigner", "__name", "client", "session", "SignerError", "tx", "address", "chainId", "requestedFor", "memo", "sequence", "account_number", "msgs", "fee", "signType", "msgsWithoutType", "m", "signDoc", "makeSignDoc", "signResponse", "err", "SignerErrorCode", "signedTx", "getsignedTx", "result", "sendTx", "BroadcastMode", "supportedChains", "uint8ArrayToHex", "getAccounts", "pubkey", "account", "bodyBytes", "cosmos", "formatDirectSignDoc", "stringifySignDocValues", "caipAddress", "AccountId", "addresses", "caipChainId", "ChainId", "cosmos_default", "cleanEvmError", "encoding", "AccountId", "ChainId", "NAMESPACE_NAME", "EVMSigner", "_EVMSigner", "__name", "client", "session", "evmTx", "disableV2", "tx", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "params", "signature", "error", "cleanEvmError", "transaction", "hash", "chainIdNumber", "caipAddress", "AccountId", "addresses", "evm_default", "generalSolanaTransactionExecutor", "PublicKey", "base58", "AccountId", "ChainId", "SignerError", "SignerErrorCode", "NAMESPACE_NAME", "SOLANASigner", "__name", "client", "session", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "message", "base58", "pubkey", "PublicKey", "signature", "error", "SignerError", "SignerErrorCode", "tx", "generalSolanaTransactionExecutor", "solanaWeb3Transaction", "response", "publicKey", "sign", "solana_chain_id", "account", "sol_account", "caipAddress", "AccountId", "addresses", "solana_default", "getSigners", "instance", "signers", "DefaultSignerFactory", "TxType", "evm_default", "cosmos_default", "solana_default", "__name", "WALLET", "WalletTypes", "envs", "init", "__name", "environments", "createModalInstance", "config", "DEFAULT_NETWORK", "getInstance", "options", "currentProvider", "getState", "meta", "provider", "Client", "RELAY_URL", "DEFAULT_APP_METADATA", "params", "simulateRequest", "connect", "instance", "client", "session", "tryConnect", "currentChainId", "getPersistedChainId", "accounts", "getAccountsFromSession", "filterEvmAccounts", "subscribe", "updateChainId", "updateAccounts", "disconnect", "args", "getAccountsFromEvent", "accountsWithChain", "account", "AccountId", "chainId", "ChainId", "persistCurrentChainId", "event", "cleanupSingleSession", "switchNetwork", "network", "evmBlockchains", "chain", "error", "logError", "chaindIdStr", "evmNamespace", "authorizedChains", "ignoreNamespaceMethods", "currentNetwork", "Networks", "updateSessionAccounts", "switchOrAddEvmChain", "canSwitchNetworkTo", "disconnectSessions", "debug", "getSigners", "getWalletInfo", "allBlockChains"]
7
7
  }