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

48 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reconstructInvites = void 0; const viem_1 = require("viem"); const index_js_1 = require("../common/index.js"); const reconstructInvites = (logs, address) => logs .reduce((invites, log) => { if (log.args.nodeOperatorId === undefined) { return invites; } switch (log.eventName) { case 'NodeOperatorManagerAddressChangeProposed': return (0, viem_1.isAddressEqual)(log.args.newProposedAddress, address) ? mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.MANAGER, }) : mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.MANAGER }, false); case 'NodeOperatorRewardAddressChangeProposed': return (0, viem_1.isAddressEqual)(log.args.newProposedAddress, address) ? mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.REWARDS, }) : mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.REWARDS }, false); case 'NodeOperatorManagerAddressChanged': return mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.MANAGER }, false); case 'NodeOperatorRewardAddressChanged': return mergeInvites(invites, { id: log.args.nodeOperatorId, role: index_js_1.ROLES.REWARDS }, false); default: return invites; } }, []) .sort((a, b) => Number(a.id - b.id) || -Number(b.role === index_js_1.ROLES.REWARDS) - Number(a.role === index_js_1.ROLES.REWARDS)); exports.reconstructInvites = reconstructInvites; const mergeInvites = (_list, invite, add = true) => { const list = Array.from(_list); const index = list.findIndex((item) => item.id === invite.id && item.role === invite.role); if (add && index < 0) { list.push(invite); } else if (!add && index >= 0) { list.splice(index, 1); } return list; }; //# sourceMappingURL=reconstruct-invites.js.map