@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
57 lines (56 loc) • 1.56 kB
TypeScript
export interface ValidatorStats {
lastBlockValidated: number;
lastBlockValidatedTime: Date;
lastAvailability: number;
}
export interface GetBlockOptions {
'filter[to]'?: number;
'filter[from]'?: number;
sort?: string;
'page[cursor]'?: number;
'page[limit]'?: number;
'filter[signer]'?: string;
'filter[inturnsigner]'?: string;
'filter[anysigner]'?: string;
'filter[outofturn]'?: boolean;
}
export interface BlockInfo {
id: string;
type: string;
attributes: {
hash: string;
parent_hash: string;
miner: string;
timestamp: number;
inturn_signer: string;
difficulty: number;
};
}
export interface GetMetricOptions {
'filter[cycles]'?: number;
'filter[signer]'?: string;
'filter[mainaccount]'?: string;
'page[cursor]'?: string;
'page[limit]'?: number;
sort?: string;
}
export interface ValidatorMetric {
address: string;
dueBlocks: number;
inTurnBlocks: number;
outOfTurnBlocks: number;
inTurnAvailability: number;
totalAvailability: number;
}
export declare class Indexer {
protected baseURL: string;
private _axios;
constructor(baseURL: string);
getValidatorStats(signers?: string[], options?: GetBlockOptions): Promise<ValidatorStats[]>;
getInactiveValidators(signers: string[]): Promise<number>;
getValidatorMetrics(cycles: number): Promise<ValidatorMetric[]>;
private getBlocks;
private getMetrics;
private countValidatorStats;
private countValidatorMetric;
}