Skip to content
Request an audit

‹ All findings

In OstiumTradesUpKeep, _getLimitOrdersToTrigger() and _getOpenOrdersToTrigger() return tradesToTrigger with 1 extra length

Low/InfoOstium·Three Sigma · RWA perpetuals DEX · 19th February, 20243S-OS-N15

Description

In OstiumTradesUpKeep::_getLimitOrdersToTrigger() and OstiumTradesUpKeep::_getOpenOrdersToTrigger(), tradesToTrigger are returned with 1 extra length due to incorrect ++tradesToTrigger operation. tradesToTriggerIndex starts at 0 and increases whenever a trade is found, so it is always ahead of the biggest index by 1 already, representing the length.

Recommendation

Remove ++ from the conditions if (++tradesToTriggerIndex < tradesToTrigger.length). Additionally, check if the length of the array here is 0 instead of the first trader.

Status

Addressed in #8ff89f3.