import React, { useState } from 'react'; import { contracts } from '@nymproject/contract-clients'; import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate'; import Box from '@mui/material/Box'; import CircularProgress from '@mui/material/CircularProgress'; import Button from '@mui/material/Button'; import Typography from '@mui/material/Typography'; import Stack from '@mui/material/Stack'; import Table from '@mui/material/Table'; import { TableBody, TableCell, TableHead, TableRow } from '@mui/material'; import { settings } from './client'; const getClient = async () => { const cosmWasmClient = await SigningCosmWasmClient.connect(settings.url); const client = new contracts.Mixnet.MixnetQueryClient(cosmWasmClient, settings.mixnetContractAddress); return client; }; export const Mixnodes = () => { const [mixnodes, setMixnodes] = useState(); const [busy, setBusy] = useState(false); const getMixnodes = async () => { setBusy(true); const client = await getClient(); const { nodes } = await client.getMixNodesDetailed({}); setMixnodes(nodes); setBusy(false); }; if (busy) { return ( Loading... ); } if (!mixnodes) { return ( ); } return ( {mixnodes?.length && ( MixId Owner Account Layer Bonded at Block Height {mixnodes.map((mixnode: any) => ( {mixnode.bond_information.mix_id} {mixnode.bond_information.owner} {mixnode.bond_information.layer} {mixnode.bond_information.bonding_height} ))}
)}
); };