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

59 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidatorWithIssue = exports.fetchAllValidatorRegistrations = exports.fetchValidatorRegistrations = void 0; const fetch_json_js_1 = require("../common/utils/fetch-json.js"); const constants_js_1 = require("./constants.js"); const fetchValidatorRegistrations = async (baseUrl, props) => { const { moduleId, nodeOperatorId, limit = constants_js_1.DEFAULT_PAGE_LIMIT, start = 0, withIssuesOnly = false, } = props; const params = new URLSearchParams({ moduleId: moduleId.toString(), limit: limit.toString(), start: start.toString(), withIssuesOnly: withIssuesOnly.toString(), }); if (nodeOperatorId !== undefined) { params.set('nodeOperatorId', nodeOperatorId.toString()); } const url = `${baseUrl}/v1/relays/validators-registration?${params}`; const data = await (0, fetch_json_js_1.fetchJson)(url, { method: 'GET', signal: AbortSignal.timeout(constants_js_1.API_REQUEST_TIMEOUT), }); return extractValidators(data); }; exports.fetchValidatorRegistrations = fetchValidatorRegistrations; const extractValidators = (registrations) => { return Object.entries(registrations).map(([pubkey, reg]) => ({ pubkey: pubkey, status: reg.status, lastPolledAt: reg.lastPolledAt, })); }; const fetchAllValidatorRegistrations = async (baseUrl, props) => { const { limit = constants_js_1.DEFAULT_PAGE_LIMIT, ...rest } = props; const allResults = []; let start = 0; let hasMore = true; while (hasMore) { const page = await (0, exports.fetchValidatorRegistrations)(baseUrl, { ...rest, limit, start, }); allResults.push(...page); if (page.length < limit) { hasMore = false; } else { start += limit; } } return allResults; }; exports.fetchAllValidatorRegistrations = fetchAllValidatorRegistrations; const isValidatorWithIssue = (validator) => { return (validator.status === 'NoRegistration' || validator.status === 'InvalidFeeRecipient'); }; exports.isValidatorWithIssue = isValidatorWithIssue; //# sourceMappingURL=fetch-validator-registrations.js.map