diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2018-08-10 08:22:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-10 08:22:56 +0800 |
commit | 083319786fad31dfde16cb9e06e893bfeb23785d (patch) | |
tree | 4408cf7db6810374e8cac386e051ef928c09885e /packages/contracts/src/2.0.0/forwarder/MixinWeth.sol | |
parent | 719699eb3072a85112107f3c76816909f53bce5a (diff) | |
parent | 1b5c5e7a3ba17ca72ea700cd2a1884130e13fc98 (diff) | |
download | dexon-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.sol | 12 |
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, |