contract MixinWrapperFunctions is
    ReentrancyGuard,
    LibMath,
    MExchangeCore
{
    /// @dev Synchronously cancels multiple orders in a single transaction.
    /// @param orders Array of order specifications.
    function batchCancelOrders(LibOrder.Order[] memory orders)
        public
        nonReentrant
    {
        uint256 ordersLength = orders.length;
        for (uint256 i = 0; i != ordersLength; i++) {
            cancelOrderInternal(orders[i]);
        }
    }

    /// @dev Fetches information for all passed in orders.
    /// @param orders Array of order specifications.
    /// @return Array of OrderInfo instances that correspond to each order.
    function getOrdersInfo(LibOrder.Order[] memory orders)
        public
        view
        returns (LibOrder.OrderInfo[] memory)
    {
        uint256 ordersLength = orders.length;
        LibOrder.OrderInfo[] memory ordersInfo = new LibOrder.OrderInfo[](ordersLength);
        for (uint256 i = 0; i != ordersLength; i++) {
            ordersInfo[i] = getOrderInfo(orders[i]);
        }
        return ordersInfo;
    }

}
function batchCancelOrders(LibOrder.Order[] memory orders)
    public
    nonReentrant
{
    uint256 ordersLength = orders.length;
    for (uint256 i = 0; i != ordersLength; i++) {
        cancelOrderInternal(orders[i]);
    }
}

/// @dev Synchronously cancels multiple orders in a single transaction.
/// @param orders Array of order specifications.