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[];