UNPKG

@exromany/lido-csm-sdk

Version:

[![GitHub license](https://img.shields.io/github/license/lidofinance/lido-csm-sdk?color=limegreen)](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [![Version npm](https://img.shields.io/npm/v/@lidofinance/lido-csm-sdk?label=version)](h

65 lines 2.11 kB
import { z } from 'zod'; const blockstampSchema = z.object({ block_hash: z.string(), block_number: z.number(), block_timestamp: z.number(), ref_epoch: z.number(), ref_slot: z.number(), slot_number: z.number(), state_root: z.string(), }); const rewardsReportV1Schema = z.object({ blockstamp: blockstampSchema, distributable: z.number(), frame: z.tuple([z.number(), z.number()]), threshold: z.number(), operators: z.record(z.object({ distributed: z.number(), validators: z.record(z.object({ perf: z.object({ assigned: z.number(), included: z.number(), }), slashed: z.boolean(), })), })), }); const rewardsReportV2Schema = z.array(z.object({ blockstamp: blockstampSchema, distributable: z.number(), distributed_rewards: z.number(), rebate_to_protocol: z.number(), frame: z.tuple([z.number(), z.number()]), operators: z.record(z.object({ distributed_rewards: z.number(), performance_coefficients: z.object({ attestations_weight: z.number(), blocks_weight: z.number(), sync_weight: z.number(), }), validators: z.record(z.object({ attestation_duty: z.object({ assigned: z.number(), included: z.number(), }), distributed_rewards: z.number(), performance: z.number(), proposal_duty: z.object({ assigned: z.number(), included: z.number(), }), rewards_share: z.number(), slashed: z.boolean(), strikes: z.number(), sync_duty: z.object({ assigned: z.number(), included: z.number() }), threshold: z.number(), })), })), })); export const isRewardsReportV1 = (report) => { return rewardsReportV1Schema.safeParse(report).success; }; export const isRewardsReportV2 = (report) => { return rewardsReportV2Schema.safeParse(report).success; }; //# sourceMappingURL=types.js.map