const res = fetch("https://rpc.mainnet.near.org", { headers: { Accept: "application/json", "Content-Type": "application/json", }, method: "POST", body: JSON.stringify({ jsonrpc: "2.0", method: `validators`, params: [null], id: 1, }), }); console.log(res.body); const body = res.body; const nearInYocto = 1000000000000000000000000; const activeValidators = []; for (let i = 0; i < res.body.result.current_validators.length; i++) { const validatorObj = res.body.result.current_validators[i]; const accountId = validatorObj.account_id; const isSlashed = validatorObj.is_slashed; const numExpectedBlocks = validatorObj.num_expected_blocks; const numExpectedChunks = validatorObj.num_expected_chunks; const numProducedBlocks = validatorObj.num_produced_blocks; const numProducedChunks = validatorObj.num_produced_chunks; const stake = validatorObj.stake; activeValidators.push( <tr> <td>{accountId}</td> <td>{(!isSlashed).toString()}</td> <td>{stake && (stake / nearInYocto).toFixed(0)}</td> <td>{numExpectedBlocks}</td> <td>{numProducedBlocks}</td> <td> {numExpectedBlocks && ((numExpectedBlocks / numProducedBlocks) * 100).toFixed(0)}{" "} % </td> <td>{numExpectedChunks}</td> <td>{numProducedChunks}</td> <td> {numExpectedChunks && ((numExpectedChunks / numProducedChunks) * 100).toFixed(0)}{" "} % </td> </tr> ); } return ( <table className="table table-striped"> <tbody> <tr> <td>Pool</td> <td>Active</td> <td>Stake</td> <td>Expected blocks</td> <td>Produced blocks</td> <td>Uptime %</td> <td>Expected chunks</td> <td>Produced chunks</td> <td>Uptime %</td> </tr>{" "} {activeValidators} </tbody> </table> );