aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/forwarder/MixinWeth.sol
diff options
context:
space:
mode:
authorAmir Bandeali <abandeali1@gmail.com>2018-08-10 08:22:56 +0800
committerGitHub <noreply@github.com>2018-08-10 08:22:56 +0800
commit083319786fad31dfde16cb9e06e893bfeb23785d (patch)
tree4408cf7db6810374e8cac386e051ef928c09885e /packages/contracts/src/2.0.0/forwarder/MixinWeth.sol
parent719699eb3072a85112107f3c76816909f53bce5a (diff)
parent1b5c5e7a3ba17ca72ea700cd2a1884130e13fc98 (diff)
downloaddexon-0x-contracts-083319786fad31dfde16cb9e06e893bfeb23785d.tar.gz
dexon-0x-contracts-083319786fad31dfde16cb9e06e893bfeb23785d.tar.zst
dexon-0x-contracts-083319786fad31dfde16cb9e06e893bfeb23785d.zip
Merge pull request #948 from 0xProject/feature/contracts/forwarderFoK
[contracts] Make marketBuy functions revert if entire amount not filled
Diffstat (limited to 'packages/contracts/src/2.0.0/forwarder/MixinWeth.sol')
-rw-r--r--packages/contracts/src/2.0.0/forwarder/MixinWeth.sol12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/contracts/src/2.0.0/forwarder/MixinWeth.sol b/packages/contracts/src/2.0.0/forwarder/MixinWeth.sol
index 8ba236e7f..e07940776 100644
--- a/packages/contracts/src/2.0.0/forwarder/MixinWeth.sol
+++ b/packages/contracts/src/2.0.0/forwarder/MixinWeth.sol
@@ -71,12 +71,16 @@ contract MixinWeth is
"FEE_PERCENTAGE_TOO_LARGE"
);
- // Calculate amount of WETH that hasn't been sold.
- uint256 wethRemaining = safeSub(
- msg.value,
- safeAdd(wethSoldExcludingFeeOrders, wethSoldForZrx)
+ // Ensure that no extra WETH owned by this contract has been sold.
+ uint256 wethSold = safeAdd(wethSoldExcludingFeeOrders, wethSoldForZrx);
+ require(
+ wethSold <= msg.value,
+ "OVERSOLD_WETH"
);
+ // Calculate amount of WETH that hasn't been sold.
+ uint256 wethRemaining = safeSub(msg.value, wethSold);
+
// Calculate ETH fee to pay to feeRecipient.
uint256 ethFee = getPartialAmount(
feePercentage,