166 lines
3.7 KiB
TypeScript
166 lines
3.7 KiB
TypeScript
/**
|
|
* Mock Data for Development
|
|
*
|
|
* Provides mock data when the backend API is not available.
|
|
* This allows the frontend to function even without a running backend.
|
|
*/
|
|
|
|
import type {
|
|
NetworkHealthStatus,
|
|
SettlementThroughput,
|
|
GRULiquidityMetrics,
|
|
RiskFlags,
|
|
SCBStatus,
|
|
ParticipantInfo,
|
|
} from '@/types';
|
|
|
|
export const mockNetworkHealth: NetworkHealthStatus[] = [
|
|
{
|
|
subsystem: 'Settlement Engine',
|
|
status: 'healthy',
|
|
lastHeartbeat: new Date().toISOString(),
|
|
latency: 12,
|
|
errorRate: 0.001,
|
|
},
|
|
{
|
|
subsystem: 'GRU Liquidity Pool',
|
|
status: 'healthy',
|
|
lastHeartbeat: new Date().toISOString(),
|
|
latency: 8,
|
|
errorRate: 0.0005,
|
|
},
|
|
{
|
|
subsystem: 'CBDC Registry',
|
|
status: 'healthy',
|
|
lastHeartbeat: new Date().toISOString(),
|
|
latency: 15,
|
|
errorRate: 0.002,
|
|
},
|
|
{
|
|
subsystem: 'Risk Engine',
|
|
status: 'degraded',
|
|
lastHeartbeat: new Date(Date.now() - 30000).toISOString(),
|
|
latency: 45,
|
|
errorRate: 0.01,
|
|
},
|
|
];
|
|
|
|
export const mockSettlementThroughput: SettlementThroughput = {
|
|
txPerSecond: 1250.5,
|
|
dailyVolume: 1250000000,
|
|
byAssetType: {
|
|
fiat: 450000000,
|
|
cbdc: 320000000,
|
|
gru: 280000000,
|
|
ssu: 150000000,
|
|
commodities: 50000000,
|
|
},
|
|
heatmap: [
|
|
{ sourceSCB: 'US-SCB', destinationSCB: 'UK-SCB', volume: 150000000 },
|
|
{ sourceSCB: 'EU-SCB', destinationSCB: 'US-SCB', volume: 120000000 },
|
|
{ sourceSCB: 'UK-SCB', destinationSCB: 'EU-SCB', volume: 95000000 },
|
|
],
|
|
};
|
|
|
|
export const mockGRULiquidity: GRULiquidityMetrics = {
|
|
currentPrice: 1.0234,
|
|
volatility: 0.012,
|
|
inCirculation: {
|
|
m00: 5000000000,
|
|
m0: 2500000000,
|
|
m1: 1500000000,
|
|
sr1: 800000000,
|
|
sr2: 400000000,
|
|
sr3: 200000000,
|
|
},
|
|
};
|
|
|
|
export const mockRiskFlags: RiskFlags = {
|
|
high: 3,
|
|
medium: 12,
|
|
low: 45,
|
|
alerts: [
|
|
{
|
|
id: 'alert-001',
|
|
type: 'Liquidity Threshold',
|
|
severity: 'high',
|
|
description: 'GRU M0 pool below 80% threshold',
|
|
timestamp: new Date().toISOString(),
|
|
},
|
|
{
|
|
id: 'alert-002',
|
|
type: 'Settlement Delay',
|
|
severity: 'medium',
|
|
description: 'Average settlement time increased by 15%',
|
|
timestamp: new Date(Date.now() - 3600000).toISOString(),
|
|
},
|
|
],
|
|
};
|
|
|
|
export const mockSCBStatus: SCBStatus[] = [
|
|
{
|
|
scbId: 'US-SCB',
|
|
name: 'United States Sovereign Bank',
|
|
country: 'United States',
|
|
bic: 'USSBUS33',
|
|
status: 'active',
|
|
connectivity: 'connected',
|
|
latency: 12,
|
|
errorRate: 0.001,
|
|
openIncidents: 0,
|
|
},
|
|
{
|
|
scbId: 'UK-SCB',
|
|
name: 'United Kingdom Sovereign Bank',
|
|
country: 'United Kingdom',
|
|
bic: 'UKSBGB22',
|
|
status: 'active',
|
|
connectivity: 'connected',
|
|
latency: 18,
|
|
errorRate: 0.002,
|
|
openIncidents: 1,
|
|
},
|
|
{
|
|
scbId: 'EU-SCB',
|
|
name: 'European Union Sovereign Bank',
|
|
country: 'European Union',
|
|
bic: 'EUSBBE55',
|
|
status: 'active',
|
|
connectivity: 'degraded',
|
|
latency: 35,
|
|
errorRate: 0.008,
|
|
openIncidents: 2,
|
|
},
|
|
{
|
|
scbId: 'JP-SCB',
|
|
name: 'Japan Sovereign Bank',
|
|
country: 'Japan',
|
|
bic: 'JPSBJP99',
|
|
status: 'active',
|
|
connectivity: 'connected',
|
|
latency: 25,
|
|
errorRate: 0.003,
|
|
openIncidents: 0,
|
|
},
|
|
];
|
|
|
|
export const mockParticipants: ParticipantInfo[] = mockSCBStatus.map((scb) => ({
|
|
scbId: scb.scbId,
|
|
name: scb.name,
|
|
country: scb.country,
|
|
bic: scb.bic,
|
|
status: scb.status,
|
|
connectivity: scb.connectivity,
|
|
lastHeartbeat: new Date().toISOString(),
|
|
latency: scb.latency,
|
|
errorRate: scb.errorRate,
|
|
}));
|
|
|
|
export const mockGlobalOverview = {
|
|
networkHealth: mockNetworkHealth,
|
|
settlementThroughput: mockSettlementThroughput,
|
|
gruLiquidity: mockGRULiquidity,
|
|
riskFlags: mockRiskFlags,
|
|
scbStatus: mockSCBStatus,
|
|
};
|