From 814518dd8094d03908d77e39faa21b8758f1552b Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Mon, 9 Jul 2018 21:09:45 -0700 Subject: Refactor forwarding contract architecture, remove batch functions --- .../src/2.0.0/forwarder/MixinMarketBuyZrx.sol | 83 ---------------------- 1 file changed, 83 deletions(-) delete mode 100644 packages/contracts/src/2.0.0/forwarder/MixinMarketBuyZrx.sol (limited to 'packages/contracts/src/2.0.0/forwarder/MixinMarketBuyZrx.sol') diff --git a/packages/contracts/src/2.0.0/forwarder/MixinMarketBuyZrx.sol b/packages/contracts/src/2.0.0/forwarder/MixinMarketBuyZrx.sol deleted file mode 100644 index e272f8aad..000000000 --- a/packages/contracts/src/2.0.0/forwarder/MixinMarketBuyZrx.sol +++ /dev/null @@ -1,83 +0,0 @@ -/* - - Copyright 2018 ZeroEx Intl. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -*/ - -pragma solidity 0.4.24; -pragma experimental ABIEncoderV2; - -import "../protocol/Exchange/libs/LibFillResults.sol"; -import "../protocol/Exchange/libs/LibOrder.sol"; -import "../protocol/Exchange/libs/LibMath.sol"; -import "./mixins/MConstants.sol"; -import "./mixins/MMarketBuyZrx.sol"; - - -contract MixinMarketBuyZrx is - LibMath, - LibFillResults, - MConstants, - MMarketBuyZrx -{ - - /// @dev Buys zrxBuyAmount of ZRX fee tokens, taking into account the fees on buying fee tokens. This will guarantee - /// At least zrxBuyAmount of ZRX fee tokens are purchased (sometimes slightly over due to rounding issues). - /// It is possible that a request to buy 200 ZRX fee tokens will require purchasing 202 ZRX tokens - /// As 2 ZRX is required to purchase the 200 ZRX fee tokens. This guarantees at least 200 ZRX for future purchases. - /// @param orders An array of Order struct containing order specifications for fees. - /// @param signatures An array of Proof that order has been created by maker for the fee orders. - /// @param zrxBuyAmount The number of requested ZRX fee tokens. - /// @return totalFillResults Amounts filled and fees paid by maker and taker. makerTokenAmount is the zrx amount deducted of fees - function marketBuyZrxInternal( - LibOrder.Order[] memory orders, - bytes[] memory signatures, - uint256 zrxBuyAmount - ) - internal - returns (FillResults memory totalFillResults) - { - for (uint256 i = 0; i < orders.length; i++) { - // All of these are ZRX/WETH, we can drop the respective assetData from callData - orders[i].makerAssetData = ZRX_ASSET_DATA; - orders[i].takerAssetData = WETH_ASSET_DATA; - // Calculate the remaining amount of makerToken to buy - uint256 remainingZrxBuyAmount = safeSub(zrxBuyAmount, totalFillResults.makerAssetFilledAmount); - // Convert the remaining amount of makerToken to buy into remaining amount - // of takerToken to sell, assuming entire amount can be sold in the current order - uint256 remainingWethSellAmount = getPartialAmount( - orders[i].takerAssetAmount, - safeSub(orders[i].makerAssetAmount, orders[i].takerFee), // our exchange rate after fees - remainingZrxBuyAmount - ); - // Attempt to sell the remaining amount of takerToken - // Round up the amount to ensure we don't under buy by a fractional amount - FillResults memory singleFillResult = EXCHANGE.fillOrder( - orders[i], - safeAdd(remainingWethSellAmount, 1), - signatures[i] - ); - // We didn't buy the full amount when buying ZRX as some were taken for fees - singleFillResult.makerAssetFilledAmount = safeSub(singleFillResult.makerAssetFilledAmount, singleFillResult.takerFeePaid); - // Update amounts filled and fees paid by maker and taker - addFillResults(totalFillResults, singleFillResult); - // Stop execution if the entire amount of makerToken has been bought - if (totalFillResults.makerAssetFilledAmount >= zrxBuyAmount) { - break; - } - } - return totalFillResults; - } -} -- cgit v1.2.3