import ChainCard from '@/components/ChainCard' import { COSMOS_MAINNET_CHAINS } from '@/data/COSMOSData' import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' import { NEAR_TEST_CHAINS } from '@/data/NEARData' import { SOLANA_MAINNET_CHAINS, SOLANA_TEST_CHAINS } from '@/data/SolanaData' import { ELROND_MAINNET_CHAINS, ELROND_TEST_CHAINS } from '@/data/ElrondData' import { formatChainName } from '@/utils/HelperUtil' import { Col, Row, Text } from '@nextui-org/react' import { ProposalTypes } from '@walletconnect/types' import { Fragment } from 'react' /** * Utilities */ const CHAIN_METADATA = { ...COSMOS_MAINNET_CHAINS, ...SOLANA_MAINNET_CHAINS, ...ELROND_MAINNET_CHAINS, ...EIP155_MAINNET_CHAINS, ...EIP155_TEST_CHAINS, ...SOLANA_TEST_CHAINS, ...NEAR_TEST_CHAINS, ...ELROND_TEST_CHAINS } /** * Types */ interface IProps { requiredNamespace: ProposalTypes.RequiredNamespace } /** * Component */ export default function SessionProposalChainCard({ requiredNamespace }: IProps) { return ( {requiredNamespace.chains.map(chainId => { const extensionMethods: ProposalTypes.RequiredNamespace['methods'] = [] const extensionEvents: ProposalTypes.RequiredNamespace['events'] = [] requiredNamespace.extension?.map(({ chains, methods, events }) => { if (chains.includes(chainId)) { extensionMethods.push(...methods) extensionEvents.push(...events) } }) const allMethods = [...requiredNamespace.methods, ...extensionMethods] const allEvents = [...requiredNamespace.events, ...extensionEvents] // @ts-expect-error const rgb = CHAIN_METADATA[chainId]?.rgb return ( {formatChainName(chainId)} Methods {allMethods.length ? allMethods.join(', ') : '-'} Events {allEvents.length ? allEvents.join(', ') : '-'} ) })} ) }