statistics method
Future
statistics({
- required int startEpoch,
- required int stopEpoch,
- required StatisticsParams statisticsType,
Implementation
Future<dynamic> statistics(
{required int startEpoch,
required int stopEpoch,
required StatisticsParams statisticsType}) async {
try {
dynamic data = await getStats(
startEpoch: startEpoch,
stopEpoch: stopEpoch,
statisticsType: statisticsType);
switch (statisticsType) {
case StatisticsParams.histogram_burn_rate:
return List.from(data[StatisticsParams.histogram_burn_rate.name])
.map((burnRate) => BurnRate.fromJson(burnRate))
.toList();
case StatisticsParams.histogram_data_request_composition:
return List.from(data[
StatisticsParams.histogram_data_request_composition.name])
.map((drComposition) => DrComposition.fromJson(drComposition))
.toList();
case StatisticsParams.histogram_data_request_lie_rate:
return List.from(
data[StatisticsParams.histogram_data_request_lie_rate.name])
.map((lieRate) => DrLieRate.fromJson(lieRate))
.toList();
case StatisticsParams.histogram_data_requests:
return List.from(data[StatisticsParams.histogram_data_requests.name])
.map((drHistory) => DrHistory.fromJson(drHistory))
.toList();
case StatisticsParams.histogram_value_transfers:
return data[StatisticsParams.histogram_value_transfers.name];
case StatisticsParams.list_rollbacks:
return List.from(data[StatisticsParams.list_rollbacks.name])
.map((rollback) => Rollback.fromJson(rollback))
.toList();
case StatisticsParams.num_unique_data_request_solvers:
int uniqueDrSolvers =
data[StatisticsParams.num_unique_data_request_solvers.name];
return uniqueDrSolvers;
case StatisticsParams.num_unique_miners:
int uniqueMiners = data[StatisticsParams.num_unique_miners.name];
return uniqueMiners;
case StatisticsParams.percentile_staking_balances:
List<int> stakingBalances =
List.from(data['staking']['ars']).map((e) => e as int).toList();
return stakingBalances;
case StatisticsParams.top_100_miners:
List<Miner> topMiners =
List.from(data[StatisticsParams.top_100_miners.name])
.map((miner) => Miner.fromJson(miner))
.toList();
return topMiners;
case StatisticsParams.top_100_data_request_solvers:
List<DrSolver> topDrSolvers = List.from(
data[StatisticsParams.top_100_data_request_solvers.name])
.map((miner) => DrSolver.fromJson(miner))
.toList();
return topDrSolvers;
}
} on ExplorerException catch (e) {
throw ExplorerException(
code: e.code, message: '{"statistics": "${e.message}"}');
}
}