Skip to content

Commit

Permalink
Merge pull request #77 from GeneralMagicio/mateodaza/gm-71-proposer-fix
Browse files Browse the repository at this point in the history
Fixes field on blocks proposer column
  • Loading branch information
mateodaza committed Jun 27, 2023
2 parents 29780e5 + 6fc2470 commit 9625bba
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 23 deletions.
84 changes: 72 additions & 12 deletions src/components/tables/LatestBlocksTable/LatestBlockTable.stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,84 +5,144 @@ import type { Meta, StoryObj } from '@storybook/react'
const data: Block[] = [
{
slot: 1,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'okpoolproposal',
},
{
slot: 2,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'vanila',
reward: 2.12,
blockType: 'missedproposal',
},
{
slot: 3,
proposer: '0x7915e43086Cd78Be341Df73726C0947B6334b978',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'wrongfeerecipient',
},
{
slot: 4,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'okpoolproposal',
},
{
slot: 5,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'vanila',
reward: 2.12,
blockType: 'missedproposal',
},
{
slot: 6,
proposer: '0x7915e43086Cd78Be341Df73726C0947B6334b978',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'wrongfeerecipient',
},
{
slot: 7,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'okpoolproposal',
},
{
slot: 8,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'vanila',
reward: 2.12,
blockType: 'missedproposal',
},
{
slot: 9,
proposer: '0x7915e43086Cd78Be341Df73726C0947B6334b978',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'wrongfeerecipient',
},
{
slot: 10,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'okpoolproposal',
},
{
slot: 11,
proposer: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'vanila',
reward: 2.12,
blockType: 'missedproposal',
},
{
slot: 12,
proposer: '0x7915e43086Cd78Be341Df73726C0947B6334b978',
proposer: {
withdrawalAddress: '0x00005ea00ac477b1030ce78506496e8c2de24bf5',
validatorKey:
'0xa62c5914723e36eef425e1ada8b42aa24d2b1fd4f3025e5fc814f78212b7edfd3dfc5e09609de0d6a3de28d3a10bc7cb',
validatorIndex: 1,
},
rewardType: 'mev',
reward: 0.32,
blockType: 'wrongfeerecipient',
Expand Down
2 changes: 1 addition & 1 deletion src/components/tables/LatestBlocksTable/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ export const PAGE_SIZE = 10

export const headerTooltip = {
slot: 'Slot of the block',
proposer: 'Address of the validator',
proposer: 'Key of the validator',
rewardType: 'Type of the reward (vanila or mev)',
reward: 'Reward of the block',
}
8 changes: 4 additions & 4 deletions src/components/tables/LatestBlocksTable/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
useReactTable,
} from '@tanstack/react-table'
import { useSearchInput } from '@/hooks/useSearchInput'
import { addEthSuffix } from '@/utils/web3'
import { addEthSuffix, shortenEthAddress } from '@/utils/web3'
import { toFixedNoTrailingZeros } from '@/utils/decimals'
import { getBeaconChainExplorer } from '@/utils/config'
import type { Block } from '../types'
Expand Down Expand Up @@ -43,10 +43,10 @@ const getColumns = (blackExplorerUrl?: string) => [
return (
<Link
className="font-medium underline"
href={`${blackExplorerUrl}/address/${proposer}`}
href={`${blackExplorerUrl}/validator/${proposer.validatorIndex}`}
rel="noopener noreferrer"
target="_blank">
{proposer.toLocaleString()}
{shortenEthAddress(proposer.validatorKey.toLocaleString())}
</Link>
)
},
Expand Down Expand Up @@ -96,7 +96,7 @@ export function LatestBlocksTable({
() =>
data
?.filter((row) => {
const address = row.proposer.toLowerCase()
const address = row.proposer.withdrawalAddress.toLowerCase()
const search = debouncedSearchInput.toLowerCase()
return (
address.includes(search) &&
Expand Down
8 changes: 7 additions & 1 deletion src/components/tables/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@ import type { Warnings } from './MyValidatorsTable/components/WarningIcon'

export interface Block {
slot: number
proposer: `0x${string}`
proposer: Proposer
rewardType: 'vanila' | 'mev' | ''
reward: number
blockType: 'okpoolproposal' | 'missedproposal' | 'wrongfeerecipient'
}

interface Proposer {
withdrawalAddress: `0x${string}`
validatorKey: `0x${string}`
validatorIndex: number
}

export interface Validator {
address: `0x${string}`
pending: number
Expand Down
20 changes: 15 additions & 5 deletions src/components/views/LatestBlocksSP.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { LatestBlocksTable } from '../tables/LatestBlocksTable'
import { useQuery } from '@tanstack/react-query'
import { useNetwork } from 'wagmi'
import type { Block } from '@/components/tables/types'
import { fetchAllBlocks } from '@/client/api/queryFunctions'
import { weiToEth } from '@/utils/web3'

export function LatestBlocksSP() {
const { chain } = useNetwork()
const { data, isLoading } = useQuery({
queryKey: ['latest-blocks'],
queryFn: fetchAllBlocks,
Expand All @@ -16,10 +14,22 @@ export function LatestBlocksSP() {

if (data) {
blocks = data.map(
({ slot, withdrawalAddress, rewardType, rewardWei, blockType }) => ({
({
slot,
withdrawalAddress,
validatorKey,
validatorIndex,
rewardType,
rewardWei,
blockType,
}) => ({
blockType,
slot,
proposer: withdrawalAddress as `0x${string}`,
proposer: {
withdrawalAddress: withdrawalAddress as `0x${string}`,
validatorKey: validatorKey as `0x${string}`,
validatorIndex: validatorIndex as number,
},
rewardType,
reward: weiToEth(rewardWei),
})
Expand All @@ -29,7 +39,7 @@ export function LatestBlocksSP() {
return (
<div className="mt-8">
<LatestBlocksTable
blockExplorerUrl={chain?.blockExplorers?.default.url}
blockExplorerUrl="https://prater.beaconcha.in"
data={blocks}
isLoading={isLoading}
/>
Expand Down

1 comment on commit 9625bba

@vercel
Copy link

@vercel vercel bot commented on 9625bba Jun 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.