@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
81 lines • 2.45 kB
TypeScript
import { Hash, Hex } from 'viem';
import { StandardMerkleTreeData } from '../common/types.js';
export type RewardsTreeLeaf = [string, string];
export type RewardsTree = StandardMerkleTreeData<RewardsTreeLeaf>;
export type RewardsReportV1 = {
blockstamp: {
block_hash: Hash;
block_number: number;
block_timestamp: number;
ref_epoch: number;
ref_slot: number;
slot_number: number;
state_root: Hex;
};
distributable: number;
frame: [number, number];
threshold: number;
operators: Record<`${number}`, {
distributed: number;
validators: Record<`${number}`, {
perf: {
assigned: number;
included: number;
};
slashed: boolean;
}>;
}>;
};
export type RewardsReportV2 = {
blockstamp: {
block_hash: Hash;
block_number: number;
block_timestamp: number;
ref_epoch: number;
ref_slot: number;
slot_number: number;
state_root: Hex;
};
distributable: number;
distributed_rewards: number;
rebate_to_protocol: number;
frame: [number, number];
operators: Record<`${number}`, {
distributed_rewards: number;
performance_coefficients: {
attestations_weight: number;
blocks_weight: number;
sync_weight: number;
};
validators: Record<`${number}`, {
attestation_duty: {
assigned: number;
included: number;
};
distributed_rewards: number;
performance: number;
proposal_duty: {
assigned: number;
included: number;
};
rewards_share: number;
slashed: boolean;
strikes: number;
sync_duty: {
assigned: number;
included: number;
};
threshold: number;
}>;
}>;
};
export type RewardsReport = RewardsReportV1 | RewardsReportV2[];
export type OperatorRewards = {
distributed: bigint;
validatorsCount: number;
validatorsOverThresholdCount: number;
threshold: number;
};
export declare const isRewardsReportV1: (report: RewardsReport) => report is RewardsReportV1;
export declare const isRewardsReportV2: (report: RewardsReport) => report is RewardsReportV2[];
//# sourceMappingURL=types.d.ts.map