aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol18
1 files changed, 10 insertions, 8 deletions
diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol b/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
index 083491a7a..67f9d2ea2 100644
--- a/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
+++ b/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
@@ -97,14 +97,16 @@ contract MixinExchangeCore is
orderHash: getOrderHash(orderAddresses, orderValues)
});
- // Validate maker
- require(order.makerTokenAmount > 0);
- require(order.takerTokenAmount > 0);
- require(isValidSignature(
- order.orderHash,
- order.maker,
- signature
- ));
+ // Validate order and maker only if first time seen
+ if (filled[order.orderHash] == 0 && cancelled[order.orderHash] == 0) {
+ require(order.makerTokenAmount > 0);
+ require(order.takerTokenAmount > 0);
+ require(isValidSignature(
+ order.orderHash,
+ order.maker,
+ signature
+ ));
+ }
// Validate taker
if (order.taker != address(0)) {