aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts')
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/Exchange.sol5
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol7
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/MixinSettlementProxy.sol57
3 files changed, 33 insertions, 36 deletions
diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/Exchange.sol b/packages/contracts/src/contracts/current/protocol/Exchange/Exchange.sol
index 8f0bb45c5..5c513341b 100644
--- a/packages/contracts/src/contracts/current/protocol/Exchange/Exchange.sol
+++ b/packages/contracts/src/contracts/current/protocol/Exchange/Exchange.sol
@@ -31,7 +31,10 @@ contract Exchange is
{
string constant public VERSION = "2.0.0-alpha";
- function Exchange(address _zrxToken, address _tokenTransferProxy)
+ function Exchange(
+ IToken _zrxToken,
+ ITokenTransferProxy _tokenTransferProxy
+ )
public
MixinExchangeCore()
MixinSignatureValidatorEcrecover()
diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol b/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
index 4db4eb448..c61006374 100644
--- a/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
+++ b/packages/contracts/src/contracts/current/protocol/Exchange/MixinExchangeCore.sol
@@ -132,10 +132,7 @@ contract MixinExchangeCore is
filled[order.orderHash] = safeAdd(filled[order.orderHash], takerTokenFilledAmount);
// Settle order
- uint256 filledMakerTokenAmount;
- uint256 makerFeePaid;
- uint256 takerFeePaid;
- (filledMakerTokenAmount, makerFeePaid, takerFeePaid) =
+ var (makerTokenFilledAmount, makerFeePaid, takerFeePaid) =
settleOrder(order, msg.sender, takerTokenFilledAmount);
// Log order
@@ -145,7 +142,7 @@ contract MixinExchangeCore is
order.feeRecipient,
order.makerToken,
order.takerToken,
- filledMakerTokenAmount,
+ makerTokenFilledAmount,
takerTokenFilledAmount,
makerFeePaid,
takerFeePaid,
diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/MixinSettlementProxy.sol b/packages/contracts/src/contracts/current/protocol/Exchange/MixinSettlementProxy.sol
index 85488b383..83614ec8f 100644
--- a/packages/contracts/src/contracts/current/protocol/Exchange/MixinSettlementProxy.sol
+++ b/packages/contracts/src/contracts/current/protocol/Exchange/MixinSettlementProxy.sol
@@ -29,15 +29,31 @@ contract MixinSettlementProxy is
LibPartialAmount
{
- address public TOKEN_TRANSFER_PROXY_CONTRACT;
+ ITokenTransferProxy TRANSFER_PROXY;
+ IToken ZRX_TOKEN;
- address public ZRX_TOKEN_CONTRACT;
+ function transferProxy()
+ external view
+ returns (ITokenTransferProxy)
+ {
+ return TRANSFER_PROXY;
+ }
+
+ function zrxToken()
+ external view
+ returns (IToken)
+ {
+ return ZRX_TOKEN;
+ }
- function MixinSettlementProxy(address proxyContract, address zrxToken)
+ function MixinSettlementProxy(
+ ITokenTransferProxy proxyContract,
+ IToken zrxToken
+ )
public
{
- ZRX_TOKEN_CONTRACT = zrxToken;
- TOKEN_TRANSFER_PROXY_CONTRACT = proxyContract;
+ ZRX_TOKEN = zrxToken;
+ TRANSFER_PROXY = proxyContract;
}
function settleOrder(
@@ -52,13 +68,13 @@ contract MixinSettlementProxy is
)
{
makerTokenFilledAmount = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.makerTokenAmount);
- require(transferViaTokenTransferProxy(
+ require(TRANSFER_PROXY.transferFrom(
order.makerToken,
order.maker,
taker,
makerTokenFilledAmount
));
- require(transferViaTokenTransferProxy(
+ require(TRANSFER_PROXY.transferFrom(
order.takerToken,
taker,
order.maker,
@@ -67,8 +83,8 @@ contract MixinSettlementProxy is
if (order.feeRecipient != address(0)) {
if (order.makerFee > 0) {
makerFeePaid = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.makerFee);
- require(transferViaTokenTransferProxy(
- ZRX_TOKEN_CONTRACT,
+ require(TRANSFER_PROXY.transferFrom(
+ ZRX_TOKEN,
order.maker,
order.feeRecipient,
makerFeePaid
@@ -76,8 +92,8 @@ contract MixinSettlementProxy is
}
if (order.takerFee > 0) {
takerFeePaid = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.takerFee);
- require(transferViaTokenTransferProxy(
- ZRX_TOKEN_CONTRACT,
+ require(TRANSFER_PROXY.transferFrom(
+ ZRX_TOKEN,
taker,
order.feeRecipient,
takerFeePaid
@@ -86,23 +102,4 @@ contract MixinSettlementProxy is
}
return (makerTokenFilledAmount, makerFeePaid, takerFeePaid);
}
-
- /// @dev Transfers a token using TokenTransferProxy transferFrom function.
- /// @param token Address of token to transferFrom.
- /// @param from Address transfering token.
- /// @param to Address receiving token.
- /// @param value Amount of token to transfer.
- /// @return Success of token transfer.
- function transferViaTokenTransferProxy(
- address token,
- address from,
- address to,
- uint256 value)
- internal
- returns (bool success)
- {
- success = ITokenTransferProxy(TOKEN_TRANSFER_PROXY_CONTRACT).transferFrom(token, from, to, value);
- return success;
- }
-
}