diff --git a/explorer/src/components/MixNodes/index.ts b/explorer/src/components/MixNodes/index.ts index d803c2e5ea..b04570a589 100644 --- a/explorer/src/components/MixNodes/index.ts +++ b/explorer/src/components/MixNodes/index.ts @@ -12,6 +12,7 @@ export type MixnodeRowType = { host: string; layer: string; profit_percentage: string; + avg_uptime: number; }; export function mixnodeToGridRow(arrayOfMixnodes?: MixNodeResponse): MixnodeRowType[] { @@ -35,5 +36,6 @@ export function mixNodeResponseItemToMixnodeRowType(item: MixNodeResponseItem): host: item?.mix_node?.host || '', layer: item?.layer || '', profit_percentage: `${profitPercentage}%`, + avg_uptime: item.avg_uptime, }; } diff --git a/explorer/src/pages/Mixnodes/index.tsx b/explorer/src/pages/Mixnodes/index.tsx index 1386aa38cc..50f37248e2 100644 --- a/explorer/src/pages/Mixnodes/index.tsx +++ b/explorer/src/pages/Mixnodes/index.tsx @@ -231,6 +231,23 @@ export const PageMixnodes: React.FC = () => { ), }, + { + field: 'avg_uptime', + headerName: 'Average Uptime', + renderHeader: () => , + headerClassName: 'MuiDataGrid-header-override', + width: 140, + headerAlign: 'left', + renderCell: (params: GridRenderCellParams) => ( + + {params.value} + + ), + }, ]; const handlePageSize = (event: SelectChangeEvent) => { diff --git a/explorer/src/typeDefs/explorer-api.ts b/explorer/src/typeDefs/explorer-api.ts index 9285f78b42..36dd210181 100644 --- a/explorer/src/typeDefs/explorer-api.ts +++ b/explorer/src/typeDefs/explorer-api.ts @@ -83,6 +83,7 @@ export interface MixNodeResponseItem { two_letter_iso_country_code: string; }; mix_node: MixNode; + avg_uptime: number; } export type MixNodeResponse = MixNodeResponseItem[];