import { COSMOS_MAINNET_CHAINS, TCosmosChain } from '@/data/COSMOSData' import ModalStore from '@/store/ModalStore' import { approveCosmosRequest, rejectCosmosRequest } from '@/utils/CosmosRequestHandler' import { walletConnectClient } from '@/utils/WalletConnectUtil' import { Avatar, Button, Col, Container, Divider, Link, Modal, Row, Text } from '@nextui-org/react' import { Fragment } from 'react' import { CodeBlock, codepen } from 'react-code-blocks' export default function SessionSignCosmosModal() { // Get request and wallet data from store const requestEvent = ModalStore.state.data?.requestEvent const requestSession = ModalStore.state.data?.requestSession // Ensure request and wallet are defined if (!requestEvent || !requestSession) { return Missing request data } // Get required request data const { chainId } = requestEvent const { method, params } = requestEvent.request const { protocol } = requestSession.relay const { name, icons, url } = requestSession.peer.metadata // Handle approve action (logic varies based on request method) async function onApprove() { if (requestEvent) { const response = await approveCosmosRequest(requestEvent) await walletConnectClient.respond({ topic: requestEvent.topic, response }) ModalStore.close() } } // Handle reject action async function onReject() { if (requestEvent) { const response = rejectCosmosRequest(requestEvent.request) await walletConnectClient.respond({ topic: requestEvent.topic, response }) ModalStore.close() } } return ( Sign Message {name} {url} Blockchain {COSMOS_MAINNET_CHAINS[chainId as TCosmosChain]?.name ?? chainId} Data Method {method} Relay Protocol {protocol} ) }