@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
25 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterEmptyBatches = void 0;
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,
});
remainingKeys.set(nodeOperatorId, operatorRemainingKeys - actualKeysCount);
}
return filteredBatches;
});
};
exports.filterEmptyBatches = filterEmptyBatches;
//# sourceMappingURL=filter-batches.js.map