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

70 lines 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRewardsReportV2 = exports.isRewardsReportV1 = void 0; const zod_1 = require("zod"); const blockstampSchema = zod_1.z.object({ block_hash: zod_1.z.string(), block_number: zod_1.z.number(), block_timestamp: zod_1.z.number(), ref_epoch: zod_1.z.number(), ref_slot: zod_1.z.number(), slot_number: zod_1.z.number(), state_root: zod_1.z.string(), }); const rewardsReportV1Schema = zod_1.z.object({ blockstamp: blockstampSchema, distributable: zod_1.z.number(), frame: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]), threshold: zod_1.z.number(), operators: zod_1.z.record(zod_1.z.object({ distributed: zod_1.z.number(), validators: zod_1.z.record(zod_1.z.object({ perf: zod_1.z.object({ assigned: zod_1.z.number(), included: zod_1.z.number(), }), slashed: zod_1.z.boolean(), })), })), }); const rewardsReportV2Schema = zod_1.z.array(zod_1.z.object({ blockstamp: blockstampSchema, distributable: zod_1.z.number(), distributed_rewards: zod_1.z.number(), rebate_to_protocol: zod_1.z.number(), frame: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]), operators: zod_1.z.record(zod_1.z.object({ distributed_rewards: zod_1.z.number(), performance_coefficients: zod_1.z.object({ attestations_weight: zod_1.z.number(), blocks_weight: zod_1.z.number(), sync_weight: zod_1.z.number(), }), validators: zod_1.z.record(zod_1.z.object({ attestation_duty: zod_1.z.object({ assigned: zod_1.z.number(), included: zod_1.z.number(), }), distributed_rewards: zod_1.z.number(), performance: zod_1.z.number(), proposal_duty: zod_1.z.object({ assigned: zod_1.z.number(), included: zod_1.z.number(), }), rewards_share: zod_1.z.number(), slashed: zod_1.z.boolean(), strikes: zod_1.z.number(), sync_duty: zod_1.z.object({ assigned: zod_1.z.number(), included: zod_1.z.number() }), threshold: zod_1.z.number(), })), })), })); const isRewardsReportV1 = (report) => { return rewardsReportV1Schema.safeParse(report).success; }; exports.isRewardsReportV1 = isRewardsReportV1; const isRewardsReportV2 = (report) => { return rewardsReportV2Schema.safeParse(report).success; }; exports.isRewardsReportV2 = isRewardsReportV2; //# sourceMappingURL=types.js.map