@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
22 lines • 974 B
JavaScript
export const filterEmptyBatches = (allQueueBatches, depositableKeysCount) => {
const remainingKeys = new Map(Object.entries(depositableKeysCount).map(([k, v]) => [BigInt(k), v]));
return allQueueBatches.map((queueBatches) => {
const filteredBatches = [];
for (const batch of queueBatches) {
const { nodeOperatorId } = batch;
const operatorRemainingKeys = remainingKeys.get(nodeOperatorId) ?? 0;
const actualKeysCount = Math.min(batch.keysCount, operatorRemainingKeys);
if (actualKeysCount <= 0) {
continue;
}
filteredBatches.push({
nodeOperatorId,
keysCount: actualKeysCount,
});
// Update remaining keys for this operator
remainingKeys.set(nodeOperatorId, operatorRemainingKeys - actualKeysCount);
}
return filteredBatches;
});
};
//# sourceMappingURL=filter-batches.js.map