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

29 lines 1.25 kB
/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { isAddressEqual } from 'viem'; import { ROLES } from '../common/index.js'; import { isNotEmptyRoles, mergeRoles } from './merge.js'; export const reconstructOperators = (logs, address) => logs .reduce((operators, log) => { if (log.args.nodeOperatorId === undefined) { return operators; } switch (log.eventName) { case 'NodeOperatorAdded': return mergeRoles(operators, log.args.nodeOperatorId, { [ROLES.MANAGER]: isAddressEqual(log.args.managerAddress, address), [ROLES.REWARDS]: isAddressEqual(log.args.rewardAddress, address), }); case 'NodeOperatorManagerAddressChanged': return mergeRoles(operators, log.args.nodeOperatorId, { [ROLES.MANAGER]: isAddressEqual(log.args.newAddress, address), }); case 'NodeOperatorRewardAddressChanged': return mergeRoles(operators, log.args.nodeOperatorId, { [ROLES.REWARDS]: isAddressEqual(log.args.newAddress, address), }); default: return operators; } }, []) .filter(isNotEmptyRoles); //# sourceMappingURL=reconstruct-operators.js.map