Files
nym/nym-api/tests/src/endpoints/Status.ts
T
benedetta davico e0d98af04f Feature/nym api tests (#3216)
* some edits

* more edits

* adding unfiltered tests, cleaning up

* "name change"
2023-03-24 12:22:03 +01:00

217 lines
5.2 KiB
TypeScript

import {
ActiveStatus,
AvgUptime,
CoreCount,
DetailedGateway,
DetailedMixnodes,
InclusionProbabilities,
InclusionProbability,
NodeHistory,
ErrorMsg,
Report,
RewardEstimation,
StakeSaturation,
} from "../types/StatusInterfaces";
import { APIClient } from "./abstracts/APIClient";
export default class Status extends APIClient {
constructor() {
super("/status");
}
// GATEWAYS
public async getDetailedGateways(): Promise<DetailedGateway[]> {
const response = await this.restClient.sendGet({
route: `/gateways/detailed`,
});
return response.data;
}
public async getUnfilteredGateways(): Promise<DetailedGateway[]> {
const response = await this.restClient.sendGet({
route: `/gateways/detailed-unfiltered`,
});
return response.data;
}
public async getGatewayStatusReport(
identity_key: string
): Promise<Report | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/gateway/${identity_key}/report`,
});
return response.data;
}
public async getGatewayHistory(
identity_key: string
): Promise<NodeHistory | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/gateway/${identity_key}/history`,
});
return response.data;
}
public async getGatewayCoreCount(identity_key: string): Promise<CoreCount> {
const response = await this.restClient.sendGet({
route: `/gateway/${identity_key}/core-status-count`,
});
return response.data;
}
public async getGatewayAverageUptime(
identity_key: string
): Promise<CoreCount | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/gateway/${identity_key}/avg_uptime`,
});
return response.data;
}
// MIXNODES
public async getMixnodeStatusReport(
mix_id: number
): Promise<Report | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/report`,
});
return response.data;
}
public async getMixnodeStakeSaturation(
mix_id: number
): Promise<StakeSaturation | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/stake-saturation`,
});
return response.data;
}
public async getMixnodeCoreCount(mix_id: number): Promise<CoreCount> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/core-status-count`,
});
return response.data;
}
public async getMixnodeRewardComputation(
mix_id: number
): Promise<RewardEstimation | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/reward-estimation`,
});
return response.data;
}
public async sendMixnodeRewardEstimatedComputation(
mix_id: number
): Promise<RewardEstimation> {
const response = await this.restClient.sendPost({
route: `/mixnode/${mix_id}/compute-reward-estimation`,
data: {
// performance: "10",
active_in_rewarded_set: true,
// pledge_amount: 10,
// total_delegation: 2000,
// interval_operating_cost: {
// denom: "unym",
// amount: "250000000"
// },
// profit_margin_percent: 10
},
});
return response.data;
}
public async getMixnodeHistory(
mix_id: number
): Promise<NodeHistory | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/history`,
});
return response.data;
}
public async getMixnodeAverageUptime(
mix_id: number
): Promise<AvgUptime | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/avg_uptime`,
});
return response.data;
}
public async getMixnodeInclusionProbability(
mix_id: number
): Promise<InclusionProbability | ErrorMsg> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/inclusion-probability`,
});
return response.data;
}
public async getMixnodeStatus(mix_id: number): Promise<ActiveStatus> {
const response = await this.restClient.sendGet({
route: `/mixnode/${mix_id}/status`,
});
return response.data;
}
public async getAllMixnodeInclusionProbability(): Promise<InclusionProbabilities> {
const response = await this.restClient.sendGet({
route: `/mixnodes/inclusion_probability`,
});
return response.data;
}
public async getDetailedMixnodes(): Promise<DetailedMixnodes[]> {
const response = await this.restClient.sendGet({
route: `/mixnodes/detailed`,
});
return response.data;
}
public async getDetailedRewardedMixnodes(): Promise<DetailedMixnodes[]> {
const response = await this.restClient.sendGet({
route: `/mixnodes/rewarded/detailed`,
});
return response.data;
}
public async getUnfilteredMixnodes(): Promise<DetailedMixnodes[]> {
const response = await this.restClient.sendGet({
route: `/mixnodes/detailed-unfiltered`,
});
return response.data;
}
public async getDetailedActiveMixnodes(): Promise<DetailedMixnodes[]> {
const response = await this.restClient.sendGet({
route: `/mixnodes/active/detailed`,
});
return response.data;
}
}