@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
59 lines • 2.29 kB
JavaScript
;
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