Changes based on style guidelines put out by Amir
This commit is contained in:
@@ -130,6 +130,88 @@ contract MixinExchangeCore is
|
||||
return (orderStatus, orderHash, takerAssetFilledAmount);
|
||||
}
|
||||
|
||||
/// @dev Fills the input order.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerAssetFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signature Proof that order has been created by maker.
|
||||
/// @return Amounts filled and fees paid by maker and taker.
|
||||
function fillOrder(
|
||||
Order memory order,
|
||||
uint256 takerAssetFillAmount,
|
||||
bytes memory signature
|
||||
)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
// Fetch order info
|
||||
bytes32 orderHash;
|
||||
uint8 orderStatus;
|
||||
uint256 takerAssetFilledAmount;
|
||||
(orderStatus, orderHash, takerAssetFilledAmount) = getOrderInfo(order);
|
||||
|
||||
// Fetch taker address
|
||||
address takerAddress = getCurrentContextAddress();
|
||||
|
||||
// Either our context is valid or we revert
|
||||
validateFillOrRevert(
|
||||
order,
|
||||
orderStatus,
|
||||
orderHash,
|
||||
takerAddress,
|
||||
takerAssetFilledAmount,
|
||||
takerAssetFillAmount,
|
||||
signature
|
||||
);
|
||||
|
||||
// Compute proportional fill amounts
|
||||
uint8 status;
|
||||
(status, fillResults) = calculateFillResults(
|
||||
order,
|
||||
orderStatus,
|
||||
takerAssetFilledAmount,
|
||||
takerAssetFillAmount
|
||||
);
|
||||
if (status != uint8(Status.SUCCESS)) {
|
||||
emit ExchangeStatus(uint8(status), orderHash);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
// Settle order
|
||||
settleOrder(order, takerAddress, fillResults);
|
||||
|
||||
// Update exchange internal state
|
||||
updateFilledState(
|
||||
order,
|
||||
takerAddress,
|
||||
orderHash,
|
||||
takerAssetFilledAmount,
|
||||
fillResults
|
||||
);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
/// @dev After calling, the order can not be filled anymore.
|
||||
/// Throws if order is invalid or sender does not have permission to cancel.
|
||||
/// @param order Order to cancel. Order must be Status.FILLABLE.
|
||||
/// @return True if the order state changed to cancelled.
|
||||
/// False if the order was order was in a valid, but
|
||||
/// unfillable state (see LibStatus.STATUS for order states)
|
||||
function cancelOrder(Order memory order)
|
||||
public
|
||||
returns (bool)
|
||||
{
|
||||
// Fetch current order status
|
||||
bytes32 orderHash;
|
||||
uint8 orderStatus;
|
||||
(orderStatus, orderHash, ) = getOrderInfo(order);
|
||||
|
||||
// Validate context
|
||||
validateCancelOrRevert(order, orderStatus, orderHash);
|
||||
|
||||
// Perform cancel
|
||||
return updateCancelledState(order, orderStatus, orderHash);
|
||||
}
|
||||
|
||||
/// @dev Validates context for fillOrder. Succeeds or throws.
|
||||
/// @param order to be filled.
|
||||
/// @param orderStatus Status of order to be filled.
|
||||
@@ -145,7 +227,8 @@ contract MixinExchangeCore is
|
||||
address takerAddress,
|
||||
uint256 takerAssetFilledAmount,
|
||||
uint256 takerAssetFillAmount,
|
||||
bytes memory signature)
|
||||
bytes memory signature
|
||||
)
|
||||
internal
|
||||
{
|
||||
// Ensure order is valid
|
||||
@@ -200,8 +283,9 @@ contract MixinExchangeCore is
|
||||
Order memory order,
|
||||
uint8 orderStatus,
|
||||
uint256 takerAssetFilledAmount,
|
||||
uint256 takerAssetFillAmount)
|
||||
public
|
||||
uint256 takerAssetFillAmount
|
||||
)
|
||||
internal
|
||||
pure
|
||||
returns (
|
||||
uint8 status,
|
||||
@@ -241,15 +325,18 @@ contract MixinExchangeCore is
|
||||
fillResults.makerAssetFilledAmount = getPartialAmount(
|
||||
fillResults.takerAssetFilledAmount,
|
||||
order.takerAssetAmount,
|
||||
order.makerAssetAmount);
|
||||
order.makerAssetAmount
|
||||
);
|
||||
fillResults.makerFeePaid = getPartialAmount(
|
||||
fillResults.takerAssetFilledAmount,
|
||||
order.takerAssetAmount,
|
||||
order.makerFee);
|
||||
order.makerFee
|
||||
);
|
||||
fillResults.takerFeePaid = getPartialAmount(
|
||||
fillResults.takerAssetFilledAmount,
|
||||
order.takerAssetAmount,
|
||||
order.takerFee);
|
||||
order.takerFee
|
||||
);
|
||||
|
||||
status = uint8(Status.SUCCESS);
|
||||
return;
|
||||
@@ -265,7 +352,8 @@ contract MixinExchangeCore is
|
||||
address takerAddress,
|
||||
bytes32 orderHash,
|
||||
uint256 takerAssetFilledAmount,
|
||||
FillResults memory fillResults)
|
||||
FillResults memory fillResults
|
||||
)
|
||||
internal
|
||||
{
|
||||
// Update state
|
||||
@@ -286,60 +374,6 @@ contract MixinExchangeCore is
|
||||
);
|
||||
}
|
||||
|
||||
/// @dev Fills the input order.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerAssetFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signature Proof that order has been created by maker.
|
||||
/// @return Amounts filled and fees paid by maker and taker.
|
||||
function fillOrder(
|
||||
Order memory order,
|
||||
uint256 takerAssetFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
// Fetch order info
|
||||
bytes32 orderHash;
|
||||
uint8 orderStatus;
|
||||
uint256 takerAssetFilledAmount;
|
||||
(orderStatus, orderHash, takerAssetFilledAmount) = getOrderInfo(order);
|
||||
|
||||
// Fetch taker address
|
||||
address takerAddress = getCurrentContextAddress();
|
||||
|
||||
// Either our context is valid or we revert
|
||||
validateFillOrRevert(
|
||||
order,
|
||||
orderStatus,
|
||||
orderHash,
|
||||
takerAddress,
|
||||
takerAssetFilledAmount,
|
||||
takerAssetFillAmount,
|
||||
signature
|
||||
);
|
||||
|
||||
// Compute proportional fill amounts
|
||||
uint8 status;
|
||||
(status, fillResults) = calculateFillResults(order, orderStatus, takerAssetFilledAmount, takerAssetFillAmount);
|
||||
if (status != uint8(Status.SUCCESS)) {
|
||||
emit ExchangeStatus(uint8(status), orderHash);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
// Settle order
|
||||
settleOrder(order, takerAddress, fillResults);
|
||||
|
||||
// Update exchange internal state
|
||||
updateFilledState(
|
||||
order,
|
||||
takerAddress,
|
||||
orderHash,
|
||||
takerAssetFilledAmount,
|
||||
fillResults
|
||||
);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
/// @dev Validates context for cancelOrder. Succeeds or throws.
|
||||
/// @param order that was cancelled.
|
||||
/// @param orderStatus Status of order that was cancelled.
|
||||
@@ -347,7 +381,8 @@ contract MixinExchangeCore is
|
||||
function validateCancelOrRevert(
|
||||
Order memory order,
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash)
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal
|
||||
{
|
||||
// Ensure order is valid
|
||||
@@ -388,7 +423,8 @@ contract MixinExchangeCore is
|
||||
function updateCancelledState(
|
||||
Order memory order,
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash)
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal
|
||||
returns (bool stateUpdated)
|
||||
{
|
||||
@@ -414,26 +450,4 @@ contract MixinExchangeCore is
|
||||
|
||||
return stateUpdated;
|
||||
}
|
||||
|
||||
/// @dev After calling, the order can not be filled anymore.
|
||||
/// Throws if order is invalid or sender does not have permission to cancel.
|
||||
/// @param order Order to cancel. Order must be Status.FILLABLE.
|
||||
/// @return True if the order state changed to cancelled.
|
||||
/// False if the order was order was in a valid, but
|
||||
/// unfillable state (see LibStatus.STATUS for order states)
|
||||
function cancelOrder(Order memory order)
|
||||
public
|
||||
returns (bool)
|
||||
{
|
||||
// Fetch current order status
|
||||
bytes32 orderHash;
|
||||
uint8 orderStatus;
|
||||
(orderStatus, orderHash, ) = getOrderInfo(order);
|
||||
|
||||
// Validate context
|
||||
validateCancelOrRevert(order, orderStatus, orderHash);
|
||||
|
||||
// Perform cancel
|
||||
return updateCancelledState(order, orderStatus, orderHash);
|
||||
}
|
||||
}
|
||||
|
@@ -31,6 +31,7 @@ contract MixinMatchOrders is
|
||||
LibMath,
|
||||
LibStatus,
|
||||
LibOrder,
|
||||
LibFillResults,
|
||||
LibExchangeErrors,
|
||||
MExchangeCore,
|
||||
MMatchOrders,
|
||||
@@ -51,7 +52,8 @@ contract MixinMatchOrders is
|
||||
Order memory leftOrder,
|
||||
Order memory rightOrder,
|
||||
bytes leftSignature,
|
||||
bytes rightSignature)
|
||||
bytes rightSignature
|
||||
)
|
||||
public
|
||||
returns (MatchedFillResults memory matchedFillResults)
|
||||
{
|
||||
@@ -119,7 +121,12 @@ contract MixinMatchOrders is
|
||||
);
|
||||
|
||||
// Settle matched orders. Succeeds or throws.
|
||||
settleMatchedOrders(leftOrder, rightOrder, matchedFillResults, takerAddress);
|
||||
settleMatchedOrders(
|
||||
leftOrder,
|
||||
rightOrder,
|
||||
matchedFillResults,
|
||||
takerAddress
|
||||
);
|
||||
|
||||
// Update exchange state
|
||||
updateFilledState(
|
||||
@@ -146,7 +153,8 @@ contract MixinMatchOrders is
|
||||
/// @param rightOrder Second order to match.
|
||||
function validateMatchOrThrow(
|
||||
Order memory leftOrder,
|
||||
Order memory rightOrder)
|
||||
Order memory rightOrder
|
||||
)
|
||||
internal
|
||||
{
|
||||
// The leftOrder maker asset must be the same as the rightOrder taker asset.
|
||||
@@ -198,7 +206,8 @@ contract MixinMatchOrders is
|
||||
!isRoundingError(
|
||||
matchedFillResults.left.makerAssetFilledAmount,
|
||||
amountSpentByLeft,
|
||||
1),
|
||||
1
|
||||
),
|
||||
ROUNDING_ERROR_TRANSFER_AMOUNTS
|
||||
);
|
||||
|
||||
@@ -214,7 +223,8 @@ contract MixinMatchOrders is
|
||||
!isRoundingError(
|
||||
matchedFillResults.right.makerAssetFilledAmount,
|
||||
matchedFillResults.left.takerAssetFilledAmount,
|
||||
1),
|
||||
1
|
||||
),
|
||||
ROUNDING_ERROR_TRANSFER_AMOUNTS
|
||||
);
|
||||
}
|
||||
@@ -237,7 +247,8 @@ contract MixinMatchOrders is
|
||||
uint8 leftOrderStatus,
|
||||
uint8 rightOrderStatus,
|
||||
uint256 leftOrderFilledAmount,
|
||||
uint256 rightOrderFilledAmount)
|
||||
uint256 rightOrderFilledAmount
|
||||
)
|
||||
internal
|
||||
returns (
|
||||
uint8 status,
|
||||
|
@@ -64,7 +64,8 @@ contract MixinSettlement is
|
||||
function settleOrder(
|
||||
LibOrder.Order memory order,
|
||||
address takerAddress,
|
||||
FillResults memory fillResults)
|
||||
FillResults memory fillResults
|
||||
)
|
||||
internal
|
||||
{
|
||||
dispatchTransferFrom(
|
||||
@@ -102,7 +103,8 @@ contract MixinSettlement is
|
||||
LibOrder.Order memory leftOrder,
|
||||
LibOrder.Order memory rightOrder,
|
||||
MatchedFillResults memory matchedFillResults,
|
||||
address takerAddress)
|
||||
address takerAddress
|
||||
)
|
||||
internal
|
||||
{
|
||||
// Order makers and taker
|
||||
|
@@ -29,6 +29,20 @@ contract IExchangeCore {
|
||||
function cancelOrdersUpTo(uint256 salt)
|
||||
external;
|
||||
|
||||
/// @dev Gets information about an order: status, hash, and amount filled.
|
||||
/// @param order Order to gather information on.
|
||||
/// @return status Status of order. Statuses are defined in the LibStatus.Status struct.
|
||||
/// @return orderHash Keccak-256 EIP712 hash of the order.
|
||||
/// @return takerAssetFilledAmount Amount of order that has been filled.
|
||||
function getOrderInfo(LibOrder.Order memory order)
|
||||
public
|
||||
view
|
||||
returns (
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash,
|
||||
uint256 takerAssetFilledAmount
|
||||
);
|
||||
|
||||
/// @dev Fills the input order.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerAssetFillAmount Desired amount of takerAsset to sell.
|
||||
|
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
|
||||
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.23;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "../libs/LibOrder.sol";
|
||||
import "../libs/LibFillResults.sol";
|
||||
|
||||
contract IMatchOrders {
|
||||
|
||||
/// @dev Match two complementary orders that have a positive spread.
|
||||
/// Each order is filled at their respective price point. However, the calculations are
|
||||
/// carried out as though the orders are both being filled at the right order's price point.
|
||||
/// The profit made by the left order goes to the taker (who matched the two orders).
|
||||
/// @param leftOrder First order to match.
|
||||
/// @param rightOrder Second order to match.
|
||||
/// @param leftSignature Proof that order was created by the left maker.
|
||||
/// @param rightSignature Proof that order was created by the right maker.
|
||||
/// @return matchedFillResults Amounts filled and fees paid by maker and taker of matched orders.
|
||||
function matchOrders(
|
||||
LibOrder.Order memory leftOrder,
|
||||
LibOrder.Order memory rightOrder,
|
||||
bytes leftSignature,
|
||||
bytes rightSignature
|
||||
)
|
||||
public
|
||||
returns (LibFillResults.MatchedFillResults memory matchedFillResults);
|
||||
}
|
@@ -31,6 +31,12 @@ contract LibFillResults is
|
||||
uint256 takerFeePaid;
|
||||
}
|
||||
|
||||
struct MatchedFillResults {
|
||||
LibFillResults.FillResults left;
|
||||
LibFillResults.FillResults right;
|
||||
uint256 takerFillAmount;
|
||||
}
|
||||
|
||||
/// @dev Adds properties of both FillResults instances.
|
||||
/// Modifies the first FillResults instance specified.
|
||||
/// @param totalFillResults Fill results instance that will be added onto.
|
||||
@@ -44,4 +50,4 @@ contract LibFillResults is
|
||||
totalFillResults.makerFeePaid = safeAdd(totalFillResults.makerFeePaid, singleFillResults.makerFeePaid);
|
||||
totalFillResults.takerFeePaid = safeAdd(totalFillResults.takerFeePaid, singleFillResults.takerFeePaid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -56,25 +56,6 @@ contract MExchangeCore is
|
||||
uint256 makerEpoch
|
||||
);
|
||||
|
||||
/// @dev Cancels all orders reated by sender with a salt less than or equal to the specified salt value.
|
||||
/// @param salt Orders created with a salt less or equal to this value will be cancelled.
|
||||
function cancelOrdersUpTo(uint256 salt)
|
||||
external;
|
||||
|
||||
/// @dev Gets information about an order: status, hash, and amount filled.
|
||||
/// @param order Order to gather information on.
|
||||
/// @return status Status of order. Statuses are defined in the LibStatus.Status struct.
|
||||
/// @return orderHash Keccak-256 EIP712 hash of the order.
|
||||
/// @return takerAssetFilledAmount Amount of order that has been filled.
|
||||
function getOrderInfo(LibOrder.Order memory order)
|
||||
public
|
||||
view
|
||||
returns (
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash,
|
||||
uint256 takerAssetFilledAmount
|
||||
);
|
||||
|
||||
/// @dev Validates context for fillOrder. Succeeds or throws.
|
||||
/// @param order to be filled.
|
||||
/// @param orderStatus Status of order to be filled.
|
||||
@@ -90,7 +71,8 @@ contract MExchangeCore is
|
||||
address takerAddress,
|
||||
uint256 takerAssetFilledAmount,
|
||||
uint256 takerAssetFillAmount,
|
||||
bytes memory signature)
|
||||
bytes memory signature
|
||||
)
|
||||
internal;
|
||||
|
||||
/// @dev Calculates amounts filled and fees paid by maker and taker.
|
||||
@@ -104,8 +86,9 @@ contract MExchangeCore is
|
||||
LibOrder.Order memory order,
|
||||
uint8 orderStatus,
|
||||
uint256 takerAssetFilledAmount,
|
||||
uint256 takerAssetFillAmount)
|
||||
public
|
||||
uint256 takerAssetFillAmount
|
||||
)
|
||||
internal
|
||||
pure
|
||||
returns (
|
||||
uint8 status,
|
||||
@@ -122,21 +105,10 @@ contract MExchangeCore is
|
||||
address takerAddress,
|
||||
bytes32 orderHash,
|
||||
uint256 takerAssetFilledAmount,
|
||||
LibFillResults.FillResults memory fillResults)
|
||||
LibFillResults.FillResults memory fillResults
|
||||
)
|
||||
internal;
|
||||
|
||||
/// @dev Fills the input order.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerAssetFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signature Proof that order has been created by maker.
|
||||
/// @return Amounts filled and fees paid by maker and taker.
|
||||
function fillOrder(
|
||||
LibOrder.Order memory order,
|
||||
uint256 takerAssetFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (LibFillResults.FillResults memory fillResults);
|
||||
|
||||
/// @dev Validates context for cancelOrder. Succeeds or throws.
|
||||
/// @param order that was cancelled.
|
||||
/// @param orderStatus Status of order that was cancelled.
|
||||
@@ -144,7 +116,8 @@ contract MExchangeCore is
|
||||
function validateCancelOrRevert(
|
||||
LibOrder.Order memory order,
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash)
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal;
|
||||
|
||||
/// @dev Updates state with results of cancelling an order.
|
||||
@@ -157,17 +130,8 @@ contract MExchangeCore is
|
||||
function updateCancelledState(
|
||||
LibOrder.Order memory order,
|
||||
uint8 orderStatus,
|
||||
bytes32 orderHash)
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal
|
||||
returns (bool stateUpdated);
|
||||
|
||||
/// @dev After calling, the order can not be filled anymore.
|
||||
/// Throws if order is invalid or sender does not have permission to cancel.
|
||||
/// @param order Order to cancel. Order must be Status.FILLABLE.
|
||||
/// @return True if the order state changed to cancelled.
|
||||
/// False if the order was order was in a valid, but
|
||||
/// unfillable state (see LibStatus.STATUS for order states)
|
||||
function cancelOrder(LibOrder.Order memory order)
|
||||
public
|
||||
returns (bool);
|
||||
}
|
||||
|
@@ -21,14 +21,11 @@ pragma experimental ABIEncoderV2;
|
||||
import "../libs/LibOrder.sol";
|
||||
import "../libs/LibFillResults.sol";
|
||||
import "./MExchangeCore.sol";
|
||||
import "../interfaces/IMatchOrders.sol";
|
||||
|
||||
contract MMatchOrders {
|
||||
|
||||
struct MatchedFillResults {
|
||||
LibFillResults.FillResults left;
|
||||
LibFillResults.FillResults right;
|
||||
uint256 takerFillAmount;
|
||||
}
|
||||
contract MMatchOrders is
|
||||
IMatchOrders
|
||||
{
|
||||
|
||||
/// This struct exists solely to avoid the stack limit constraint
|
||||
/// in matchOrders
|
||||
@@ -38,34 +35,18 @@ contract MMatchOrders {
|
||||
uint256 orderFilledAmount;
|
||||
}
|
||||
|
||||
/// @dev Match two complementary orders that have a positive spread.
|
||||
/// Each order is filled at their respective price point. However, the calculations are
|
||||
/// carried out as though the orders are both being filled at the right order's price point.
|
||||
/// The profit made by the left order goes to the taker (who matched the two orders).
|
||||
/// @param leftOrder First order to match.
|
||||
/// @param rightOrder Second order to match.
|
||||
/// @param leftSignature Proof that order was created by the left maker.
|
||||
/// @param rightSignature Proof that order was created by the right maker.
|
||||
/// @return matchedFillResults Amounts filled and fees paid by maker and taker of matched orders.
|
||||
function matchOrders(
|
||||
LibOrder.Order memory leftOrder,
|
||||
LibOrder.Order memory rightOrder,
|
||||
bytes leftSignature,
|
||||
bytes rightSignature)
|
||||
public
|
||||
returns (MatchedFillResults memory matchedFillResults);
|
||||
|
||||
/// @dev Validates context for matchOrders. Succeeds or throws.
|
||||
/// @param leftOrder First order to match.
|
||||
/// @param rightOrder Second order to match.
|
||||
function validateMatchOrThrow(
|
||||
LibOrder.Order memory leftOrder,
|
||||
LibOrder.Order memory rightOrder)
|
||||
LibOrder.Order memory rightOrder
|
||||
)
|
||||
internal;
|
||||
|
||||
/// @dev Validates matched fill results. Succeeds or throws.
|
||||
/// @param matchedFillResults Amounts to fill and fees to pay by maker and taker of matched orders.
|
||||
function validateMatchOrThrow(MatchedFillResults memory matchedFillResults)
|
||||
function validateMatchOrThrow(LibFillResults.MatchedFillResults memory matchedFillResults)
|
||||
internal;
|
||||
|
||||
/// @dev Calculates fill amounts for the matched orders.
|
||||
@@ -86,10 +67,11 @@ contract MMatchOrders {
|
||||
uint8 leftOrderStatus,
|
||||
uint8 rightOrderStatus,
|
||||
uint256 leftOrderFilledAmount,
|
||||
uint256 rightOrderFilledAmount)
|
||||
uint256 rightOrderFilledAmount
|
||||
)
|
||||
internal
|
||||
returns (
|
||||
uint8 status,
|
||||
MatchedFillResults memory matchedFillResults
|
||||
LibFillResults.MatchedFillResults memory matchedFillResults
|
||||
);
|
||||
}
|
||||
|
@@ -31,7 +31,8 @@ contract MSettlement {
|
||||
function settleOrder(
|
||||
LibOrder.Order memory order,
|
||||
address takerAddress,
|
||||
LibFillResults.FillResults memory fillResults)
|
||||
LibFillResults.FillResults memory fillResults
|
||||
)
|
||||
internal;
|
||||
|
||||
/// @dev Settles matched order by transferring appropriate funds between order makers, taker, and fee recipient.
|
||||
@@ -42,7 +43,8 @@ contract MSettlement {
|
||||
function settleMatchedOrders(
|
||||
LibOrder.Order memory leftOrder,
|
||||
LibOrder.Order memory rightOrder,
|
||||
MMatchOrders.MatchedFillResults memory matchedFillResults,
|
||||
address takerAddress)
|
||||
LibFillResults.MatchedFillResults memory matchedFillResults,
|
||||
address takerAddress
|
||||
)
|
||||
internal;
|
||||
}
|
||||
|
Reference in New Issue
Block a user