In the _distributeStakingIncentivesBatch() function, after filtering out staking targets with zero incentives, the resulting updatedStakingTargets and updatedStakingAmounts arrays may end up being empty. For example, this could happen if all staking incentives for a particular chain ID were zero after being normalized.
However, the code still proceeds to send these empty arrays to the deposit processor contract via the sendMessageBatch() or sendMessageBatchNonEVM() functions. Sending empty arrays is wasteful in terms of gas costs, and may lead to unnecessary processing on the L2 side.
Consider adding a check to skip sending messages to a chain if the updatedStakingTargets array is empty.
