/** * MultiChainAdmin Component - Multi-chain admin management */ import { useState } from 'react' import { useChainId, useSwitchChain } from 'wagmi' import { CONTRACT_ADDRESSES } from '../../config/contracts' import toast from 'react-hot-toast' import { chain138 } from '../../config/networks' interface ChainConfig { chainId: number name: string contractAddresses: { mainnetTether?: string transactionMirror?: string } } const CHAIN_CONFIGS: ChainConfig[] = [ { chainId: 1, name: 'Ethereum Mainnet', contractAddresses: { mainnetTether: CONTRACT_ADDRESSES.mainnet.MAINNET_TETHER, transactionMirror: CONTRACT_ADDRESSES.mainnet.TRANSACTION_MIRROR, }, }, { chainId: chain138.id, name: chain138.name, contractAddresses: {}, }, ] export default function MultiChainAdmin() { const chainId = useChainId() const { switchChain } = useSwitchChain() const [selectedChain, setSelectedChain] = useState(chainId) // Note: address removed from here but may be used in future for permission checks const currentChain = CHAIN_CONFIGS.find((c) => c.chainId === chainId) const targetChain = CHAIN_CONFIGS.find((c) => c.chainId === selectedChain) const handleSwitchChain = () => { if (selectedChain !== chainId) { switchChain({ chainId: selectedChain }) toast(`Switching to ${targetChain?.name}...`, { icon: '🔄' }) } } return (
Manage admin contracts across multiple chains.
{currentChain?.name || 'Unknown'}
Chain ID: {chainId}
{chain.name}
Chain ID: {chain.chainId}
MainnetTether:
{chain.contractAddresses.mainnetTether}
TransactionMirror:
{chain.contractAddresses.transactionMirror}