Add cancelOrderInternal, use within batchCancelOrders
This commit is contained in:
parent
eb4517d737
commit
09b4d5e0e4
@ -107,14 +107,7 @@ contract MixinExchangeCore is
|
||||
public
|
||||
nonReentrant
|
||||
{
|
||||
// Fetch current order status
|
||||
OrderInfo memory orderInfo = getOrderInfo(order);
|
||||
|
||||
// Validate context
|
||||
assertValidCancel(order, orderInfo);
|
||||
|
||||
// Perform cancel
|
||||
updateCancelledState(order, orderInfo.orderHash);
|
||||
cancelOrderInternal(order);
|
||||
}
|
||||
|
||||
/// @dev Gets information about an order: status, hash, and amount filled.
|
||||
@ -236,6 +229,22 @@ contract MixinExchangeCore is
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
/// @dev After calling, the order can not be filled anymore.
|
||||
/// Throws if order is invalid or sender does not have permission to cancel.
|
||||
/// @param order Order to cancel. Order must be OrderStatus.FILLABLE.
|
||||
function cancelOrderInternal(Order memory order)
|
||||
internal
|
||||
{
|
||||
// Fetch current order status
|
||||
OrderInfo memory orderInfo = getOrderInfo(order);
|
||||
|
||||
// Validate context
|
||||
assertValidCancel(order, orderInfo);
|
||||
|
||||
// Perform cancel
|
||||
updateCancelledState(order, orderInfo.orderHash);
|
||||
}
|
||||
|
||||
/// @dev Updates state with results of a fill order.
|
||||
/// @param order that was filled.
|
||||
/// @param takerAddress Address of taker who filled the order.
|
||||
|
@ -377,10 +377,11 @@ contract MixinWrapperFunctions is
|
||||
/// @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++) {
|
||||
cancelOrder(orders[i]);
|
||||
cancelOrderInternal(orders[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,11 @@ contract MExchangeCore is
|
||||
internal
|
||||
returns (LibFillResults.FillResults memory fillResults);
|
||||
|
||||
/// @dev After calling, the order can not be filled anymore.
|
||||
/// @param order Order struct containing order specifications.
|
||||
function cancelOrderInternal(LibOrder.Order memory order)
|
||||
internal;
|
||||
|
||||
/// @dev Updates state with results of a fill order.
|
||||
/// @param order that was filled.
|
||||
/// @param takerAddress Address of taker who filled the order.
|
||||
|
@ -51,6 +51,7 @@ contract ReentrantERC20Token is
|
||||
MARKET_SELL_ORDERS,
|
||||
MATCH_ORDERS,
|
||||
CANCEL_ORDER,
|
||||
BATCH_CANCEL_ORDERS,
|
||||
CANCEL_ORDERS_UP_TO,
|
||||
SET_SIGNATURE_VALIDATOR_APPROVAL
|
||||
}
|
||||
@ -150,6 +151,11 @@ contract ReentrantERC20Token is
|
||||
EXCHANGE.cancelOrder.selector,
|
||||
order
|
||||
);
|
||||
} else if (currentFunctionId == uint8(ExchangeFunction.BATCH_CANCEL_ORDERS)) {
|
||||
calldata = abi.encodeWithSelector(
|
||||
EXCHANGE.batchCancelOrders.selector,
|
||||
orders
|
||||
);
|
||||
} else if (currentFunctionId == uint8(ExchangeFunction.CANCEL_ORDERS_UP_TO)) {
|
||||
calldata = abi.encodeWithSelector(
|
||||
EXCHANGE.cancelOrdersUpTo.selector,
|
||||
|
@ -60,6 +60,7 @@ export const constants = {
|
||||
'MARKET_SELL_ORDERS',
|
||||
'MATCH_ORDERS',
|
||||
'CANCEL_ORDER',
|
||||
'BATCH_CANCEL_ORDERS',
|
||||
'CANCEL_ORDERS_UP_TO',
|
||||
'SET_SIGNATURE_VALIDATOR_APPROVAL',
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user