@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
29 lines • 1.25 kB
JavaScript
/* 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, {
[]: isAddressEqual(log.args.managerAddress, address),
[]: isAddressEqual(log.args.rewardAddress, address),
});
case 'NodeOperatorManagerAddressChanged':
return mergeRoles(operators, log.args.nodeOperatorId, {
[]: isAddressEqual(log.args.newAddress, address),
});
case 'NodeOperatorRewardAddressChanged':
return mergeRoles(operators, log.args.nodeOperatorId, {
[]: isAddressEqual(log.args.newAddress, address),
});
default:
return operators;
}
}, [])
.filter(isNotEmptyRoles);
//# sourceMappingURL=reconstruct-operators.js.map